🌲 Ensemble: Random Forest & Gradient Boosting

"Hikmah banyak kepala" β€” menggabungkan banyak model lemah menjadi model kuat. Raja kompetisi data science.

🎬 Animasi: Ensemble: Banyak Pohon Voting

Setiap β€˜pohon’ punya garis keputusan sendiri; voting mayoritas membuat hasil lebih stabil daripada satu pohon.

πŸ“Œ 1. Kenapa Ensemble?

Satu model bisa bias/rapuh. Banyak model yang berbeda-beda kesalahannya saling melengkapi β€” voting/averaging-nya lebih stabil. (Analogi: dewan juri lebih adil dari satu juri.)

Dua keluarga besar: BAGGING (parallel) β€” RANDOM FOREST β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Tree 1 β”‚ Tree 2 β”‚ Tree 3 β”‚ ← dilatih PARALEL di bootstrap sample β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ (sampel ulang dengan pengembalian) β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ VOTING MAJORITAS β€’ Tujuannya: kurangi VARIANCE (overfitting) β€’ Tiap pohon "melihat" data sedikit berbeda β†’ error saling meniadakan BOOSTING (sequential) β€” GRADIENT BOOSTING Tree 1 β†’ sisa error β†’ Tree 2 β†’ sisa error β†’ Tree 3 β†’ ... β€’ Tiap model baru memperbaiki KESELAHAN model sebelumnya β€’ F = F lama + learning_rate Β· (model baru yang fit ke residual) β€’ Tujuannya: kurangi BIAS β€’ "Residual" di klasifikasi = gradien negatif loss (p - y)

πŸ“Œ 2. Contoh: Random Forest vs Pohon Tunggal

Pohon dalam (depth 8) menghafal noise β†’ gap train-test lebar. Random forest (banyak pohon dangkal + voting) lebih stabil.

Output:

πŸ“Œ 3. Contoh: Gradient Boosting (Stump)

Tiap "stump" (pohon 1 level) memperbaiki residual model sebelumnya. Kita uji di data circles (boundary melingkar β€” sulit untuk satu garis).

Output:
πŸ’‘ Ringkasan ensemble: bagging (paralel, kurangi variance) vs boosting (sekuensial, kurangi bias). Di kompetisi Kaggle, gradient boosting pada data tabel hampir selalu mengalahkan model tunggal.

🧠 Latihan

  1. Tambahkan feature subsampling: tiap split pohon hanya mempertimbangkan 1 fitur acak. Apakah forest lebih baik?
  2. Ubah jumlah pohon dari 15 menjadi 5 dan 50. Plot akurasi test vs jumlah pohon β€” kapan mulai "jenuh"?
  3. Di gradient boosting, turunkan lr ke 0.05 dan naikkan stump ke 80. Apa efeknya? (Petunjuk: langkah kecil Γ— banyak.)
  4. Jelaskan dengan analogi: kenapa boosting mengurangi bias, sedangkan bagging mengurangi variance.