Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Scikit-learn desde cero, Unidad 1 — Qué es scikit-learn y para qué sirve, 1.2 — Filosofía de diseño de scikit-learn ·

Estimators, transformers y predictors

Estimators, transformers y predictors

Introducción

Scikit-learn es una poderosa herramienta para el machine learning en Python, pero para aprovecharla al máximo es fundamental entender su estructura y cómo funcionan las diferentes partes que la componen. Una de las más importantes es la distinción entre estimators, transformers y predictors. Esta clasificación no solo facilita la organización del código, sino que también mejora la claridad y el mantenimiento del mismo.

Explicación principal con ejemplos

En Scikit-learn, los estimadores son objetos que pueden ajustarse a un conjunto de datos para aprender una función. Estos estimadores son utilizados tanto para clasificación como para regresión. Algunos ejemplos incluyen LinearRegression, LogisticRegression y RandomForestClassifier.

Ejemplo: Crear y entrenar un modelo lineal

from sklearn.linear_model import LinearRegression

# Crea un estimador de regresión lineal
model = LinearRegression()

# Entrena el modelo con datos ficticios
X_train = [[1], [2], [3]]
y_train = [1, 2, 3]
model.fit(X_train, y_train)

# Predecir nuevas muestras
predictions = model.predict([[4]])
print(predictions)  # Salida: array([4.])

Transformers, por otro lado, son capaces de transformar datos en diferentes formas que pueden ser útiles para la tarea de machine learning. Esto incluye escalado, normalización y codificación de variables categóricas.

Ejemplo: Escalar datos con StandardScaler

from sklearn.preprocessing import StandardScaler

# Crea un transformer de escalamiento estándar
scaler = StandardScaler()

# Ajusta el scaler a los datos ficticios y transforma los mismos
X_train_scaled = scaler.fit_transform([[0, 1], [2, 3]])
print(X_train_scaled)

Finalmente, predictors son una combinación de estimadores y transformers que no solo ajustan modelos sino también realizan predicciones.

Errores típicos / trampas

Trampa 1: Ignorar el estado del transformer

Uno de los errores más comunes es olvidarse de guardar el estado de un transformer después de entrenarlo. Esto puede llevar a malinterpretaciones en la transformación de datos de prueba o nuevas muestras.

# Error común
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)  # No se debería hacer esto sin fit

Trampa 2: Usar el mismo objeto para entrenamiento y transformación

Asegúrate de no usar el mismo objeto transformer para ajustarse a los datos de entrenamiento y luego aplicarlo a los datos de prueba. Esto puede introducir data leakage, lo que influye negativamente en la validez del modelo.

# Error común
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_train)  # Incorrecto: usar el mismo objeto para transformar ambos conjuntos de datos

Trampa 3: No revisar la documentación al implementar un nuevo modelo

Cada modelo y transformer tiene parámetros específicos. Olvidarte de revisar la documentación puede resultar en malas configuraciones, lo que afecta el rendimiento del modelo.

# Error común
model = LogisticRegression(penalty='l2')  # Falta especificar C o max_iter para asegurar un ajuste correcto

Checklist accionable

  1. Asegúrate de guardar y cargar el estado del transformer correctamente.
  2. Evita usar el mismo objeto transformer para transformar los datos de entrenamiento y test.
  3. Revisa y configura adecuadamente todos los parámetros de tu modelo.
  4. Ejecute validación cruzada antes de implementar el modelo en producción.
  5. Documenta claramente cada paso del proceso para facilitar la replicabilidad.

Cierre con "Siguientes pasos"

Siguientes pasos

  • Explora más transformadores y ajuste de hiperparámetros: Conoce los diferentes transformers disponibles en Scikit-learn y cómo ajustar hiperparámetros para mejorar el rendimiento.
  • Integra pipelines: Aprende a construir pipelines que combinen transformadores y modelos para asegurar la consistencia y evitar data leakage.
  • Experimenta con diferentes técnicas de validación: Conoce más sobre validaciones como StratifiedKFold y cómo aplicarlas en tus proyectos.

Scikit-learn es una herramienta vital para el machine learning, pero su poder reside no solo en sus algoritmos sino también en su organización y claridad. Comprendiendo la distinción entre estimadores, transformers y predictors, puedes mejorar significativamente tu flujo de trabajo y las soluciones que implementas.


Créditos: Última actualización: 2025-12-26

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).