2.5.4
Bagging
Resumo
- O Bagging treina o mesmo aprendiz base em muitas reamostras bootstrap e agrega previsões por média ou votação.
- O principal ganho é a redução da variância, que estabiliza aprendizes de alta variância como árvores de decisão profundas.
- O número de estimadores e a complexidade do modelo base controlam o equilíbrio entre robustez, precisão e custo computacional.
Intuição #
O Bagging funciona criando deliberadamente muitas versões ligeiramente diferentes do conjunto de treinamento. Cada modelo comete erros diferentes; a agregação cancela parte desse ruído, de modo que o preditor final é mais estável do que qualquer modelo individual.
Explicação Detalhada #
1. Procedimento #
- Criar múltiplas amostras bootstrap a partir dos dados de treinamento
- Treinar o mesmo modelo em cada amostra
- Calcular a média das previsões para regressão ou votar para classificação
O Bagging reduz principalmente a variância e torna o modelo mais estável.
2. Exemplo em 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. Hiperparâmetros #
n_estimators: Número de aprendizes. Mais árvores são mais estáveis, mas mais custosas.max_samples,max_features: Fração de amostras/características por aprendiz.bootstrap: Se a amostragem é feita com reposição;bootstrap_featuresfaz o mesmo para as características.oob_score: Estimar a generalização a partir de amostras fora do saco (out-of-bag).
4. Prós e contras #
| Prós | Contras |
|---|---|
| Fácil de implementar e paralelizar | Precisa manter muitos modelos na memória |
| Grande redução de variância | Não reduz o viés; aprendizes fracos precisam ser razoáveis |
| A estimativa OOB evita uma divisão extra de validação | Menos interpretável que uma única árvore |
5. Resumo #
- O Bagging estabiliza modelos por meio de reamostragem de dados e cálculo da média das previsões.
- Árvores de decisão + Bagging = Random Forest, então vale a pena lembrar dessa relação.
- Funciona bem em escala quando o treinamento pode ser paralelizado.