Logotipo de Zephyrnet

Primeros pasos con PyCaret

Fecha:

Primeros pasos con PyCaret
Imagen por editor
 

Cualquier entrenamiento e implementación de modelos de IA pasa por un largo viaje de datos. Algunos de estos pasos son estándar y se pueden automatizar, lo que permite un rápido desarrollo e implementación del modelo. PyCaret es uno de los paquetes desarrollados para producir modelos de aprendizaje automático a escala de fábrica. Empecemos a aprender sobre ello.

PyCaret es un paquete de ciencia de datos de código abierto y código bajo en Python que acelera el ciclo de experimentación al automatizar los flujos de trabajo de ML. Reemplaza cientos de líneas de código con solo unas pocas líneas, lo que facilita una experimentación más rápida y eficiente. 

Es un contenedor de varias bibliotecas y marcos de aprendizaje automático, como scikit-learn, que impulsa bibliotecas como LightGBM/XGBoost/CatBoost, spaCy, Hyperopt, Ray, etc., lo que proporciona un desarrollo fluido y flexible.

 

Primeros pasos con PyCaret
Imagen de Pycaret
 

PyCaret es simple y fácil de usar en el que las operaciones se almacenan secuencialmente en una canalización lista para su implementación. PyCaret automatiza el preprocesamiento, la ingeniería de funciones y el ajuste de hiperparámetros, todo listo para usar.

 

Primeros pasos con PyCaret
Imagen de Moez Alí
 

Su colección de modelos tiene más de 70 modelos no entrenados para tareas como clasificación, regresión, agrupamiento, etc. con una variedad excepcional de módulos que incluyen métodos supervisados ​​y no supervisados.

PyCaret tiene todo cubierto, ya sea la integración con el marco SHAP para la explicabilidad o con MLFlow para el seguimiento de experimentos.

Pycaret se puede instalar usando pip. La instalación predeterminada instala solo las dependencias físicas como se muestra a continuación.

pip install pycaret

 

Para instalar la versión completa, ejecute el siguiente comando en su terminal/línea de comando.

pip install pycaret[full]

 

Pycaret ofrece algunos estándares conjuntos de datos fuera de la caja. Usaremos el conjunto de datos "Precios de vivienda de Boston" (boston.csv) para este tutorial.

Primero, importemos bibliotecas como "get_data" de PyCaret para cargar los datos en el entorno de Jupyter y "plotly express" para graficar/trazar.

from pycaret.datasets import get_data
import plotly.express as px
from pycaret.regression import *

 

En caso de que observe algún error al importar las bibliotecas, es posible que se deba a problemas de dependencia que deben resolverse primero. Tenga en cuenta que PyCaret aún no es compatible con Python 3.9. Para esta demostración, Python 3.7 se usa en Colaboración de Google.

Cargue el conjunto de datos en Jupyter Notebook usando la función get_data importada previamente de pycaret.datasets. La función get_data devuelve un marco de datos que se puede almacenar como se muestra a continuación.

data = get_data('boston')

 

PyCaret muestra las cinco filas superiores del marco de datos de forma predeterminada. Por lo tanto, no necesita llamar a la función dataframe.head() explícitamente.

 

Primeros pasos con PyCaret
 

Cada fila del conjunto de datos representa un suburbio o una ciudad en la región de Boston. Los datos se extrajeron originalmente del Área Estadística Metropolitana Estándar de Boston (SMSA) en el año 1970 con un diccionario de datos procedente de esta página.  

Estamos resolviendo un problema de regresión dada la naturaleza continua de la variable objetivo, MEDV.

El siguiente gráfico representa uno de los diagramas de dispersión interesantes con las siguientes características:

  • Distribución bivariada entre el valor medio de las viviendas ocupadas por sus propietarios en miles de dólares (MEDV) y el porcentaje del estado más bajo de la población (LSTAT)
  • Un índice de accesibilidad a carreteras radiales (RAD) a la ecuación como una columna facetada (equivalente a "tono" en Seaborn)
  • Una línea de tendencia que utiliza el argumento de la línea de tendencia con valor como "OLS" que representa los mínimos cuadrados ordinarios
  • El color de la línea de tendencia se elige para que sea rojo para una fácil visibilidad usando el argumento trendline_color_override
