Bagging y Random Forest
Intuición: Bagging (Bootstrap Aggregating) crea muchos árboles con muestras bootstrap de los datos y promedia sus predicciones. Random Forest añade una capa extra: en cada split del árbol, solo se considera un subconjunto aleatorio de variables. Esto "desc correlaciona" los árboles, haciendo que el promedio sea aún más efectivo.
Fórmula explicada: f̂_bag(x) = (1/B) Σ f̂_b(x). B es el número de árboles. Cada f̂_b se entrena en una muestra bootstrap distinta. En RF, cada split solo considera m < p variables. Esto reduce la correlación entre árboles, y como Var(promedio) = σ²/B + (1 - 1/B)ρσ², reducir ρ (correlación) reduce la varianza.
Caso real: Para predecir si un cliente pagará un préstamo (sí/no) con 30 variables del cliente, RF con 500 árboles promedia 500 opiniones diversas. Cada árbol ve un subconjunto diferente de clientes y variables, lo que estabiliza la predicción.
Error común: Usar demasiados árboles sin beneficio adicional. Después de cierto punto (ej. 500 árboles), agregar más no mejora el error pero sí aumenta el costo computacional.
Gradient Boosting
Intuición: A diferencia de RF (que construye árboles en paralelo), Gradient Boosting los construye en secuencia. Cada nuevo árbol intenta corregir los errores del conjunto anterior. Es como un escultor: primero da forma gruesa, luego refina detalles, y cada paso corrige los defectos del paso anterior.
Fórmula explicada: f_m(x) = f_{m-1}(x) + η h_m(x). En cada paso m, h_m es un árbol pequeño (stump) que predice los residuos (errores) del modelo actual. η (learning rate) controla qué tan agresivamente se corrigen los errores. η pequeño (~0.01-0.1) requiere más árboles pero generaliza mejor.
Caso real: Para predecir el precio de acciones, el primer árbol captura la tendencia general. El segundo se enfoca en los días donde el primer árbol falló. El tercero en los errores del segundo, y así sucesivamente. El resultado es un modelo muy preciso pero que requiere cuidado para no sobreajustar.
Error común: Usar learning rate alto (ej. >0.5) para llegar rápido al mínimo. Esto suele sobreajustar. Combinar learning rate bajo con suficientes árboles da mejores resultados.
XGBoost
Intuición: XGBoost es Gradient Boosting "con esteroides". Añade regularización L1/L2 (como Lasso/Ridge), maneja valores perdidos automáticamente, usa poda de árboles (tree pruning) y es altamente paralelizable. Fue el algoritmo ganador de muchas competencias de Kaggle.
Fórmula explicada: Obj = Σ L(yᵢ, f(xᵢ)) + Σ Ω(h_k), donde Ω(h) = γT + (1/2)λ||w||² + α||w||₁. T es el número de hojas, w son los pesos de las hojas. γ controla la poda (árboles más simples), λ y α son regularización Ridge y Lasso sobre los pesos.
Caso real: En la competición de Kaggle "House Prices", XGBoost con 1,000 árboles, learning rate=0.05 y max_depth=6 ganó a RF y Gradient Boosting clásico por su capacidad de manejar 80 variables heterogéneas y valores perdidos.
Error común: No ajustar los hiperparámetros de regularización (λ, γ, α). XGBoost sin regularización es solo Gradient Boosting rápido. El poder real está en la regularización.
Variable Importance y PDP
Intuición: La importancia de variables mide cuánto contribuye cada variable a las predicciones del modelo. PDP (Partial Dependence Plot) muestra cómo cambia la predicción al variar una variable, manteniendo las demás fijas. Es como preguntar: "si solo cambiara X1, ¿cómo cambiaría la predicción?".
Fórmula explicada: Importancia = reducción total de impureza (MSE o Gini) atribuible a cada variable, sumada sobre todos los splits de todos los árboles. PDP: PDP(xⱼ) = (1/n) Σ f(xⱼ, X_{-j,i}), donde se promedia sobre todas las demás variables de todas las observaciones.
Caso real: En un modelo de riesgo crediticio, la importancia revela que "ingresos" e "historial crediticio" son las variables más importantes. PDP muestra que la probabilidad de default disminuye drásticamente cuando los ingresos superan $30,000.
Error común: Confundir importancia con causalidad. Una variable puede ser importante para predecir Y sin tener un efecto causal sobre Y.
Hiperparámetros Clave
Intuición: Los hiperparámetros controlan el balance entre sesgo y varianza. En RF: n_estimators (B), max_depth, min_samples_leaf, max_features. En Boosting: learning_rate (η), n_estimators, max_depth, subsample. La interacción entre ellos es compleja y requiere tuning cuidadoso.
Fórmula explicada: RF: árboles profundos (max_depth grande) tienen bajo sesgo pero alta varianza. Muchos árboles (n_estimators grande) reducen la varianza. Boosting: η pequeño requiere más árboles pero generaliza mejor. max_depth pequeño (2-4) fuerza aprendizaje lento y estable.
Caso real: Para un problema con 10,000 observaciones y 50 variables: RF con max_depth=10, n_estimators=500, max_features=√50≈7. Boosting con learning_rate=0.05, n_estimators=1,000, max_depth=3, subsample=0.8.
Error común: Usar valores por defecto sin entender los datos. Por ejemplo, max_features="sqrt" puede no ser óptimo si hay muchas variables irrelevantes.
RF vs Boosting: Cuándo usar cada uno
Intuición: RF es mejor para datos con mucho ruido y cuando se necesita un modelo rápido y robusto. Boosting (especialmente XGBoost) es mejor cuando se busca la máxima precisión posible, aunque sea más sensible a hiperparámetros. RF generaliza bien por defecto; Boosting requiere tuning cuidadoso.
Fórmula explicada: RF: promedio de modelos independientes → reduce varianza. Boosting: suma secuencial de modelos → reduce sesgo. En la práctica, XGBoost suele superar a RF en competencias, pero RF es más fácil de usar sin sobreajustar.
Caso real: Para datos financieros con mucho ruido (alta frecuencia), RF es más estable. Para datos estructurados con señal clara (ej. clasificación de clientes), XGBoost suele dar la mejor precisión.
Error común: Asumir que más complejidad siempre es mejor. XGBoost puede sobreajustar fácilmente si no se regulariza. RF es más tolerante.
Comparamos OLS, Random Forest y XGBoost en un DGP no lineal con 5 variables (X1 sinusoidal, X2*X3 interacción, X5 irrelevante).
OLS solo puede capturar líneas rectas. La relación sinusoidal requiere muchos términos polinomiales, que OLS no tiene por defecto.
Cada árbol divide recursivamente el espacio. Logra aproximar la función sinusoidal con múltiples splits en X1. El promedio de 50 árboles suaviza la aproximación.
XGBoost se enfoca primero en la tendencia general y luego en los detalles finos. Con learning rate=0.1, cada árbol hace una corrección pequeña, resultando en un modelo preciso.
X1 (sinusoidal) es la más importante, seguida por X2 y X3 (interacción). X4 tiene importancia baja y X5 (irrelevante) casi cero. Esto valida que los métodos identifican correctamente qué variables importan.
DGP no lineal. Compara el ajuste de OLS, Random Forest y XGBoost. Muestra importancia de variables.