Apakah hutan acak merupakan algoritma peningkatan?


51

Definisi singkat untuk meningkatkan :

Bisakah satu set pelajar yang lemah menciptakan pelajar yang kuat? Pelajar yang lemah didefinisikan sebagai penggolong yang hanya sedikit berkorelasi dengan klasifikasi yang benar (ia dapat memberi label contoh yang lebih baik daripada menebak secara acak).

Definisi singkat dari Hutan Acak :

Hutan Acak menumbuhkan banyak pohon klasifikasi. Untuk mengklasifikasikan objek baru dari vektor input, letakkan vektor input ke bawah masing-masing pohon di hutan. Setiap pohon memberikan klasifikasi, dan kami mengatakan pohon "suara" untuk kelas itu. Hutan memilih klasifikasi yang memiliki suara terbanyak (atas semua pohon di hutan).

Definisi singkat lain dari Random Forest :

Hutan acak adalah estimator meta yang sesuai dengan sejumlah pengklasifikasi pohon keputusan pada berbagai sub-sampel dataset dan menggunakan rata-rata untuk meningkatkan akurasi prediktif dan kontrol over-fitting.

Seperti yang saya pahami Random Forest adalah algoritma peningkatan yang menggunakan pohon sebagai pengklasifikasi lemah. Saya tahu bahwa itu juga menggunakan teknik lain dan meningkatkannya. Seseorang mengoreksi saya bahwa Random Forest bukan algoritma peningkatan?

Dapatkah seseorang menjelaskan hal ini, mengapa Random Forest bukan algoritma penguat?


13
Hutan acak adalah algoritme pengemasan : en.wikipedia.org/wiki/Bootstrap_aggregating . Saya sarankan Anda membaca lebih dari deskripsi sesingkat mungkin untuk meningkatkan perbedaannya. Dalam meningkatkan, strategi resampling tidak acak.
Marc Claesen

12
Fakta menyenangkan: dalam makalah Random Forest asli Breiman menunjukkan bahwa AdaBoost (tentu saja algoritma peningkatan) sebagian besar melakukan Random Forest ketika, setelah beberapa iterasi, ruang optimasinya menjadi sangat bising sehingga hanya melayang-layang secara stokastik.

Jawaban:


81

Random Forest adalah algoritma pengemasan daripada algoritma penguat. Mereka adalah dua cara yang berlawanan untuk mencapai kesalahan rendah.

Kita tahu bahwa kesalahan dapat disusun dari bias dan varians. Model yang terlalu kompleks memiliki bias rendah tetapi varians besar, sedangkan model terlalu sederhana memiliki varians rendah tetapi bias besar, keduanya menyebabkan kesalahan tinggi tetapi dua alasan berbeda. Akibatnya, dua cara berbeda untuk menyelesaikan masalah muncul dalam pikiran orang (mungkin Breiman dan lainnya), pengurangan varians untuk model yang kompleks, atau pengurangan bias untuk model sederhana, yang mengacu pada hutan acak dan peningkatan.

Hutan acak mengurangi varians dari sejumlah besar model "kompleks" dengan bias rendah. Kita bisa melihat elemen komposisi bukan model "lemah" tetapi model terlalu kompleks. Jika Anda membaca tentang algoritme, pohon di bawahnya ditanam "agak" sebesar "mungkin". Pohon yang mendasarinya adalah model paralel independen. Dan pemilihan variabel acak tambahan diperkenalkan ke dalamnya untuk membuatnya lebih mandiri, yang membuatnya berkinerja lebih baik daripada pengantongan biasa dan memberi nama "acak".

Sementara meningkatkan mengurangi bias sejumlah besar model "kecil" dengan varian rendah. Mereka adalah model "lemah" seperti yang Anda kutip. Elemen-elemen yang mendasarinya entah bagaimana seperti model iteratif "rantai" atau "bersarang" tentang bias dari setiap level. Jadi mereka bukan model paralel independen tetapi masing-masing model dibangun berdasarkan semua model kecil sebelumnya dengan pembobotan. Itulah yang disebut "meningkatkan" dari satu per satu.

Makalah dan buku Breiman membahas tentang pohon, hutan acak, dan peningkatan cukup banyak. Ini membantu Anda untuk memahami prinsip di balik algoritma.


