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
- Bagging dan Random Forest · Bootstrap aggregation dan ensemble tree yang korelasinya rendah
- Gradient Boosting · Mencocokkan residual secara berurutan untuk prediksi yang kuat
- Cross-Validation · Evaluasi dengan k-fold, stratified, dan leave-one-out
- Decision Tree dan Split · Recursive partitioning, Gini impurity, dan pruning
- Evaluasi Model dan Metrik · Precision, recall, F1, kurva ROC, dan metrik regresi
- Overfitting dan Underfitting · Bias-variance tradeoff dan generalisasi
Referensi
- Wolpert (1992), "Stacked Generalization", Neural Networks
- Breiman (1996), "Stacked Regressions", Machine Learning
- Dietterich (2000), "Ensemble Methods in Machine Learning", Multiple Classifier Systems
Terakhir diperbarui