Lensa ML

Ensemble Methods dan Stacking

Langkah 1 dari 6: Kenapa Ensemble?

Kekuatan model yang beragam

Jumlah model3
Prediksi Model pada 10 Titik TestS1S2S3S4S5S6S7S8S9S10Tree✓✓✗✓✗✗✓✓✓✓70%SVM✓✓✓✓✓✓✓✗✓✓90%k-NN✗✓✓✓✓✓✗✓✓✓80%Ens✓✓✓✓✓✓✓✓✓✓100%Perbandingan Akurasi70%Tree90%SVM80%k-NN100%Ens
Model
3
Rata-rata individu
80%
Ensemble
100%
Peningkatan
20.0%

Suara mayoritas dari 3 model menggeser akurasi dari 80% (rata-rata model) ke 100%. Voting paling membantu ketika model-model membuat error yang berbeda.

Geser jumlah model dari 1 ke 5 dan bandingkan baris tiap model dengan baris Ens. Kalau n classifier masing-masing punya akurasi p > 0.5 dan error-nya independen, akurasi suara mayoritasnya naik mendekati 1 saat n bertambah, hasil yang dikenal sebagai teorema juri Condorcet. Misalnya, 5 model independen dengan akurasi 70% menghasilkan suara mayoritas yang benar sekitar 84% dari waktu. Error model sungguhan saling tumpang tindih, jadi peningkatannya lebih kecil. Dengan 2 model, hasil 1:1 jatuh ke model dengan akurasi validasi lebih baik, jadi ensemble hanya menyalin SVM dan mendapat skor 90%.

Langkah 2 dari 6: Hard Voting

Mayoritas menang

Model aktif3
Hard Voting: Mayoritas MenangS1S2S3S4S5S6S7S8Tree10000101SVM10100101k-NN11100101Suara10100101Asli10100101Akurasi per ModelTree88%SVM100%k-NN88%Ens100%
Aktif
3
Suara S4
0:3
Pemenang
Kelas 0
Akurasi ensemble
100%

Hard voting memilih kelas dengan suara terbanyak. Dengan 3 model, sebuah kelas butuh 2+ suara untuk menang, dan hasil seri jatuh ke kelas 0. Metode ini mengabaikan tingkat keyakinan.

Geser slider model aktif dari 1 ke 5 dan bandingkan baris Suara dengan baris Asli. Hard voting hanya memakai label prediksi setiap model. Jumlah pemilih ganjil menghindari hasil seri pada masalah dua kelas. Weighted hard voting memberi model yang lebih baik lebih banyak suara. VotingClassifier di scikit-learn mendukung hard voting dan soft voting, dan parameter weights-nya menentukan weight setiap model. Hard voting menjadi satu-satunya pilihan ketika sebagian model tidak menghasilkan probabilitas, misalnya SVM tanpa kalibrasi probabilitas.

Langkah 3 dari 6: Soft Voting

Probabilitas dengan weight

Strategi weight (setara → berbasis akurasi)0.50
Sampel yang diperiksa2
Soft Voting: Rincian Sampel S2Setiap model menghasilkan probabilitas → weighted average menentukan kelasTreew=0.89akurasi 78%0.34SVMw=0.91akurasi 82%0.08k-NNw=0.88akurasi 76%0.19Rerata0.50.202Rumus Weighted Average(0.89×0.34 + 0.91×0.08 + 0.88×0.19) / 2.68= 0.202 → Kelas 0 ✓Semua Sampel0.87S10.20S20.85S30.21S40.17S50.67S6
Strategi
Campuran
Prob. rata-rata
0.202
Kelas prediksi
0
Akurasi ensemble
100%

Weight campuran (50% berbasis akurasi). Setiap weight mencampur weight setara (1,0) dengan akurasi model.

