2.5.4
Bagging
Resumen
- Bagging entrena el mismo modelo base sobre muchas muestras bootstrap y combina predicciones por promedio o votación.
- Su beneficio principal es reducir la varianza, especialmente con modelos inestables como árboles profundos.
- El número de estimadores y la complejidad del modelo base determinan el equilibrio entre robustez, precisión y costo computacional.
Intuicion #
Bagging crea muchos conjuntos de entrenamiento ligeramente distintos. Cada modelo comete errores diferentes; al agregarlos, parte de ese ruido se cancela y la predicción final se vuelve más estable.
Explicacion Detallada #
1. Procedimiento #
- Generar varias muestras bootstrap del conjunto de entrenamiento
- Entrenar el mismo modelo en cada muestra
- Promediar (regresion) o votar (clasificacion)
Bagging reduce principalmente la varianza y mejora la estabilidad.
2. Ejemplo en Python #
import numpy as np
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import BaggingRegressor
X, y = fetch_california_housing(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
base = DecisionTreeRegressor(max_depth=None, random_state=0)
bagging = BaggingRegressor(
estimator=base,
n_estimators=100,
max_samples=0.8,
max_features=0.8,
bootstrap=True,
random_state=0,
)
bagging.fit(X_train, y_train)
pred = bagging.predict(X_test)
print("RMSE:", mean_squared_error(y_test, pred, squared=False))
print("OOB score:", bagging.oob_score_)
3. Hiperparametros #
n_estimators: Numero de modelos. Mas modelos dan mayor estabilidad pero cuestan mas.max_samples,max_features: Fraccion de datos y caracteristicas por modelo.bootstrap: Si se muestrea con reemplazo;bootstrap_featureshace lo mismo con features.oob_score: Estimacion de generalizacion con muestras fuera de la bolsa.
4. Ventajas y desventajas #
| Ventajas | Desventajas |
|---|---|
| Facil de implementar y paralelizar | Requiere almacenar muchos modelos |
| Reduce mucho la varianza | No reduce el sesgo; el modelo base debe ser razonable |
| OOB evita un conjunto de validacion extra | Menos interpretable que un arbol unico |
5. Resumen #
- Bagging estabiliza al promediar modelos entrenados con remuestreo.
- Arboles de decision + bagging = Random Forest.
- Funciona bien cuando se puede paralelizar el entrenamiento.