Contenido del curso

- Ensambles y Regularización: Previniendo el Sobreajuste

🔍 Ensambles y Regularización: Previniendo el Sobreajuste

Odisea Algorítmica: De la Regresión al Aprendizaje Profundo · Descripción Unificada

⚙️ El dilema del sobreajuste en ensambles

Los modelos de ensamble como XGBoost alcanzan alta precisión, pero su misma flexibilidad los vuelve propensos a memorizar ruido. La regularización es el arte de podar, contraer y estabilizar para que el modelo aprenda patrones, no excepciones. En esta lección exploramos los mecanismos esenciales: shrinkage, submuestreo, poda, penalizaciones L1/L2 y estrategias como early stopping.

🧩 Mecanismos de regularización en XGBoost y ensambles

📉 Shrinkage (learning rate)
reduce contribución de cada árbol
🎲 Submuestreo (subsample, colsample)
inyecta aleatoriedad filas/columnas
🌿 Poda (max_depth, gamma)
limita crecimiento de ramas
⚖️ L1/L2 (alpha, lambda)
penaliza pesos de hojas

Estos controles actúan como un freno suave durante el entrenamiento. A continuación desglosamos cada uno con ejemplos y efectos.

🔻 Shrinkage (learning rate)

Factor de escala (eta) entre 0.01 y 0.3. Cada árbol nuevo solo aporta una fracción de su predicción. Un valor bajo requiere más árboles pero mejora generalización.

🎯 Submuestreo estocástico

subsample (ej. 0.7): fracción de filas usadas por árbol.
colsample_bytree (ej. 0.8): fracción de columnas. Reduce correlación entre árboles y previene sobreajuste.

🌲 Poda y restricciones de complejidad

max_depth (típico 3–8): controla profundidad máxima.
gamma (min_loss_reduction): ganancia mínima para partir un nodo.
min_child_weight: peso mínimo de instancias en hoja.

📏 Penalizaciones L1/L2 (alpha, lambda)

alpha (L1): fomenta pesos de hoja exactamente cero (poda automática).
lambda (L2): reduce la magnitud de los pesos. Análogo a ridge regression.

📌 Ejemplo de configuración típica con regularización balanceada (XGBoost)
params = {
    'learning_rate': 0.05,
    'max_depth': 5,
    'subsample': 0.7,
    'colsample_bytree': 0.8,
    'gamma': 0.2,
    'alpha': 0.1,
    'lambda': 2.0,
    'min_child_weight': 3,
    'n_estimators': 800
}

📈 Identificando sobreajuste con curvas de entrenamiento/validación

Las curvas de pérdida (log-loss, error) revelan si el modelo generaliza. En un gráfico ideal, ambas curvas descienden juntas. El sobreajuste aparece cuando la pérdida de entrenamiento sigue bajando mientras la de validación se estanca o sube.

🧠 Patrones en curvas de aprendizaje
  • Subajuste (underfitting) → ambas curvas altas y planas. Modelo demasiado simple.
  • Generalización óptima → curvas cercanas, descendiendo juntas.
  • Sobreajuste (overfitting) → entrenamiento sigue bajando, validación se separa y sube.
📊 Curva típica (conceptual)
Train loss: ▁▂▃▄▅▆▇██████
Val loss: ▁▂▃▄▅▆▇████▇▆▇ (repunte)

Eje X: iteraciones (número de árboles) · Eje Y: pérdida (log-loss)

🛑 Estrategias para mejorar generalización

Dos tácticas esenciales que actúan como cortafuegos contra el sobreajuste:

  • Early stopping: detener el entrenamiento cuando la métrica de validación no mejora durante N rondas (ej. 20). Ideal con eval_set.
  • Reducción de complejidad: disminuir max_depth, incrementar gamma, aumentar lambda o subir subsample.
💡 Early stopping en XGBoost (código conceptual)
model = xgb.train(
    params, dtrain,
    num_boost_round=2000,
    early_stopping_rounds=30,
    evals=[(dval, 'validation')],
    verbose_eval=50
)

📋 Tabla resumen: hiperparámetros de regularización

Parámetro Tipo Efecto principal Rango típico
eta (learning_rate)ShrinkageReduce contribución por árbol0.01–0.3
subsampleSubmuestreo filasAleatoriedad filas, reduce varianza0.5–1.0
colsample_bytreeSubmuestreo columnasAleatoriedad columnas, menor correlación0.5–1.0
max_depthPodaProfundidad máxima árbol3–8
gammaPodaGanancia mínima para split0.0–5.0
min_child_weightPodaPeso mínimo en hoja1–10
alpha (L1)Penalización magnitudPoda de pesos de hojas0–10
lambda (L2)Penalización magnitudContracción pesos hojas0.1–10

🎯 Estrategia integrada de regularización

  1. Fijar learning rate bajo (0.02–0.08) y aumentar n_estimators.
  2. Controlar profundidad (max_depth 4–6) y añadir gamma (0.1–1).
  3. Submuestreo moderado: subsample 0.7, colsample 0.8.
  4. Penalizaciones suaves: alpha 0.1–1, lambda 1–3.
  5. Early stopping con paciencia 30–50 rondas.

Esta combinación reduce la varianza sin incurrir en subajuste. Ajuste fino depende del dataset (ruido, tamaño, dimensionalidad).

📌 Conclusión: regularización como arte de equilibrio

Los ensambles son poderosos, pero sin regularización pueden caer en sobreajuste. Shrinkage, submuestreo, poda y penalizaciones L1/L2 ofrecen un control granular. Las curvas de validación guían la decisión; el early stopping evita el exceso de iteraciones. Dominar estos mecanismos eleva tu modelo de memorizador a generalizador experto. En la práctica, usa validación cruzada y monitorea la brecha train-val.

⚡ Odisea Algorítmica · Regularización en Ensambles · Prevención de Sobreajuste
Se analizan mecanismos de regularización en los ensambles: shrinkage (learning rate), submuestreo (subsample, colsample), poda de árboles y penalizaciones L1/L2 en XGBoost. Se muestran curvas de entrenamiento y validación para identificar sobreajuste. Se proponen estrategias como early stopping y reducción de complejidad para mejorar la generalización.
Calificación
0 0

No hay comentarios por ahora.