Kapan harus menghindari Hutan Acak?

25

Hutan acak dikenal berkinerja cukup baik pada berbagai tugas dan telah disebut sebagai penyusun metode pembelajaran . Apakah ada jenis masalah atau kondisi khusus di mana seseorang harus menghindari penggunaan hutan acak?

tSema
sumber
8
Hai. "PLS adalah pengrajin kulit ...", "Bootstrap adalah pengrajin kulit ...", "Hutan acak adalah pengrajin kulit ..." <- Aku menyarankanmu untuk curiga dengan klaim seperti itu. Itu hanya komentar :)
Stéphane Laurent

Jawaban:

24

Berpikir tentang bahasa tertentu dari kutipan, seorang penyamak kulit adalah multi-alat: satu perangkat keras dengan banyak alat kecil yang terselip di dalamnya. Ini adalah tang, pisau, obeng, dan lainnya! Alih-alih harus membawa masing-masing alat ini secara terpisah, leatherman adalah item tunggal yang dapat Anda klip di celana Anda sehingga selalu ada di tangan. Ini mudah , tetapi timbal baliknya adalah bahwa masing-masing alat komponen bukan yang terbaik dalam pekerjaannya. Pembuka kaleng sulit digunakan, bit obeng biasanya ukurannya salah, dan pisau bisa menghasilkan sedikit lebih banyak daripada meraut. Jika melakukan salah satu dari tugas-tugas ini sangat penting, Anda akan lebih baik dilayani dengan alat khusus: pisau yang sebenarnya, obeng yang sebenarnya, atau tang yang sebenarnya.

Hutan acak dapat dipikirkan dengan istilah yang sama. Hutan acak menghasilkan hasil yang kuat pada berbagai set data, dan tidak terlalu sensitif terhadap parameter penyetelan. Tapi itu tidak sempurna. Semakin banyak Anda tahu tentang masalah, semakin mudah untuk membangun model khusus untuk mengakomodasi masalah khusus Anda.

Ada beberapa kasus nyata dimana hutan acak akan berjuang:

  • Sparsity - Ketika data sangat jarang, sangat masuk akal bahwa untuk beberapa node, sampel bootstrap dan subset acak fitur akan berkolaborasi untuk menghasilkan ruang fitur yang invarian. Tidak ada pemisahan produktif yang bisa didapat, jadi tidak mungkin anak-anak simpul ini akan sangat membantu. XGBoost dapat berbuat lebih baik dalam konteks ini.

  • Data tidak sejajar sumbu - Misalkan ada batas keputusan diagonal dalam ruang dua fitur, dan . Bahkan jika ini adalah satu-satunya dimensi yang relevan dengan data Anda, itu akan mengambil model hutan acak biasa banyak perpecahan untuk menggambarkan batas diagonal itu. Ini karena setiap pemisahan berorientasi tegak lurus terhadap sumbu atau . (Ini harus intuitif karena model hutan acak biasa sedang membuat split dari formulirx1x2x1x2x1>4.) Hutan rotasi, yang melakukan proyeksi PCA pada subset fitur yang dipilih untuk setiap split, dapat digunakan untuk mengatasi hal ini: proyeksi menjadi basis ortogonal, pada prinsipnya, akan mengurangi pengaruh properti sejajar sumbu karena pemisahan tidak akan lagi sejajar sumbu di dasar aslinya.

    Gambar ini memberikan contoh lain tentang bagaimana perpecahan sumbu mempengaruhi keputusan hutan secara acak. Batas keputusan adalah lingkaran di titik asal, tetapi perhatikan bahwa model hutan acak khusus ini menggambar kotak untuk memperkirakan lingkaran. Ada beberapa hal yang dapat dilakukan untuk meningkatkan batasan ini; yang paling sederhana termasuk mengumpulkan lebih banyak data dan membangun lebih banyak pohon. masukkan deskripsi gambar di sini

  • Hutan acak pada dasarnya hanya bekerja pada data tabel,yaitu tidak ada hubungan yang kuat, penting secara kualitatif di antara fitur-fitur dalam arti data menjadi gambar, atau pengamatan yang disatukan dalam grafik. Struktur ini biasanya tidak didekati dengan baik oleh banyak partisi persegi panjang. Jika data Anda hidup dalam rangkaian waktu, atau serangkaian gambar, atau hidup pada grafik, atau memiliki struktur yang jelas lainnya, hutan acak akan mengalami kesulitan untuk mengenali itu. Saya tidak ragu bahwa para peneliti telah mengembangkan variasi pada metode untuk mencoba mengakomodasi situasi-situasi ini, tetapi hutan acak vanila tidak perlu mengambil struktur ini dengan cara yang bermanfaat. Kabar baiknya adalah bahwa Anda biasanya tahu kapan hal ini terjadi, yaitu Anda tahu Anda memiliki gambar, rangkaian waktu atau grafik untuk digunakan,
