Inteligencia Artificial

Ejemplo de LazyPredict en Python: Automatizando el Modelo de Aprendizaje Automático

Ejemplo de LazyPredict en Python: Automatizando el Modelo de Aprendizaje Automático

Actualizado: 2026-05-03

Seleccionar el mejor modelo de machine learning para un dataset concreto implica normalmente entrenar, evaluar y comparar docenas de alternativas. LazyPredict automatiza ese proceso: con cuatro líneas de código evalúa todos los clasificadores o regresores de scikit-learn sobre tus datos y devuelve una tabla comparativa de métricas.

Puntos clave

  • LazyPredict entrena automáticamente todos los modelos de scikit-learn con sus parámetros por defecto y los ordena por métricas de rendimiento.
  • Es una herramienta de exploración inicial, no de producción: sirve para identificar familias de modelos prometedoras, no para encontrar el modelo final optimizado.
  • Funciona para clasificación (LazyClassifier) y regresión (LazyRegressor).
  • El output incluye métricas clave (accuracy, F1, ROC-AUC para clasificación; R², RMSE para regresión) y tiempos de entrenamiento.
  • Los modelos que destacan en LazyPredict son candidatos para la siguiente fase: ajuste de hiperparámetros con GridSearchCV o Optuna.

Qué es LazyPredict y para qué sirve

LazyPredict es una librería de Python construida sobre scikit-learn que automatiza el benchmark de modelos. Cuando recibes un dataset nuevo y no sabes si es un problema más adecuado para árboles de decisión, modelos lineales o ensambles, LazyPredict da una primera respuesta en segundos.

Lo que hace LazyPredict:

  • Instancia todos los estimadores compatibles de scikit-learn.
  • Los entrena sobre el conjunto de entrenamiento.
  • Los evalúa sobre el conjunto de test.
  • Devuelve un DataFrame de pandas ordenado por métricas.

Lo que no hace LazyPredict:

  • No optimiza hiperparámetros (usa los valores por defecto).
  • No maneja datos faltantes ni codificación de variables categóricas — el preprocesamiento es responsabilidad del usuario.
  • No sustituye el análisis del negocio para elegir la métrica correcta.

Instalación y ejemplo básico: clasificación

La instalación es directa:

pip install lazypredict

Ejemplo con el dataset de cáncer de mama de scikit-learn:

from lazypredict.Supervised import LazyClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

# Cargar datos
data = load_breast_cancer()
X, y = data.data, data.target

# División train/test
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=42
)

# Evaluar todos los clasificadores
clf = LazyClassifier(verbose=0, ignore_warnings=True, custom_metric=None)
models, predictions = clf.fit(X_train, X_test, y_train, y_test)

print(models)

El output es un DataFrame de pandas con columnas como Accuracy, Balanced Accuracy, ROC AUC, F1 Score y Time Taken, ordenado de mayor a menor accuracy. Un resultado típico muestra que modelos como LGBMClassifier, RandomForestClassifier o LinearSVC suelen encabezar la tabla en datasets tabulares limpios.

Logotipo de scikit-learn, la librería de machine learning de referencia en Python sobre la que se construye LazyPredict

Ejemplo con regresión

Para problemas de regresión, el flujo es idéntico con LazyRegressor:

from lazypredict.Supervised import LazyRegressor
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split

data = load_diabetes()
X, y = data.data, data.target

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=42
)

reg = LazyRegressor(verbose=0, ignore_warnings=True, custom_metric=None)
models, predictions = reg.fit(X_train, X_test, y_train, y_test)

print(models)

Las métricas de salida incluyen R-Squared, RMSE y Time Taken. En regresión, modelos como GradientBoostingRegressor o ExtraTreesRegressor suelen mostrar las mejores métricas en datasets estructurados.

Cómo interpretar los resultados y qué hacer después

El output de LazyPredict es un punto de partida, no una respuesta definitiva. El flujo de trabajo recomendado tras obtener la tabla de resultados es:

  1. Identificar los 3-5 mejores modelos según la métrica más relevante para el negocio (no siempre accuracy).
  2. Analizar el tiempo de entrenamiento: un modelo que tarda 10 veces más y mejora un 0,5 % puede no ser la mejor opción en producción.
  3. Verificar que los modelos con mejor métrica no están sobreajustando: comparar métricas de train y test, no solo de test.
  4. Optimizar hiperparámetros de los candidatos seleccionados con GridSearchCV, RandomizedSearchCV u Optuna.
  5. Evaluar en producción con datos de periodo futuro para confirmar que el rendimiento se mantiene.

Para datasets grandes, LazyPredict puede ser lento porque entrena todos los modelos secuencialmente. En esos casos, preselecciona manualmente 5-10 familias de modelos antes de usar LazyPredict o usa directamente herramientas AutoML como FLAML o AutoSklearn.

Este enfoque de benchmark rápido complementa bien el procesamiento distribuido descrito en dataframes y pipelines en Spark cuando el dataset ya ha sido preparado a escala. La selección del modelo también enlaza con el concepto de modelos pre-entrenados y transferencia de aprendizaje para casos donde los datos propios son escasos.

Logotipo de Python, el ecosistema de referencia para ciencia de datos con librerías como pandas, numpy y scikit-learn

Ventajas y limitaciones reales

Ventajas:

  • Ahorra horas de código repetitivo en la fase exploratoria.
  • Expone inmediatamente modelos que no habrías probado inicialmente.
  • El output en DataFrame de pandas es fácil de analizar, filtrar y exportar.

Limitaciones:

  • No maneja automáticamente variables categóricas, valores nulos ni escalado — el preprocesamiento es del usuario.
  • Los modelos por defecto de scikit-learn no son los mejor sintonizados para ningún dataset concreto.
  • En datasets con clases muy desbalanceadas, accuracy puede ser una métrica engañosa; prioriza ROC AUC o F1 ponderado.
  • No incluye redes neuronales profundas (PyTorch, TensorFlow) — solo estimadores de scikit-learn.

Conclusión

LazyPredict es una herramienta de productividad, no un sustituto del criterio experto. Su valor real está en comprimr la fase de exploración de modelos de días a minutos, permitiendo que el científico de datos dedique su tiempo al preprocesamiento, la ingeniería de características y la evaluación de negocio — las partes donde el contexto humano es insustituible.

¿Te ha resultado útil?
[Total: 11 · Media: 4.5]

Escrito por

CEO - Jacar Systems

Apasionado de la tecnología, la infraestructura cloud y la inteligencia artificial. Escribe sobre DevOps, IA, plataformas y software desde Madrid.