Bagging

Basic

Bagging | Fundamentos del ensamble para reducir la varianza

Creado: Última actualización: Tiempo de lectura: 2 min

Bagging (Bootstrap Aggregating) entrena varios modelos con muestras bootstrap y promedia o vota sus predicciones. Con arboles de decision, deriva en Random Forest.


1. Procedimiento #

  1. Generar varias muestras bootstrap del conjunto de entrenamiento
  2. Entrenar el mismo modelo en cada muestra
  3. 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_features hace lo mismo con features.
  • oob_score: Estimacion de generalizacion con muestras fuera de la bolsa.

4. Ventajas y desventajas #

VentajasDesventajas
Facil de implementar y paralelizarRequiere almacenar muchos modelos
Reduce mucho la varianzaNo reduce el sesgo; el modelo base debe ser razonable
OOB evita un conjunto de validacion extraMenos 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.