fig = px.scatter(x = data['lstat'], y = data['medv'], facet_col = data['rad'], opacity = 0.2, trendline = 'ols', trendline_color_override = 'red')
fig.show()

 

El gráfico muestra una fuerte relación negativa entre los precios medios de la vivienda y el estatus más bajo de la población. Esto significa que cuanto más débil sea la situación financiera de la población, menor será la renta disponible y, por tanto, menores serán los precios de la vivienda.

 

Primeros pasos con PyCaret
 

El valor RAD de 24 se ajusta bien a los datos, excluyendo algunos valores atípicos y tiene un soporte decente con respecto a la cantidad de registros.

Al observar la distribución de la variable objetivo, es decir, MEDV, parece estar distribuida de manera bastante normal, salvo algunos valores atípicos.

fig = px.histogram(data, x=["medv"])
fig.show()

 

Primeros pasos con PyCaret
 

Configurar un experimento de PyCaret es bastante fácil usando la función de configuración. La función utiliza los siguientes argumentos como entrada: el marco de datos, el nombre de la variable de destino, un valor booleano para registrar los resultados del experimento y el nombre.

s = setup(data, target = 'medv', log_experiment = True, experiment_name = 'housing_prices')

 

Como se desprende de la salida de PyCaret, hace una gama de cosas automáticamente que incluyen, entre otros, la identificación de valores faltantes, características continuas y categóricas, la cardinalidad de las variables, divide conjuntos de trenes y pruebas y realiza una validación cruzada que de otro modo tomaría un tiempo considerable y recursos.

 

Primeros pasos con PyCaret
 

Una vez que se configura el experimento, debe ejecutar compare_models() para experimentar con una multitud de algoritmos para un problema en particular. El siguiente código almacena el mejor modelo en una variable.

best_model = compare_models()

 

El código anterior entrena y prueba el modelo en diferentes algoritmos y los organiza en el orden ascendente del error. También muestra el tiempo de entrenamiento en segundos, que se indica con 'TT (Seg)' en la última columna.

En particular, el tiempo de entrenamiento se basa en el uso de todos los núcleos de CPU en este ejemplo en particular y puede diferir en diferentes máquinas.

 

Primeros pasos con PyCaret
 

El método "get_params()" se utiliza para recuperar los hiperparámetros del mejor modelo, que es el Regressor de árbol adicional en nuestro ejemplo.

best_model.get_params()
{'bootstrap': False 'ccp_alpha': 0.0, 'criterion': 'mse', 'max_depth': None, 'Max_features': 'auto', 'max_leaf_nodes': None, 'max_samples': None, 'min_impurity_decrease': 0.0, 'min_impurity_split': None, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'n_estimators': 100, 'n_jobs': -1, 'oob_score': False, 'random _state': 8773, 'verbose': 0, 'warm_start': False}

 

La importancia de las características se puede trazar usando el siguiente código.

plot_model(best_model, plot = 'feature')

 

Primeros pasos con PyCaret

 

La visualización facilita la identificación de las n funciones principales, con la función más importante en la parte superior.

Las predicciones del modelo se generan utilizando la función predict_model().

data_cpy = data.copy()
data_cpy.drop(‘medv’, axis = 1, inplace = True)
y_pred = predict_model(best_model, data = data_cpy)

 

La función save_model() se usa para guardar el modelo entrenado para una fácil implementación.

save_model(best_model, 'my_best_pipeline')

En esta publicación, aprendió cómo PyCaret facilita la vida de muchos científicos de datos e ingenieros de aprendizaje automático al automatizar muchas tareas mundanas. La publicación también demostró cómo automatizar los pasos estándar en una canalización de aprendizaje automático utilizando el paquete PyCaret.

 
 
vidhi chugh es un estratega de inteligencia artificial y un líder de transformación digital que trabaja en la intersección de productos, ciencias e ingeniería para construir sistemas escalables de aprendizaje automático. Es una líder en innovación galardonada, autora y oradora internacional. Tiene la misión de democratizar el aprendizaje automático y romper la jerga para que todos sean parte de esta transformación.
 

punto_img

Información más reciente

punto_img