Geser slider strategi weight dari setara ke berbasis akurasi, lalu pakai slider sampel untuk memeriksa tiap kasus. Soft voting merata-ratakan probabilitas kelas, jadi model yang yakin lebih berpengaruh daripada model yang ragu: 0,95 dan 0,40 menghasilkan rata-rata 0,675, sedangkan hard voting akan terbagi 1:1. Metode ini paling bagus ketika probabilitasnya terkalibrasi dengan baik. Di sini weight berbasis akurasi hanya berkisar dari 0,76 sampai 0,82, jadi mengganti strategi nyaris tidak menggeser rata-ratanya, dan ini hal yang biasa. Weight yang di-tuning pada data validasi, atau meta-learner, bisa memberi perbedaan lebih besar.

Langkah 4 dari 6: Stacking: Level 0

Prediksi base model

Fold1
Stacking Level 0: Prediksi Out-of-FoldData dibagi menjadi 5 foldValFold 1TrainFold 2TrainFold 3TrainFold 4TrainFold 5Train pada 4 fold → prediksi pada Fold 1Akurasi Base Model pada Fold 1Tree81.5%SVM83.6%k-NN72.6%NB74.1%LR78.7%rata-rata 78.1%
Fold
1/5
Train
40
Val
10
Akurasi rata-rata
78.1%

Fold 1 disisihkan untuk validasi. Kelima base model dilatih pada fold 2–5, lalu memprediksi fold 1. Prediksi out-of-fold ini menjadi input feature untuk meta-learner.

Geser slider fold dari 1 ke 5 untuk merotasi fold yang disisihkan. Dengan 50 titik dan 5 fold, setiap base model dilatih pada 40 titik dan memprediksi 10 titik sisanya, sehingga setelah 5 rotasi setiap titik punya satu prediksi out-of-fold per model. Prediksi itu membentuk training set baru berukuran 50 × 5 untuk meta-learner. Prediksi out-of-fold wajib dipakai, karena prediksi pada data training milik model sendiri terlihat lebih bagus daripada kenyataannya. David Wolpert memperkenalkan skema ini pada 1992. Setelah itu, setiap base model biasanya dilatih ulang pada seluruh data.

Langkah 5 dari 6: Stacking: Level 1

Meta-learner-nya

Regularization0.50
Stacking Level 1: Meta-LearnerOutput base model masuk ke meta-learner (weight ilustrasi)Tree0.17SVM0.28k-NN0.15NB0.14LR0.26MetaLearner90.8%Akurasi stacked0.17Tree0.28SVM0.15k-NN0.14NB0.26LRMeta-Weight yang Dipelajari
#1 SVM
0.28
#2 LR
0.26
Akurasi stack
90.8%
Risiko overfit
50%

Meta-learner menyeimbangkan kontribusi, dengan weight terbesar untuk SVM dan LR. Regularization mencegah satu model mendominasi.

Geser slider regularization dari 0 ke 1 dan perhatikan meta-weight yang dipelajari. Meta-learner biasanya model sederhana, seperti logistic regression atau ridge regression, karena input-nya sedikit, sangat berkorelasi, dan sudah kuat. Leo Breiman menemukan pada 1996 bahwa mewajibkan weight non-negatif membuat stacked regression jauh lebih andal. Meta-weight dan akurasi stacked di layar ini disimulasikan untuk menunjukkan trennya. Sebagian konfigurasi juga meneruskan feature asli ke meta-learner, sehingga ia bisa memercayai model yang berbeda untuk jenis input yang berbeda.

Langkah 6 dari 6: Membandingkan Strategi

Voting vs. stacking

Noise dataset0.15
Perbandingan Strategi Ensemble (ilustrasi)60%70%80%90%100%82.2%Terbaik85.6%Hard Vote87.3%Soft Vote91.2%StackingPemenang: Stacking dengan 91.2%
Individu terbaik
82.2%
Hard vote
85.6%
Soft vote
87.3%
Stacking
91.2%

Saat noise rendah, setiap strategi gabungan mengalahkan model tunggal terbaik, dan voting sederhana mungkin sudah cukup.

