Estás leyendo la publicación: ¿Cómo crear modelos de aprendizaje automático rápidos y reproducibles con steppy?
En los procedimientos de aprendizaje automático, la creación de canalizaciones y la extracción de lo mejor de ellas es crucial hoy en día. Podemos entender que para una biblioteca es difícil brindar los mejores servicios e incluso si brindan funciones de tan alto rendimiento, se vuelven pesadas. Steppy es una biblioteca que intenta construir una canalización óptima, pero es una biblioteca liviana. En este artículo, discutiremos la biblioteca steppy y veremos su implementación para un problema de clasificación simple. Los puntos principales que se discutirán en el artículo se enumeran a continuación.
Tabla de contenido
- ¿Qué es Steppy?
- ¿Por qué necesitamos Steppy?
- Implementación
- Importación de datos
- Crear paso
- Tubería de formación
Comencemos con la introducción del paso a paso.
¿Qué es Steppy?
Steppy es una biblioteca de código abierto que se puede usar para realizar experimentos de ciencia de datos desarrollados con el lenguaje python. La razón principal detrás del desarrollo de esta biblioteca es hacer que el procedimiento de los experimentos sea rápido y reproducible. Junto con esto, es una biblioteca liviana y nos permite crear canalizaciones de aprendizaje automático de alto rendimiento. Los desarrolladores de esta biblioteca tienen como objetivo hacer que los profesionales de la ciencia de datos se centren en el lado de los datos en lugar de centrarse en cuestiones relacionadas con el desarrollo de software.
¿Por qué necesitamos Steppy?
En la sección anterior, hemos discutido qué es steppy y al observar esos puntos podemos decir que esta biblioteca puede proporcionar un entorno donde los experimentos son rápidos, reproducibles y fáciles. Con estas capacidades, esta biblioteca también ayuda a eliminar las dificultades de reproducibilidad y proporciona funciones que también pueden usar los principiantes. Esta biblioteca tiene dos abstracciones principales con las que podemos crear canalizaciones de aprendizaje automático. Las abstracciones son las siguientes:
- Paso: este es un contenedor que ayuda a manejar los múltiples aspectos de la construcción de una canalización de aprendizaje automático. Ejemplos de aspectos pueden ser guardar resultados del modelo, verificar el modelo durante el entrenamiento, etc.
- Transformador: esto se puede considerar como un modelo completo que ayuda a generar datos de salida utilizando algunos datos de entrada. Este puede ser nuestro algoritmo de aprendizaje automático, red neuronal y algoritmos para rutinas de procesamiento previo y posterior.
Cualquier implementación simple puede aclarar las intenciones detrás del desarrollo de esta biblioteca, pero antes de todo esto, debemos instalar esta biblioteca que requiere Python 3.5 o superior en el entorno. Si la tenemos podemos instalar esta librería usando las siguientes líneas de código:
!pip3 instalar paso a paso
Después de la instalación, estamos listos para usar steppy para experimentos de ciencia de datos. Echemos un vistazo a una implementación básica.
Implementación de Steppy
En esta implementación de steppy, veremos cómo podemos usarlo para crear pasos en una tarea de clasificación.
Importación de datos
En este artículo, vamos a sklearn el conjunto de datos de iris provisto que se puede importar usando las siguientes líneas de códigos:
desde sklearn.datasets importar load_iris
desde sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target
Vamos a dividir el conjunto de datos en entrenar y probar.
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y, random_state=42)
Una cosa que debemos realizar mientras usamos steppy es poner nuestros datos en diccionarios para que el paso que vamos a crear pueda comunicarse entre sí. Esto lo podemos hacer de la siguiente manera:
tren_datos = {‘entrada’: {‘X’: tren_X,’y’: tren_y,}} prueba_datos = {‘entrada’:{‘X’: prueba_X,’y’: prueba_y,}}
Ahora estamos listos para crear pasos.
Crear paso
En este artículo, vamos a ajustar un algoritmo de bosque aleatorio para clasificar los datos del iris, lo que significa que para Steppy estamos definiendo un bosque aleatorio como un transformador.
from sklearn.ensemble import RandomForestClassifier import joblib class RandomForestTransformer(BaseTransformer): def __init__(self): self.estimator = RandomForestClassifier() def fit(self, X, y): self.estimator.fit(X, y) return self def transform(self, X, **kwargs): y_pred = self.estimator.predict(X) return {‘y_pred’: y_pred} def persist(self, filepath): joblib.dump(self.estimator, filepath) def load( self, ruta del archivo): self.estimator = joblib.load(ruta del archivo) return self
Aquí hemos definido algunas de las funciones que ayudarán a inicializar el bosque aleatorio, ajustar y transformar datos y guardar los parámetros. Ahora podemos encajar el transformador anterior en los pasos de las siguientes maneras:
from steppy.base import Step EXPERIMENT_DIR = ‘./ex1’ step = Step(name=”RF_classifier”, transformer=RandomForestTransformer(), input_data=[‘input’]experiment_directory=EXPERIMENT_DIR, is_fittable=True)
Producción:
Visualicemos el paso.
paso
Producción:
Aquí podemos ver cuáles son los pasos que hemos definido en la tubería. Entrenemos la tubería.
Tubería de formación
Podemos entrenar nuestra tubería definida usando las siguientes líneas de códigos.
preds_train = step.fit_transform(data_train);
Producción:
En la salida podemos ver cuál es el paso que se ha seguido para entrenar el pipeline. Evaluemos la canalización con datos de prueba.
preds_test = step.transform(data_test) Preds_ test
Producción:
Aquí podemos ver el procedimiento de prueba seguido por la biblioteca. Vamos a comprobar la precisión del modelo.
de sklearn.metrics import precision_score acc_test = precision_score(data_test[‘input’][‘y’]preds_test[‘y_pred’]) print(‘Exactitud de la prueba = {:.4f}’.format(acc_test))
Producción:
Aquí podemos ver que los resultados son buenos y también, si la usará en cualquier momento, descubrirá cuán liviana es esta biblioteca.
Ultimas palabras
En este artículo, hemos discutido la biblioteca steppy, que es una forma fácil, liviana y de código abierto de implementar canalizaciones de aprendizaje automático. Junto con esto, también analizamos la necesidad de una biblioteca e implementación de este tipo para crear pasos en una canalización utilizando una biblioteca de pasos.