Sebuah model machine learning dapat gagal karena pola yang spesifik terhadap proses pelatihannya: initialization, batch yang tersampel, data pelatihan, arsitektur, atau hyperparameter. Model lain dapat menghasilkan kesalahan yang berbeda. Ensembling memanfaatkan perbedaan tersebut dengan menggabungkan prediksi beberapa model alih-alih bergantung pada satu model saja.

Idenya sederhana, tetapi ensemble yang berguna membutuhkan lebih dari sekadar merata-ratakan semua model yang tersedia. Model yang membuat kesalahan hampir identik memberikan sedikit informasi pelengkap, sedangkan model yang beragam dapat memperbaiki prediksi dengan konsekuensi tambahan biaya pelatihan, memori, dan inference.

Contoh berikut membahas kombinasi klasifikasi dan regresi, diversitas model, calibration, stacking, serta pengujian operasional untuk menilai apakah ensemble sepadan dengan biayanya.

Mulai dengan tiga classifier yang tidak sempurna

Misalkan tiga binary classifier memperkirakan apakah sebuah transaksi merupakan fraud. Untuk satu transaksi, probabilitasnya:

model A: 0.80
model B: 0.65
model C: 0.70

Ensemble soft voting sederhana merata-ratakan probabilitas:

(0.80 + 0.65 + 0.70) / 3 = 0.7167

Jika aplikasi memakai threshold 0.60, ensemble memprediksi fraud.

Ini berbeda dari hard voting, saat setiap model terlebih dahulu mengubah skornya menjadi kelas lalu ensemble memilih kelas dengan suara terbanyak. Soft voting mempertahankan lebih banyak informasi karena prediksi 0.51 diperlakukan berbeda dari 0.99.

Untuk regresi, bentuk paling sederhana juga berupa rata-rata. Jika tiga model memprediksi waktu pengiriman 28, 31, dan 30 menit, prediksi rata-ratanya:

(28 + 31 + 30) / 3 = 29.67 minutes

Contoh tersebut menunjukkan mekanismenya. Nilai ensemble baru tampak ketika pola kesalahan antaranggota diperiksa.

Nilai ensemble berasal dari kesalahan yang tidak selaras

Bayangkan dua model regresi dengan prediksi:

prediction A = true value + error A
prediction B = true value + error B

Rata-ratanya:

average prediction = true value + (error A + error B) / 2

Jika satu model cenderung terlalu tinggi pada contoh saat model lain terlalu rendah, sebagian error dapat saling meniadakan. Jika keduanya membuat error yang sama pada contoh yang sama, averaging tidak menghilangkannya.

Poin utamanya:

Ensemble memperoleh nilai dari perbedaan yang berguna antaranggota, bukan dari jumlah anggota semata.

Lima salinan model deterministik yang sama, dilatih pada data dan initialization identik, akan menghasilkan prediksi yang sama. Rata-ratanya tetap prediksi tersebut dan tidak memberi manfaat ensemble.

Sebaliknya, model yang dilatih dengan random seed, sampel data, arsitektur, feature set, atau prosedur pelatihan berbeda dapat membentuk decision function yang agak berbeda. Apakah perbedaan itu berguna harus diukur pada held-out data.

Akurasi dan diversitas perlu dinilai bersama

Diversitas saja tidak cukup. Random classifier sangat berbeda dari classifier yang kuat, tetapi menambahkannya ke ensemble dapat memperburuk prediksi.

Anggota yang berguna sebaiknya memiliki dua sifat: performanya cukup baik secara mandiri dan error-nya tidak sepenuhnya redundan dengan anggota lain.

Jika model B gagal pada hampir semua contoh yang sama dengan model A, menggabungkan keduanya mungkin hanya sedikit mengubah hasil. Jika model C gagal pada subset berbeda, pasangan A dan C dapat lebih kuat.

