Apa persamaan dan perbedaan antara 3 metode ini:
- Mengantongi,
- Meningkatkan,
- Susun?
Mana yang terbaik? Dan mengapa?
Bisakah Anda memberi saya contoh untuk masing-masing?
Apa persamaan dan perbedaan antara 3 metode ini:
Mana yang terbaik? Dan mengapa?
Bisakah Anda memberi saya contoh untuk masing-masing?
Jawaban:
Ketiganya disebut "meta-algoritme": pendekatan untuk menggabungkan beberapa teknik pembelajaran mesin menjadi satu model prediktif untuk mengurangi varians ( mengantongi ), bias ( meningkatkan ), atau meningkatkan kekuatan prediktif ( susun alias ensemble ).
Setiap algoritma terdiri dari dua langkah:
Memproduksi distribusi model ML sederhana pada himpunan bagian dari data asli.
Menggabungkan distribusi menjadi satu model "teragregasi".
Berikut ini deskripsi singkat dari ketiga metode ini:
Mengantongi (singkatan dari B ootstrap Agg Regat ing ) adalah cara untuk mengurangi varians dari prediksi Anda dengan menghasilkan data tambahan untuk pelatihan dari dataset asli Anda menggunakan kombinasi dengan pengulangan untuk menghasilkan multisets dari kardinalitas yang sama / ukuran sebagai data asli Anda. Dengan meningkatkan ukuran set pelatihan Anda, Anda tidak dapat meningkatkan kekuatan prediktif model, tetapi cukup kurangi variannya, sesuaikan prediksi dengan hasil yang diharapkan.
Boosting adalah pendekatan dua langkah, di mana yang pertama menggunakan himpunan bagian dari data asli untuk menghasilkan serangkaian model yang berperforma rata-rata dan kemudian "meningkatkan" kinerja mereka dengan menggabungkannya bersama-sama menggunakan fungsi biaya tertentu (= suara terbanyak). Tidak seperti bagging, dalam meningkatkan klasik pembuatan subset tidak acak dan tergantung pada kinerja model sebelumnya: setiap himpunan bagian baru berisi elemen yang (kemungkinan) salah diklasifikasi oleh model sebelumnya.
Penumpukan mirip dengan meningkatkan: Anda juga menerapkan beberapa model pada data asli Anda. Perbedaannya di sini adalah, bagaimanapun, bahwa Anda tidak hanya memiliki rumus empiris untuk fungsi berat badan Anda, melainkan Anda memperkenalkan tingkat meta dan menggunakan model / pendekatan lain untuk memperkirakan input bersama dengan output dari setiap model untuk memperkirakan bobot atau , dengan kata lain, untuk menentukan model apa yang berkinerja baik dan apa yang diberikan data input ini dengan buruk.
Ini adalah tabel perbandingan:
Seperti yang Anda lihat, semua ini adalah pendekatan yang berbeda untuk menggabungkan beberapa model menjadi yang lebih baik, dan tidak ada pemenang tunggal di sini: semuanya tergantung pada domain Anda dan apa yang akan Anda lakukan. Anda masih dapat memperlakukan penumpukan sebagai semacam peningkatan lebih lanjut , namun, kesulitan menemukan pendekatan yang baik untuk tingkat meta Anda membuatnya sulit untuk menerapkan pendekatan ini dalam praktik.
Contoh singkat masing-masing:
Mengantongi :
ansambel paralel : setiap model dibangun secara independen
bertujuan untuk mengurangi varians , bukan bias
cocok untuk varians rendah model bias rendah (model kompleks)
contoh dari metode berbasis pohon adalah hutan acak , yang mengembangkan pohon yang tumbuh penuh (perhatikan bahwa RF memodifikasi prosedur penanaman untuk mengurangi korelasi antar pohon)
Meningkatkan :
ensemble berurutan : coba tambahkan model baru yang berfungsi dengan baik di mana kekurangan model sebelumnya
bertujuan untuk mengurangi bias , bukan varians
cocok untuk varians rendah model bias tinggi
contoh metode berbasis pohon adalah peningkatan gradien
Hanya untuk menguraikan jawaban Yuqian sedikit. Gagasan di balik mengantongi adalah bahwa ketika Anda BERLAKU dengan metode regresi nonparametrik (biasanya pohon regresi atau klasifikasi, tetapi dapat berupa metode nonparametrik apa pun), Anda cenderung memilih varian yang tinggi, tidak ada (atau rendah) bias yang bias. pengorbanan varians. Ini karena model overfitting sangat fleksibel (bias sangat rendah pada banyak sampel dari populasi yang sama, jika tersedia) tetapi memiliki variabilitas tinggi (jika saya mengumpulkan sampel dan mengenakannya, dan Anda mengumpulkan sampel dan mengenakannya, kami hasilnya akan berbeda karena regresi non-parametrik melacak kebisingan dalam data). Apa yang bisa kita lakukan? Kita dapat mengambil banyak contoh (dari bootstrap), masing-masing overfitting, dan rata-rata bersama-sama. Ini harus mengarah pada bias yang sama (rendah) tetapi membatalkan beberapa varians,
Peningkatan gradien pada intinya bekerja dengan UNDERFIT regresi nonparametrik, yang terlalu sederhana dan dengan demikian tidak cukup fleksibel untuk menggambarkan hubungan nyata dalam data (yaitu bias) tetapi, karena mereka di bawah pas, memiliki varian rendah (Anda akan cenderung untuk mendapatkan hasil yang sama jika Anda mengumpulkan set data baru). Bagaimana Anda mengoreksi hal ini? Pada dasarnya, jika Anda tidak cocok, RESIDUAL model Anda masih mengandung struktur yang berguna (informasi tentang populasi), jadi Anda menambah pohon yang Anda miliki (atau prediktor nonparametrik apa pun) dengan pohon yang dibangun di atas residu. Ini harus lebih fleksibel daripada pohon asli. Anda berulang kali menghasilkan lebih banyak pohon, masing-masing pada langkah k ditambah oleh pohon tertimbang berdasarkan pohon yang sesuai dengan residu dari langkah k-1. Salah satu pohon ini harus optimal, jadi Anda berakhir dengan menimbang semua pohon ini bersama-sama atau memilih yang tampaknya paling cocok. Jadi meningkatkan gradien adalah cara untuk membangun sekelompok pohon kandidat yang lebih fleksibel.
Seperti semua pendekatan regresi atau klasifikasi nonparametrik, kadang-kadang mengantongi atau meningkatkan bekerja sangat baik, kadang-kadang satu atau pendekatan lain biasa-biasa saja, dan kadang-kadang satu atau pendekatan lain (atau keduanya) akan hancur dan terbakar.
Juga, kedua teknik ini dapat diterapkan untuk pendekatan regresi selain pohon, tetapi mereka paling sering dikaitkan dengan pohon, mungkin karena sulit untuk menetapkan parameter sehingga untuk menghindari kurang pas atau overfitting.
Singkatnya, Bagging dan Boosting biasanya digunakan di dalam satu algoritma, sedangkan Stacking biasanya digunakan untuk merangkum beberapa hasil dari algoritma yang berbeda.
Random Forest
, yang menghilangkan varians dan tidak memiliki masalah overfitting.GBM
dan XGBoost
, yang menghilangkan varians tetapi memiliki masalah overfitting.baik mengantongi dan meningkatkan menggunakan algoritma pembelajaran tunggal untuk semua langkah; tetapi mereka menggunakan metode berbeda dalam menangani sampel pelatihan. keduanya adalah metode pembelajaran ensemble yang menggabungkan keputusan dari beberapa model
Bagging :
1. memberi contoh data pelatihan untuk mendapatkan subset M (bootstrap);
2. melatih pengklasifikasi M (algoritma yang sama) berdasarkan pada dataset M (sampel yang berbeda);
3. final classifier menggabungkan output M dengan pemungutan suara;
berat sampel sama;
bobot pengklasifikasi sama;
mengurangi kesalahan dengan mengurangi varians
Boosting : di sini fokus pada algoritma adaboost
1. mulai dengan bobot yang sama untuk semua sampel di babak pertama;
2. pada putaran M-1 berikut, menambah bobot sampel yang salah diklasifikasikan dalam putaran terakhir, mengurangi bobot sampel dengan benar diklasifikasikan dalam putaran terakhir
3. menggunakan pemungutan suara tertimbang, penggolong akhir menggabungkan beberapa penggolong dari putaran sebelumnya, dan memberikan bobot lebih besar untuk pengklasifikasi dengan kesalahan klasifikasi yang lebih sedikit.
sampel reweights langkah-bijaksana; bobot untuk setiap putaran berdasarkan hasil
sampel putaran ulang berat terakhir (boosting) alih-alih resampling (bagging).