Pipelines en Scikit‑Learn
Los pipelines permiten encadenar pasos de preprocesamiento y entrenamiento en un solo flujo. Son esenciales para proyectos profesionales porque garantizan coherencia, reproducibilidad y evitan errores comunes como aplicar transformaciones por separado.
Tabla de contenidos
- Qué es un pipeline
- Ventajas de usar pipelines
- Pipelines con Scikit‑Learn
- Pipeline con normalización + modelo
- Pipeline con validación cruzada
- Ejercicios
- Mini‑proyecto
1. Qué es un pipeline
Un pipeline es una secuencia de pasos que se ejecutan en orden:
# Ejemplo conceptual
limpiar → normalizar → entrenar → evaluar
2. Ventajas de usar pipelines
- Evitan errores de preprocesamiento
- Hacen el código más limpio
- Permiten validación cruzada completa
- Permiten optimizar hiperparámetros dentro del pipeline
- Son estándar en proyectos profesionales
3. Pipelines con Scikit‑Learn
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
pipeline = Pipeline([
("scaler", StandardScaler()),
("model", LogisticRegression())
])
pipeline.fit(X_train, y_train)
Cada paso tiene un nombre y una transformación o modelo asociado.
4. Pipeline con normalización + modelo
pipeline = Pipeline([
("scaler", StandardScaler()),
("clf", LogisticRegression(C=1.0))
])
pred = pipeline.predict(X_test)
El pipeline aplica normalización antes de entrenar y antes de predecir.
5. Pipeline con validación cruzada
from sklearn.model_selection import cross_val_score
scores = cross_val_score(pipeline, X, y, cv=5)
print(scores.mean())
La validación cruzada se aplica al pipeline completo, no solo al modelo.
6. Ejercicios
- Crea un pipeline con StandardScaler + LogisticRegression.
- Realiza predicciones usando el pipeline.
- Aplica validación cruzada al pipeline.
- Explica por qué los pipelines evitan errores.
- Indica un caso real donde usarías pipelines.
# pista pipeline
Pipeline([("scaler", StandardScaler()), ("model", LogisticRegression())])
# pista validación
cross_val_score(pipeline, X, y, cv=5)
7. Mini‑proyecto: Pipeline completo
Toma un dataset real y crea un pipeline que incluya:
- Normalización
- Selección de características
- Modelo de clasificación
- Validación cruzada
- Optimización de hiperparámetros dentro del pipeline