26

Hutan acak tidak dianggap sebagai tipe penguat algoritma.

Seperti yang dijelaskan dalam tautan peningkatan Anda:

... kebanyakan meningkatkan algoritma terdiri dari iteratif mempelajari pengklasifikasi lemah sehubungan dengan distribusi dan menambahkannya ke pengklasifikasi kuat terakhir. Ketika mereka ditambahkan, mereka biasanya tertimbang dalam beberapa cara yang biasanya terkait dengan keakuratan peserta didik yang lemah. Setelah pelajar yang lemah ditambahkan, data diulang kembali ...

Contoh dari proses iteratif ini adaboost, di mana hasil yang lebih lemah didorong atau diubah pada banyak iterasi untuk membuat pelajar lebih fokus pada area yang salah, dan lebih sedikit pada pengamatan yang benar.

Sebaliknya, hutan acak adalah metode pembuatan bagan ensemble atau rata-rata yang bertujuan untuk mengurangi varians masing-masing pohon dengan memilih secara acak (dan dengan demikian tidak berkorelasi) banyak pohon dari dataset, dan rata-rata.


7

Ini merupakan perpanjangan dari mengantongi. Prosedurnya adalah sebagai berikut, Anda mengambil sampel bootstrap data Anda dan kemudian menggunakannya untuk menumbuhkan pohon klasifikasi atau regresi (CART). Ini dilakukan sejumlah waktu yang telah ditentukan dan prediksi kemudian merupakan agregasi dari prediksi pohon individu, bisa berupa suara mayoritas (untuk klasifikasi) atau rata-rata (untuk regresi). Pendekatan ini disebut bagging (Breiman 1994). Selanjutnya variabel kandidat untuk setiap pemisahan masing - masingpohon diambil dari sampel acak dari semua variabel independen yang tersedia. Ini semakin menambah variabilitas dan membuat pohon semakin beragam. Ini disebut metode ruang bagian acak (Ho, 1998). Seperti disebutkan, ini menghasilkan pohon yang sangat beragam yang diterjemahkan menjadi pohon yang sangat independen satu sama lain. Karena ketidaksetaraan Jensen kita tahu bahwa rata-rata kesalahan prediksi pohon ini akan lebih kecil atau sama dengan kesalahan rata-rata pohon yang tumbuh dari kumpulan data itu. Cara lain untuk melihatnya adalah dengan melihat Mean Squared Error dan perhatikan bagaimana ia dapat didekomposisi dalam bagian-bagian bias dan varians (ini terkait dengan masalah dalam pembelajaran yang diawasi yang disebut trade-variance bias). Hutan acak mencapai akurasi yang lebih baik dengan mengurangi varians melalui rata-rata prediksi pohon ortogonal. Perlu dicatat bahwa ia mewarisi bias pohon-pohonnya, yang merupakan masalah yang cukup dibahas, periksa contoh pertanyaan ini .



3

Hutan acak adalah teknik mengantongi dan bukan teknik meningkatkan. Dalam meningkatkan seperti namanya, satu belajar dari yang lain yang pada gilirannya meningkatkan pembelajaran.

Pohon-pohon di hutan acak dijalankan secara paralel. Tidak ada interaksi antara pohon-pohon ini saat membangun pohon. Setelah semua pohon dibangun, maka pemungutan suara atau rata-rata diambil di semua prediksi pohon tergantung pada apakah masalahnya adalah klasifikasi atau masalah regresi.

Pohon-pohon dalam meningkatkan algoritma seperti mesin Meningkatkan Gradient GBM dilatih secara berurutan.

Katakanlah pohon pertama dilatih dan melakukan beberapa prediksi pada data pelatihan. Tidak semua prediksi ini benar. Katakanlah dari total 100 prediksi, pohon pertama membuat kesalahan untuk 10 pengamatan. Sekarang 10 pengamatan ini akan diberikan bobot lebih ketika membangun pohon kedua. Perhatikan bahwa pembelajaran pohon kedua mendapat dorongan dari pembelajaran pohon pertama. Makanya, istilah boosting. Dengan cara ini, masing-masing pohon dibangun secara berurutan atas pembelajaran dari pohon-pohon masa lalu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.