Untuk klasifikasi, catat correctness setiap model pada tiap contoh validasi dan periksa seberapa sering pasangan model gagal bersama. Untuk regresi, periksa korelasi residual:

residual = prediction - target

Korelasi residual tinggi berarti model cenderung salah ke arah yang sama pada contoh yang sama. Korelasi lebih rendah dapat membuat averaging lebih berguna selama setiap model cukup kompeten.

Jangan mengoptimalkan korelasi rendah secara terpisah. Model lemah dengan error yang tidak biasa dapat memiliki korelasi rendah tetapi tetap merusak ensemble.

Rata-ratakan probabilitas, bukan logit, kecuali semantiknya memang berbeda

Neural classifier lazim menghasilkan logit, yaitu skor tanpa normalisasi sebelum transformasi sigmoid atau softmax.

Misalkan dua binary classifier menghasilkan:

model A logit:  2.0
model B logit: -1.0

Setidaknya ada dua kombinasi:

average logits -> apply sigmoid
average sigmoid probabilities

Operasi ini umumnya tidak ekuivalen karena sigmoid nonlinear:

sigmoid((2 + -1) / 2) != (sigmoid(2) + sigmoid(-1)) / 2

Secara numerik:

sigmoid(0.5)                         ~= 0.622
(sigmoid(2.0) + sigmoid(-1.0)) / 2 ~= 0.575

Tidak ada satu aturan yang universal untuk setiap desain ensemble, tetapi keduanya merepresentasikan model yang berbeda. Jika interpretasinya adalah setiap anggota menyediakan probabilitas dengan bobot sama, rata-ratakan probabilitas.

Averaging logit menggabungkan evidence pada skala log-odds untuk klasifikasi biner. Gunakan hanya jika perilaku tersebut memang disengaja dan sudah divalidasi.

Prinsip yang sama berlaku pada model multiclass: tetapkan apakah yang digabungkan adalah class probability, logit, vote, atau skor lain, lalu dokumentasikan pilihan itu.

Probability calibration memengaruhi soft voting

Soft voting memperlakukan probabilitas prediksi sebagai kuantitas yang layak dirata-ratakan. Jika satu anggota sangat overconfident, pengaruh praktisnya dapat lebih besar meskipun setiap model menerima bobot aritmetika yang sama.

Contoh dua model:

model A: [0.99, 0.01]
model B: [0.40, 0.60]

Rata-ratanya:

[0.695, 0.305]

Model A mendominasi hasil karena distribusinya jauh lebih tajam. Hal ini dapat sesuai jika confidence A bermakna, tetapi dapat merugikan jika A hanya overconfident. Evaluasi calibration anggota dan ensemble ketika keputusan downstream bergantung pada nilai probabilitas, bukan sekadar ranking kelas.

Calibration bukan prasyarat setiap ensemble, tetapi menjadi relevan ketika probabilitas mengendalikan threshold, expected-cost decision, atau estimasi risiko.

Weighted ensemble menambah komponen yang harus divalidasi

Equal averaging merupakan baseline yang kuat karena tidak memiliki parameter tambahan. Jika kualitas anggota konsisten berbeda, kombinasi berbobot dapat memberi hasil lebih baik:

ensemble = 0.5 * model A
         + 0.3 * model B
         + 0.2 * model C

Untuk probability vector, bobot non-negatif yang berjumlah satu mempertahankan hasil sebagai distribusi probabilitas valid selama output setiap anggota juga valid.

Risikonya adalah memilih bobot pada test set atau berulang kali menyesuaikannya terhadap validation set yang sama hingga overfit. Bobot ensemble secara operasional adalah parameter model karena dipilih menggunakan data dan membutuhkan evaluasi yang jujur.

Alur yang bersih:

training data   -> fit member models
validation data -> choose members and ensemble rule
final test data -> estimate final performance once

Jika data terbatas, cross-validation atau out-of-fold predictions dapat mendukung konstruksi ensemble tanpa memakai final test set untuk tuning.

