Ketika salah satu akan menggunakan Random Forest
lebih SVM
dan sebaliknya?
Saya memahami itu cross-validation
dan 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?
Jawaban:
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.
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.
sumber
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.
sumber
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.
sumber
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
sumber