Cómo automatizé mi flujo de trabajo de aprendizaje automático con solo 10 líneas de Python

es mágico, hasta que esté atascado tratando de decidir qué modelo usar para su conjunto de datos. ¿Deberías ir con un bosque aleatorio o una regresión logística? ¿Qué pasa si un modelo de Bayes ingenuo supera a ambos? Para la mayoría de nosotros, responder eso significa horas de prueba manual, construcción de modelos y confusión.

Pero, ¿qué pasaría si pudiera automatizar todo el proceso de selección del modelo?
En este artículo, te guiaré a través de un simple pero poderoso Pitón Automatización que selecciona los mejores modelos de aprendizaje automático para su conjunto de datos automáticamente. No necesita un conocimiento profundo de ML o habilidades de ajuste. Simplemente conecte sus datos y deje que Python haga el resto.

¿Por qué automatizar la selección de modelos ML?

Hay múltiples razones, veamos algunas de ellas. Piénselo:

  • La mayoría de los conjuntos de datos se pueden modelar de múltiples maneras.
  • Probar cada modelo manualmente consume mucho tiempo.
  • Elegir el modelo incorrecto temprano puede descarrilar su proyecto.

La automatización te permite:

  • Compare docenas de modelos al instante.
  • Obtenga métricas de rendimiento sin escribir código repetitivo.
  • Identifique los algoritmos de rendimiento superior basados ​​en la precisión, la puntuación F1 o el RMSE.

No es solo conveniente, es una higiene inteligente de ML.

Bibliotecas que usaremos

Exploraremos 2 bibliotecas de automatización de Python ML subestimadas. Estos son PRODICTE LAZZY y Pycaret. Puede instalar ambos utilizando el comando PIP que se proporciona a continuación.

pip install lazypredict
pip install pycaret

Importar bibliotecas requeridas

Ahora que hemos instalado las bibliotecas requeridas, importemos. También importaremos otras bibliotecas que nos ayudarán a cargar los datos y prepararlos para el modelado. Podemos importarlos utilizando el código que se proporciona a continuación.

import pandas as pd
from sklearn.model_selection import train_test_split
from lazypredict.Supervised import LazyClassifier
from pycaret.classification import *

Cargando el conjunto de datos

Usaremos el conjunto de datos de diabetes que está disponible gratuitamente, y puede consultar estos datos de este enlace. Usaremos el comando a continuación para descargar los datos, almacenarlos en un marcado de datos y definiremos la X (características) e y (resultado).

# Load dataset
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
df = pd.read_csv(url, header=None)

X = df.iloc[:, :-1]
y = df.iloc[:, -1]

Usando lazyPredict

Ahora que tenemos el conjunto de datos cargado y las bibliotecas necesarias importadas, dividamos los datos en un conjunto de datos de capacitación y prueba. Después de eso, finalmente lo pasaremos a LazyPredict para comprender cuál es el mejor modelo para nuestros datos.

# Split data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# LazyClassifier
clf = LazyClassifier(verbose=0, ignore_warnings=True)
models, predictions = clf.fit(X_train, X_test, y_train, y_test)

# Top 5 models
print(models.head(5))

En la salida, podemos ver claramente que LazyPredict intentó ajustar los datos en modelos de más de 20 ML, y se muestra que el rendimiento en términos de precisión, ROC, AUC, etc. selecciona el mejor modelo para los datos. Esto hace que la decisión sea menos lento y más precisa. Del mismo modo, podemos crear una gráfica de la precisión de estos modelos para que sea una decisión más visual. También puede verificar el tiempo tomado que es insignificante, lo que hace que sea mucho más ahorro de tiempo.

import matplotlib.pyplot as plt

# Assuming `models` is the LazyPredict DataFrame
top_models = models.sort_values("Accuracy", ascending=False).head(10)

plt.figure(figsize=(10, 6))
top_models["Accuracy"].plot(kind="barh", color="skyblue")
plt.xlabel("Accuracy")
plt.title("Top 10 Models by Accuracy (LazyPredict)")
plt.gca().invert_yaxis()
plt.tight_layout()
Visualización del rendimiento del modelo

Usando Pycaret

Ahora revisemos cómo funciona Pycaret. Usaremos el mismo conjunto de datos para crear los modelos y comparar el rendimiento. Usaremos todo el conjunto de datos ya que Pycaret en sí mismo hace una división de entrenamiento de prueba.

El siguiente código será:

  • Ejecutar más de 15 modelos
  • Evaluarlos con validación cruzada
  • Devuelve el mejor basado en el rendimiento

Todo en dos líneas de código.

clf = setup(data=df, target=df.columns[-1])
best_model = compare_models()
Análisis de datos de Pycaret
Rendimiento del modelo de pycaret

Como podemos ver aquí, Pycaret proporciona mucha más información sobre el rendimiento del modelo. Puede tomar unos segundos más que perezoso, pero también proporciona más información, para que podamos tomar una decisión informada sobre con qué modelo queremos continuar.

Casos de uso de la vida real

Algunos casos de uso de la vida real donde estas bibliotecas pueden ser beneficiosas son:

  • Prototipos rápidos en hackathons
  • Paneles internos que sugieren el mejor modelo para analistas
  • Enseñar ML sin ahogarse en sintaxis
  • Ideas previas a la prueba antes de la implementación a gran escala

Conclusión

El uso de bibliotecas Automl como las que discutimos no significa que deba omitir el aprendizaje de las matemáticas detrás de los modelos. Pero en un mundo de ritmo rápido, es un gran impulso de productividad.

Lo que me encanta de LazyPredict y Pycaret es que le dan un circuito de retroalimentación rápido, por lo que puede concentrarse en la ingeniería de funciones, el conocimiento del dominio y la interpretación.

Si está comenzando un nuevo proyecto ML, pruebe este flujo de trabajo. Ahorrará tiempo, tomará mejores decisiones e impresionará a su equipo. Deje que Python haga el trabajo pesado mientras construye soluciones más inteligentes.