Python Data Science Program
📓 Abrir notebook en GitHub

Clase 074 — Early stopping

Parte: 1 — Machine Learning Clásico · Fuente: Géron, cap. 4. ⏱️ Duración estimada: 45 min.

🎯 Objetivo

Aplicar early stopping como técnica de regularización implícita en entrenamientos iterativos: monitorear la pérdida de validación durante el descenso por gradiente y detener el ajuste cuando deja de mejorar, conservando el mejor modelo visto.

📚 Resultados de aprendizaje

Al finalizar, el estudiante podrá:

🗺️ Temas

📖 Definiciones y características

📂 Dataset / recursos

🧪 Ejercicios

  1. Curva clásica: entrenar SGDRegressor(max_iter=1, warm_start=True, learning_rate='constant', eta0=0.0005) por 500 épocas sobre California Housing escalado. Graficar RMSE de train y validación por época. Marcar la best epoch.
  2. Early stopping automático: comparar SGDRegressor(early_stopping=True, validation_fraction=0.2, n_iter_no_change=10, tol=1e-4) contra el modelo sin early stopping. Reportar n.º de épocas reales (n_iter_) y RMSE en test.
  3. Paciencia: barrer n_iter_no_change ∈ {1, 5, 20, 100} y mostrar cómo afecta la época final y el error de test.
  4. Implementación manual: escribir un loop con partial_fit que mantenga best_loss, best_model = deepcopy(sgd) y un contador de paciencia. Devolver el mejor modelo.
  5. Comparación con Ridge: sobre make_regression con ruido, comparar (a) SGD sin regularización + early stopping, (b) Ridge con alpha tuneado por CV. Discutir cuál generaliza mejor y por qué.

📝 Homework verificable

Sobre California Housing (split 60/20/20 train/val/test, features escaladas con StandardScaler):

  1. Entrenar un SGDRegressor con early_stopping=True, validation_fraction=0.2, n_iter_no_change=15, tol=1e-4, random_state=42.
  2. Guardar la curva de loss_curve reconstruida con partial_fit (paralela, sin early stopping, 1000 épocas) en curva_val.png.
  3. Reportar: épocas usadas por el modelo con early stopping (n_iter_), RMSE en test, y época óptima vista en la curva manual.

Criterio de aceptación: RMSE_test ≤ 0.75 (en variable target sin escalar, en cientos de miles de USD), y la época con early stopping debe estar dentro de ±10 % de la best epoch detectada manualmente.

⚠️ Errores comunes

❓ Preguntas frecuentes

🔗 Referencias

📥 Material descargable

➡️ Siguiente clase

Clase 075 — Regresión logística binaria y softmax