Sycorax berkata Reinstate Monica
sumber
Saya pikir hutan acak vanili memiliki potensi untuk mengenali partisi non persegi panjang. Kita dapat memiliki fitur kuadrat misalnya dan mengenali batasan seperti x ^ 2 <c.
Aniruddha Acharya
2
@AniruddhaAcharya aku berkata "berjuang," tidak gagal. Jawaban saya di sini menjelaskan bahwa fitur kuadrat bukan masalah yang tidak dapat diatasi. Tetapi diagonal atau kuadratik atau tipe pemisahan yang tidak selaras lainnya akan mengharuskan pohon untuk membelah fitur-fitur tersebut berulang-ulang dalam bentuk persegi panjang untuk memperkirakan diagonal / kurva. Anda dapat melihat efek itu di plot untuk posting ini: lihat sudut tajam. RF menggunakan kotak untuk memperkirakan lingkaran.
Sycorax berkata Reinstate Monica
Maksud saya memberi makan fitur kuadratik (dan orde tinggi lainnya) ke RF akan mengurangi kesulitan dalam memodelkan partisi non persegi panjang. Misalnya, RF dapat menggunakan 2 kuadrat untuk memperkirakan lingkaran alih-alih menggunakan kuadrat. Meskipun saya setuju bahwa itu tidak semudah model yang menggabungkan interaksi antara variabel, saya merasa itu tidak sulit karena RF tidak dibatasi untuk menggunakan ambang batas pada fitur mentah.
Aniruddha Acharya
1
@AniruddhaAcharya Jika Anda tahu istilah kuadrat adalah model yang tepat, Anda tidak perlu hutan acak: cukup tambahkan istilah kuadrat ke model linier. RF adalah cara yang baik untuk memperkirakan fungsi arbitrer, terutama ketika mereka memiliki fungsi keputusan yang selaras.
Sycorax berkata Reinstate Monica
Mengapa rekayasa fitur (istilah kuadratik) disarankan oleh @AniruddhaAcharya bukan langkah yang berguna untuk digunakan bersama dengan RF? Ya, fitur tersebut dapat ditambahkan ke model linier: tetapi yang terakhir tidak memberikan perilaku menggabungkan kontribusi dari banyak hasil yang dioptimalkan secara individual untuk subset berbeda dari fitur.
javadba
22

Tikungan tajam. Ketepatan.

Mereka menggunakan metode difusi. Mereka cocok dengan hal-hal yang kental. Mereka tidak cocok dengan hal-hal rumit dan sangat rinci dengan baik ketika ukuran sampel rendah. Saya akan membayangkan bahwa mereka tidak bekerja dengan baik pada data deret waktu multivariat - ketika sesuatu di sini tergantung pada satu hal di kejauhan.

Hutan yang ditingkatkan secara gradien mungkin cocok atau terlalu pas, tetapi bisa mendapatkan kesalahan yang jauh lebih rendah untuk data yang sama.

" Leathermen " tidak ada. Tidak ada "peluru perak". Ada kotak alat. Ketahui alat-alat Anda, dan jaga baik-baik agar mereka dapat merawat Anda. Berhati-hatilah dengan "ketika Anda palu, maka setiap masalah tampak seperti paku" terutama ketika Anda tidak memiliki perpustakaan yang padat di kotak peralatan Anda.

Sampai Anda tahu masalahnya dengan baik, mudah untuk membayangkan apa pun yang bisa menyelesaikannya, atau alat favorit Anda yang bisa menyelesaikannya. Kebijaksanaan menyarankan untuk memahami masalah secara mendalam, dan menjadi sangat akrab dengan alat Anda.

Ditambahkan: Jika Anda memiliki sumber daya komputasi yang cukup atau batas waktu untuk menggunakan sesuatu yang lain. RF tidak hanya cepat untuk dilatih, tetapi juga cepat untuk dieksekusi. Struktur yang dikuatkan sangat dalam kurang dari itu. Anda harus memiliki overhead untuk mendukungnya.

EngrStudent - Pasang kembali Monica
sumber
2
Untuk menjadi pendukung setan di sini: Tidak ada yang akan " cocok dengan hal-hal rumit dan sangat rinci dengan baik ketika ukuran sampel rendah. "
usεr11852 mengatakan Reinstate Monic
5