Geser slider noise dataset dari 0 ke 0,5. Akurasi dalam grafik ini disimulasikan sehingga stacking selalu menang, tetapi hasil nyata bisa berbeda. Stacking paling membantu ketika base model kuat dan saling berbeda, seperti model gradient-boosted tree, neural network, dan model linear. Manfaatnya kecil ketika base model nyaris sama, dan pada dataset kecil stacking bisa kalah dari rata-rata sederhana karena meta-learner overfit. Bandingkan setiap stacked ensemble dengan model tunggal terbaiknya dan rata-rata biasa pada data held-out.

Apa itu stacking dalam ensemble learning?

Ensemble learning menggabungkan prediksi beberapa model untuk mendapat hasil yang lebih akurat dan lebih stabil daripada salah satunya. Cara menggabungkan yang paling sederhana adalah aturan voting: hard voting mengambil kelas mayoritas, dan soft voting merata-ratakan probabilitas prediksi. Stacking, atau stacked generalization, melangkah lebih jauh dengan melatih model tingkat kedua, yaitu meta-learner, untuk memutuskan cara menggabungkan prediksi base model.

Ensemble berhasil karena model yang berbeda membuat kesalahan yang berbeda, dan penggabungannya meniadakan sebagian error itu. Stacked ensemble yang berisi gradient-boosted tree, neural network, dan model linear adalah resep yang umum di kompetisi machine learning, dan sistem AutoML seperti AutoGluon dan H2O membangun stacked ensemble secara otomatis. Biayanya adalah waktu training tambahan dan model yang lebih sulit dijelaskan dan di-deploy.

Ide utama

  • Ensemble menggabungkan beberapa model sehingga error masing-masing sebagian saling meniadakan.
  • Manfaat ensemble paling besar ketika base model akurat dan membuat kesalahan yang berbeda.
  • Hard voting menghitung label prediksi, sedangkan soft voting merata-ratakan probabilitas prediksi.
  • Stacking melatih meta-learner pada prediksi out-of-fold dari base model.
  • Prediksi out-of-fold mencegah meta-learner terlalu percaya pada base model yang overfit.
  • Meta-learner sederhana dengan regularization, seperti logistic regression, biasanya sudah cukup.

Pertanyaan umum

Apa bedanya stacking dan blending?

Blending adalah versi stacking yang lebih sederhana. Alih-alih memakai prediksi out-of-fold dari cross-validation, blending menyisihkan satu validation set, melatih base model pada sisanya, lalu melatih meta-learner pada prediksi mereka untuk data yang disisihkan. Cara ini lebih cepat dan lebih mudah diterapkan, tetapi meta-learner belajar dari data yang lebih sedikit.

Apa bedanya stacking dengan bagging dan boosting?

Bagging dan boosting biasanya menggabungkan banyak model sejenis, yang dilatih pada data hasil resampling atau pada error model sebelumnya. Stacking menggabungkan jenis model yang berbeda dan mempelajari cara menggabungkannya dari data. Pendekatan ini bisa dipadukan: stacked ensemble sering memakai random forest dan model boosting sebagai dua base learner-nya.

Model apa yang cocok menjadi base learner untuk stacking?

Model yang masing-masing cukup akurat tetapi cara kerjanya berbeda, misalnya gradient-boosted tree, k-nearest neighbors, neural network, dan model linear dengan regularization. Keragaman lebih penting daripada menambah model kuat yang sejenis, karena model yang mirip membuat kesalahan yang sama.

Apakah stacking selalu meningkatkan akurasi?

Tidak. Kalau base model sangat berkorelasi atau dataset-nya kecil, stacked ensemble mungkin tidak lebih baik daripada model tunggal terbaik atau rata-rata sederhana. Stacking juga melipatgandakan biaya training dan inference, jadi peningkatannya harus sepadan dengan kerumitan tambahan.

Penjelasan terkait

Referensi

  1. Wolpert (1992), "Stacked Generalization", Neural Networks
  2. Breiman (1996), "Stacked Regressions", Machine Learning
  3. Dietterich (2000), "Ensemble Methods in Machine Learning", Multiple Classifier Systems

Terakhir diperbarui