Stacking membentuk aturan penggabungan dari data

Averaging memakai aturan kombinasi yang sama di semua tempat. Stacking melatih model lain, sering disebut meta-model, untuk menggabungkan prediksi anggota.

Tiga classifier, misalnya, dapat menghasilkan:

[p_A, p_B, p_C]

Logistic regression dapat memakai nilai tersebut sebagai feature untuk memetakan hubungan dengan target.

Feature pelatihan meta-model harus dibuat dengan hati-hati. Jika setiap base model memprediksi contoh yang juga dipakai untuk melatihnya, prediksi itu dapat terlihat terlalu baik. Meta-model kemudian menyesuaikan diri terhadap informasi yang bocor.

Pendekatan yang lebih aman menggunakan out-of-fold predictions:

split training data into folds
for each fold:
    train base models on the other folds
    predict the held-out fold
combine all held-out predictions
train the meta-model on those predictions

Setelah aturan kombinasi ditetapkan, base model dapat dilatih ulang sesuai rencana deployment.

Stacking dapat menangkap hubungan yang tidak tertangkap averaging sederhana, tetapi kompleksitas pipeline bertambah dan tersedia satu titik tambahan untuk overfitting. Averaging layak menjadi baseline sebelum menambahkan learned combiner.

Deep ensemble memakai training run independen

Untuk neural network, pendekatan umum adalah melatih arsitektur yang sama beberapa kali dengan random initialization dan randomness pelatihan berbeda, lalu merata-ratakan prediksinya.

Walaupun arsitektur dan dataset sama, optimasi non-convex dapat membawa run yang berbeda ke nilai parameter dan prediksi yang agak berbeda. Deep ensemble yang dihasilkan dapat meningkatkan predictive performance dan menyediakan sinyal disagreement untuk analisis uncertainty.

Untuk prediksi skalar dari M anggota:

mean = sum(prediction_i) / M

Lalu periksa spread di sekitar mean. Disagreement besar dapat menunjukkan anggota tidak sepakat terhadap input.

Namun, disagreement bukan ukuran uncertainty dunia nyata yang terjamin. Semua anggota dapat dengan confidence tinggi menghasilkan prediksi salah yang sama, terutama ketika berbagi data pelatihan dan asumsi pemodelan. Perlakukan ensemble spread sebagai sinyal yang perlu divalidasi, bukan bukti bahwa uncertainty telah terukur dengan benar.

Ukur nilai marginal saat ensemble bertambah

Menambah model biasanya meningkatkan biaya seiring tambahan eksekusi model, sementara peningkatan kualitas sering menunjukkan diminishing returns.

Misalkan hasil validasi:

1 model:  F1 = 0.842
2 models: F1 = 0.858
3 models: F1 = 0.863
4 models: F1 = 0.864

Model keempat hampir tidak menambah kualitas terukur pada contoh ini. Jika biaya inference produksi naik kira-kira sebesar satu eksekusi model lagi, trade-off tersebut mungkin tidak menarik.

Pola itu tidak harus berlaku pada setiap tugas. Bangun ensemble-size curve dengan mengevaluasi metrik yang relevan setelah setiap kandidat anggota ditambahkan, lalu catat latency, memori, dan biaya compute.

Pertanyaan deployment bukan berapa banyak model yang dapat digabungkan, tetapi pada titik mana anggota berikutnya tidak lagi sepadan dengan biayanya.

Biaya inference sering menjadi kelemahan utama

Jika tiga model independen harus berjalan untuk setiap request, sistem melakukan jauh lebih banyak komputasi daripada layanan satu model. Latency tidak harus menjadi tiga kali lipat karena model dapat berjalan sebagian secara paralel, tetapi eksekusi paralel juga membutuhkan kapasitas memori dan compute yang memadai.