Ini adalah pertama kalinya saya benar-benar menjawab pertanyaan, jadi jangan beri tahu saya .. tapi saya pikir saya bisa menjawab pertanyaan Anda:

Jika Anda memang hanya tertarik pada kinerja model dan tidak dalam hal seperti interpretability random forest memang seringkali merupakan algoritma pembelajaran yang sangat baik, tetapi berkinerja sedikit lebih buruk dalam kasus-kasus berikut:

1.) Ketika dimensi (jumlah fitur) sangat tinggi sehubungan dengan jumlah sampel pelatihan, dalam kasus-kasus tersebut, regresi linier yang teregulasi atau SVM akan lebih baik.

2.) Dalam kasus ini terdapat representasi orde tinggi / struktur konvolusional dalam data, seperti misalnya dalam masalah penglihatan komputer. Dalam kasus-kasus visi komputer jaringan saraf convolutional akan mengungguli hutan acak (Secara umum jika ada pengetahuan seseorang dapat dimasukkan ke dalam pembelajaran yang merupakan hal yang lebih baik).

Itu dikatakan hutan acak adalah titik awal yang sangat baik. Salah satu orang yang saya kagumi karena keterampilan Pembelajaran Mesinnya selalu dimulai dengan belajar hutan acak dan regresi linier yang teratur.

Namun, jika Anda menginginkan kinerja terbaik saya yakin saat ini jaringan syaraf alias. Deep Learning terlihat seperti pendekatan yang sangat menarik. Semakin banyak pemenang di situs web tantangan data seperti Kaggle menggunakan model Deep Learning untuk kompetisi. Pro lain dari jaringan saraf adalah bahwa mereka dapat menangani jumlah sampel yang sangat besar (> 10 ^ 6 orang dapat melatih mereka menggunakan penurunan gradien stokastik, memberi makan bit data sekaligus). Secara pribadi saya menemukan ini pro yang sangat menarik untuk Deep Learning.

MJW
sumber
2
Jawaban yang bagus, tetapi poin terakhir Anda tidak benar: pelatihan mini-batch dapat diterapkan untuk semua algoritma pembelajaran mesin yang umum, lihat misalnya h2o .
jubo
Oke, menarik, saya tidak tahu itu. Apakah Anda mengatakan bahwa dengan menggunakan metode ini seseorang dapat melatih pohon (keputusan) menggunakan pembelajaran mini-batch / SGD dan dengan demikian membangun satu pohon berdasarkan pemisahan mayoritas dari total data pelatihan (katakanlah 65%)?
MJW
1
Saya pikir hutan acak masih harus bagus ketika jumlah fitur tinggi - hanya saja tidak menggunakan banyak fitur sekaligus ketika membangun satu pohon, dan pada akhirnya Anda akan memiliki hutan pengklasifikasi independen yang secara kolektif seharusnya ( semoga) lakukan dengan baik.
Alexey Grigorev
Sejauh yang saya mengerti, H2O menggunakan paradigma pengurangan peta untuk pelatihan minibatch. Pohon tunggal (CART) tidak diterapkan seperti itu di H2O (tapi saya kira pohon yang tidak ditandai adalah kasus khusus dari hutan acak dengan hanya satu pohon dan pilihan prediktor maksimum?).
jubo
2
Apa justifikasi untuk (1)? Anda mengajukan klaim, tetapi tidak memberikan argumen pendukung.
Sycorax berkata Reinstate Monica
0

Pertama-tama, Hutan Acak tidak dapat diterapkan ke tipe data berikut:

  • gambar
  • audio
  • teks (setelah data praproses akan jarang dan RF tidak berfungsi dengan baik dengan data jarang)

Untuk tipe data tabular, selalu baik untuk memeriksa Random Forest karena:

  • itu membutuhkan lebih sedikit persiapan dan preprocessing data daripada Neural Networks atau SVMs. Misalnya, Anda tidak perlu melakukan penskalaan fitur.
  • Untuk pelatihan Random Forest Anda cukup menggunakan parameter default dan mengatur jumlah pohon ( semakin banyak pohon dalam RF semakin baik ). Saat Anda membandingkan Random Forest dengan Neural Networks , pelatihannya sangat mudah (tidak perlu mendefinisikan arsitektur, atau menyetel algoritma pelatihan). Random Forest lebih mudah dilatih daripada Neural Networks.
pplonski
sumber