Kapan menggunakan Hutan Acak di atas SVM dan sebaliknya?

28

Ketika salah satu akan menggunakan Random Forestlebih SVMdan sebaliknya?

Saya memahami itu cross-validationdan perbandingan model merupakan aspek penting dalam memilih model, tetapi di sini saya ingin belajar lebih banyak tentang aturan praktis dan heuristik dari dua metode.

Dapatkah seseorang tolong jelaskan seluk-beluk, kekuatan, dan kelemahan pengklasifikasi serta masalah, yang paling cocok untuk masing-masing?

Rohit
sumber
1
Skor akurasi adalah satu-satunya ukuran sejati dari kinerja relatif mereka, meskipun mungkin ada penemuan sebelumnya yang menunjukkan jenis classifier dari banyak tersedia mungkin lebih baik pada tipe data Anda jika Anda beruntung. Anda mungkin lebih dibatasi oleh berapa lama waktu yang dibutuhkan untuk menyesuaikan parameter Anda, dalam hal ini Random Forest mungkin akan membuktikan proposisi yang lebih mudah dari keduanya.
image_doctor

Jawaban:

29

Saya akan mengatakan, pilihannya sangat tergantung pada data apa yang Anda miliki dan apa tujuan Anda. Beberapa "aturan praktis".

Random Forest secara intrinsik cocok untuk masalah multi-kelas, sedangkan SVM secara intrinsik adalah dua kelas. Untuk masalah multikelas, Anda perlu menguranginya menjadi beberapa masalah klasifikasi biner.

Random Forest berfungsi dengan baik dengan campuran fitur numerik dan kategoris. Ketika fitur berada di berbagai skala, itu juga baik-baik saja. Secara kasar, dengan Random Forest Anda dapat menggunakan data apa adanya. SVM memaksimalkan "margin" dan dengan demikian bergantung pada konsep "jarak" antara titik yang berbeda. Terserah Anda untuk memutuskan apakah "jarak" itu bermakna. Sebagai akibatnya, pengodean satu-panas untuk fitur-fitur kategorikal adalah suatu keharusan. Lebih lanjut, penskalaan minimal atau penskalaan lainnya sangat disarankan pada langkah preprosesing.

nmn×nn2

Untuk masalah klasifikasi, Random Forest memberi Anda kemungkinan memiliki kelas. SVM memberi Anda jarak ke batas, Anda masih perlu mengubahnya menjadi probabilitas entah bagaimana jika Anda membutuhkan probabilitas.

Untuk masalah-masalah tersebut, di mana SVM berlaku, umumnya berkinerja lebih baik daripada Hutan Acak.

SVM memberi Anda "vektor dukungan", yaitu titik di setiap kelas yang paling dekat dengan batas antar kelas. Mereka mungkin tertarik untuk interpretasi.

lanenok
sumber
Sekadar menambahkan: tidaklah mudah bagi Random Forest untuk memberikan Anda probabilitas. Anda juga memerlukan implementasi pohon keputusan yang probabilistik atau mengkalibrasi model Random Forest Anda yang sesuai setelahnya jika Anda menginginkan probabilitas 'benar'.
Archie
5

Model SVM berkinerja lebih baik pada data jarang daripada pohon pada umumnya. Misalnya dalam klasifikasi dokumen Anda mungkin memiliki ribuan, bahkan puluhan ribu fitur dan dalam vektor dokumen apa pun yang diberikan, hanya sebagian kecil dari fitur ini yang memiliki nilai lebih dari nol. Mungkin ada perbedaan lain di antara mereka, tetapi inilah yang saya temukan untuk masalah saya.

Bob Dillon
sumber
3

Itu benar-benar tergantung pada apa yang ingin Anda capai, seperti apa data Anda dan lain-lain. SVM umumnya akan bekerja lebih baik pada dependensi linear, jika tidak, Anda memerlukan kernel nonlinear dan pilihan kernel dapat mengubah hasil. Juga, SVM kurang dapat ditafsirkan - misalnya misalnya jika Anda ingin menjelaskan mengapa klasifikasi itu seperti itu - itu akan menjadi non-sepele. Pohon keputusan memiliki interpretabilitas yang lebih baik, mereka bekerja lebih cepat dan jika Anda memiliki variabel kategorikal / numerik dengan baik, apalagi: dependensi non-linear ditangani dengan baik (diberi N cukup besar). Mereka juga berlatih lebih cepat dari SVM pada umumnya, tetapi mereka cenderung ...

Saya juga akan mencoba Regresi Logistik - penggolong hebat yang dapat ditafsirkan)

Singkatnya - aturan praktisnya adalah mencoba apa saja dan membandingkan apa yang memberi Anda hasil / interpretasi terbaik.

Vitaly Portnoy
sumber
1

Untuk melengkapi poin-poin bagus yang telah dinyatakan:

Dari Apakah Kita Membutuhkan Ratusan Penggolong untuk Memecahkan Masalah Klasifikasi Dunia Nyata? hutan acak lebih mungkin untuk mencapai kinerja yang lebih baik daripada hutan acak.

Selain itu, cara algoritma diimplementasikan (dan untuk alasan teoretis) hutan acak biasanya jauh lebih cepat daripada SVM (non linear). Memang sebagai @Ianenok, SVM cenderung tidak dapat digunakan melebihi 10.000 titik data.

Namun, SVM diketahui berkinerja lebih baik pada beberapa dataset tertentu (gambar, data microarray ...).

Jadi, sekali lagi, validasi silang memang cara terbaik untuk mengetahui metode mana yang berkinerja terbaik.

Sumber: Hutan acak vs SVM

RUser4512
sumber
um? "Hutan acak lebih mungkin untuk mencapai kinerja yang lebih baik daripada hutan acak."
Sanjay Manohar