Biaya yang relevan mencakup penyimpanan beberapa set parameter, menjaga beberapa model tetap resident, mengeksekusi setiap model per prediksi, menggabungkan output, serta memonitor dan memberi versi pada banyak artifact.

Untuk batch offline, biaya ini mungkin dapat diterima. Pada layanan latency-sensitive dengan hardware terbatas, biaya tersebut dapat mengalahkan peningkatan kualitas.

Jika ensemble memberi peningkatan akurasi yang berguna tetapi terlalu mahal untuk serving, knowledge distillation dapat menjadi langkah berikutnya: latih student yang lebih kecil agar mendekati perilaku ensemble. Distillation dapat mempertahankan sebagian manfaat, tetapi student adalah model baru dan harus dievaluasi secara independen.

Kesalahan implementasi yang sering muncul

Menggabungkan model duplikat

Lebih banyak anggota tidak menjamin diversitas yang berguna. Ukur perilaku error berpasangan dan peningkatan marginal ensemble.

Memilih anggota berdasarkan test set

Memilih ensemble terbaik setelah melihat performa test membuat test set menjadi bagian dari pengembangan model. Pisahkan final evaluation data dari pemilihan anggota dan bobot.

Menggabungkan output yang tidak kompatibel

Probabilitas dari model dengan urutan kelas berbeda tidak dapat dirata-ratakan dengan aman sebelum label disejajarkan. Hal serupa berlaku ketika preprocessing, definisi target, atau semantik output berbeda.

Mengabaikan calibration

Ensemble dapat meningkatkan akurasi tetapi tetap menghasilkan probabilitas dengan calibration buruk. Evaluasi properti yang benar-benar dikonsumsi aplikasi.

Membandingkan dengan baseline satu model yang lemah

Biaya tambahan ensemble harus dibenarkan terhadap single model yang sudah dituning dengan baik, bukan hanya baseline pertama yang dilatih.

Menganggap disagreement sebagai uncertainty yang terjamin

Anggota dapat berbagi blind spot karena menggunakan data dan asumsi yang sama. Validasi apakah disagreement benar-benar memprediksi error pada held-out data representatif dan shifted data sebelum memakainya untuk keputusan risiko otomatis.

Kondisi yang cocok untuk ensemble

Ensembling menarik ketika kualitas prediksi bernilai tinggi, beberapa model kompeten membuat error yang berbeda secara bermakna, dan sistem mampu menanggung biaya pelatihan serta inference tambahan. Pendekatan ini praktis untuk offline scoring, kompetisi, keputusan bernilai tinggi dengan volume request yang terkendali, atau sistem yang sudah memiliki hardware paralel.

Single model sering lebih sesuai ketika latency, memori, energi, atau kesederhanaan operasional mendominasi; ketika kandidat model membuat error hampir identik; atau ketika peningkatan kualitas terukur terlalu kecil untuk membenarkan banyak artifact.

Sebelum membangun stack kompleks, uji ensemble paling sederhana yang dapat memenuhi kebutuhan:

train independent competent models
align their outputs
average probabilities or regression predictions
evaluate on untouched data
measure end-to-end serving cost

Tambahkan weighting atau stacking hanya jika bukti validasi mendukung kompleksitas tambahan.

Penutup

Ensembling bekerja dengan menggabungkan model kompeten yang error-nya tidak sepenuhnya selaras. Averaging dapat meniadakan sebagian error spesifik model, tetapi jumlah model saja tidak menciptakan manfaat tersebut.

Mulai dari prediction averaging dengan bobot sama, periksa apakah anggota benar-benar memberi informasi pelengkap, dan evaluasi ensemble pada data yang tidak dipakai untuk memilih komposisinya. Lalu ukur sisi operasional trade-off: latency, memori, compute, dan maintenance.

Ensemble yang berguna bukan yang memiliki model paling banyak, melainkan kombinasi terkecil yang peningkatan kualitas terukurnya sepadan dengan biaya tambahan.