Saya mencari alternatif untuk Pohon Klasifikasi yang mungkin menghasilkan daya prediksi yang lebih baik.
Data yang saya hadapi memiliki faktor untuk variabel penjelas dan penjelas.
Saya ingat pernah menemukan hutan acak dan jaringan saraf dalam konteks ini, meskipun tidak pernah mencobanya sebelumnya, apakah ada kandidat lain yang baik untuk tugas pemodelan seperti itu (dalam R, tentu saja)?
r
machine-learning
classification
cart
Tal Galili
sumber
sumber
Jawaban:
Saya pikir akan sangat berharga untuk mencoba Random Forests ( randomForest ); beberapa referensi diberikan sebagai jawaban atas pertanyaan terkait: Pemilihan fitur untuk model "final" saat melakukan validasi silang dalam pembelajaran mesin ; Bisakah model CART dibuat kuat? . Boosting / bagging membuat mereka lebih stabil daripada satu CART yang dikenal sangat sensitif terhadap gangguan kecil. Beberapa penulis berpendapat bahwa itu dilakukan serta dihukum SVM atau Gradient Boosting Machines (lihat, misalnya Cutler et al., 2009). Saya pikir mereka pasti mengungguli NNs.
Boulesteix dan Strobl memberikan gambaran yang bagus tentang beberapa pengklasifikasi dalam pemilihan pengklasifikasi Optimal dan bias negatif dalam estimasi tingkat kesalahan: studi empiris pada prediksi dimensi tinggi (BMC MRM 2009 9: 85). Saya pernah mendengar tentang penelitian lain yang baik pada pertemuan IV EAM , yang harus ditinjau dalam Statistik dalam Kedokteran ,
Saya juga menyukai paket caret : ia didokumentasikan dengan baik dan memungkinkan untuk membandingkan akurasi prediktif dari pengklasifikasi yang berbeda pada set data yang sama. Ini menangani pengelolaan sampel pelatihan / uji, akurasi komputasi, dll dalam beberapa fungsi yang mudah digunakan.
The glmnet paket, dari Friedman dan coll., Alat dihukum GLM (lihat review di Journal of Software statistik ), sehingga Anda tetap dalam kerangka pemodelan terkenal.
Jika tidak, Anda juga dapat mencari pengklasifikasi berdasarkan aturan asosiasi (lihat Tampilan Tugas CRAN pada Pembelajaran Mesin atau 10 algoritma teratas dalam penambangan data untuk pengenalan lembut pada beberapa di antaranya).
Saya ingin menyebutkan pendekatan lain yang menarik yang saya rencanakan untuk diterapkan kembali dalam R (sebenarnya, ini adalah kode Matlab) yang merupakan Analisis Korespondensi Diskriminan dari Hervé Abdi. Meskipun awalnya dikembangkan untuk mengatasi studi sampel kecil dengan banyak variabel penjelas (akhirnya dikelompokkan menjadi blok yang koheren), tampaknya secara efisien menggabungkan DA klasik dengan teknik reduksi data.
Referensi
sumber
Penting untuk diingat bahwa tidak ada satu algoritma yang selalu lebih baik daripada yang lain. Sebagaimana dinyatakan oleh Wolpert dan Macready, "dua algoritma apa pun setara ketika kinerjanya dirata-rata untuk semua masalah yang mungkin terjadi." (Lihat Wikipedia untuk detailnya.)
Untuk aplikasi yang diberikan, yang "terbaik" umumnya adalah yang paling dekat dengan aplikasi Anda dalam hal asumsi yang dibuatnya, jenis data yang dapat ditangani, hipotesis yang dapat diwakilinya, dan sebagainya.
Jadi, ide yang bagus untuk mengkarakterisasi data Anda sesuai dengan kriteria seperti:
Dengan menjawab ini, Anda dapat menghilangkan beberapa algoritme dan mengidentifikasi yang lainnya berpotensi relevan, dan kemudian mungkin berakhir dengan serangkaian kecil metode kandidat yang telah Anda pilih secara cerdas yang sepertinya berguna.
Maaf tidak memberi Anda jawaban sederhana, tapi saya harap ini membantu!
sumber
Untuk klasifikasi multi-kelas, mesin vektor dukungan juga merupakan pilihan yang baik. Saya biasanya menggunakan paket R kernlab untuk ini.
Lihat kertas JSS berikut untuk diskusi yang baik: http://www.jstatsoft.org/v15/i09/
sumber
kernlab
untuke1071
.Seperti yang telah disebutkan Hutan Acak adalah "peningkatan" alami dan, belakangan ini, SVM umumnya merupakan teknik yang direkomendasikan untuk digunakan.
Saya ingin menambahkan bahwa lebih sering daripada tidak beralih ke SVM menghasilkan hasil yang sangat mengecewakan. Masalahnya, sementara teknik seperti pohon acak hampir sepele untuk digunakan, SVM agak rumit.
Saya menemukan makalah ini sangat berharga ketika saya menggunakan SVM untuk pertama kalinya (Panduan Praktis untuk Mendukung Klasifikasi Vektor) http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf
Dalam R Anda dapat menggunakan paket e1071 untuk SVM, itu bertautan dengan standar de facto (setidaknya dalam perangkat lunak bebas!) LibSVM.
sumber
Nilainya untuk melihat pengklasifikasi Naive Bayes . Dalam R Anda dapat melakukan klasifikasi Naif Bayes dalam paket e1071 dan klaR .
sumber