Bagging

Basic

Bagging | Dasar Ensemble untuk Menurunkan Varians

Dibuat: Pembaruan terakhir: Waktu baca: 2 menit

Bagging (Bootstrap Aggregating) melatih banyak model pada sampel bootstrap lalu merata-ratakan atau melakukan voting pada prediksi. Jika dipakai dengan decision tree, hasilnya berkembang menjadi Random Forest.


1. Langkah kerja #

  1. Membuat beberapa sampel bootstrap dari data latih
  2. Melatih model yang sama pada setiap sampel
  3. Mengambil rata-rata (regresi) atau voting (klasifikasi)

Bagging terutama menurunkan varians sehingga model lebih stabil.


2. Contoh 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. Hiperparameter #

  • n_estimators: Jumlah model. Lebih banyak biasanya lebih stabil, namun lebih mahal.
  • max_samples, max_features: Proporsi sampel/fitur per model.
  • bootstrap: Sampling dengan pengembalian; bootstrap_features untuk fitur.
  • oob_score: Estimasi generalisasi dari sampel out-of-bag.

4. Kelebihan dan kekurangan #

KelebihanKekurangan
Mudah diimplementasikan dan bisa diparalelkanMenyimpan banyak model memakan memori
Varians berkurang signifikanBias tidak berkurang; model dasar harus cukup baik
OOB menghemat set validasi tambahanInterpretasi lebih sulit daripada satu pohon

5. Ringkasan #

  • Bagging menstabilkan model dengan resampling dan averaging.
  • Decision tree + bagging = Random Forest.
  • Efektif ketika proses training dapat diparalelkan.