Saya sedang mengerjakan masalah multiclass dengan 9 kemungkinan label, yang mana saya memiliki dataset yang terdiri dari ~ 50.000 contoh dan ~ 200 fitur masing-masing. Setiap contoh hanya dapat dimiliki oleh satu kelas. Data cukup seimbang di antara label yang berbeda.
Mengingat kekokohan dan skalabilitasnya, saya memutuskan untuk menggunakan Random Forest (dengan ansambel 1000 pohon) sebagai metode pembelajaran. Untuk menilai akurasi kinerja model yang diberikan dataset ini, saya menggunakan stratified5Fold cross-validation (Saya menggunakan scikit-belajar 0,18).
Karena Random Forest secara inheren dapat menangani dataset multiclass, saya menggunakannya secara langsung pada dataset yang diberikan dan memperoleh akurasi 79,5 0,3. Saya juga tertarik mengetahui fitur mana yang lebih penting, sesuatu yang dapat dengan mudah diekstraksi dari atribut feature_importances_ di RandomForestClassifier dari scikit. Namun, mengingat bahwa dataset sangat seimbang dan bahwa, seperti yang diharapkan, ada jumlah fitur yang hampir sama dari 200 untuk berkontribusi ke kelas yang berbeda, saya tidak dapat mengisolasi fitur mana yang paling berkontribusi untuk setiap kelas.
Sebagai konsekuensinya, saya mengadopsi strategi satu-lawan-semua menggunakan pengaturan Hutan Acak yang sama (dengan cara biaya-sensitif, dengan mempertimbangkan ketidakseimbangan data saat menggunakan strategi oneVsAll), yang memungkinkan saya melihat untuk setiap kelas versus sisanya fitur mana yang lebih penting. Hasil yang saya dapatkan tentang ini masuk akal. Terlebih lagi, ketika melihat kinerja model yang menggunakan strategi ini, saya mendapatkan akurasi 0,8,7 , yang menurut saya mengejutkan karena saya mengharapkan multiclass Random Forest untuk mengklasifikasikan lebih baik mengingat sifat multiclassnya.
Apakah saya benar dalam hal ini? Mungkinkah perbedaan dalam akurasi itu masuk akal? Lebih lanjut, Apakah strategi di atas diadopsi OK dan adil mengingat bahwa Random Forest dengan sendirinya dapat mengatasi masalah multiclass tanpa "peretasan" seperti strategi oneVsAll?
sumber
Jawaban:
Saya memiliki pertanyaan yang persis sama dengan Anda, dan agak sedih mengetahui tidak ada jawaban yang diposting pada topik Anda ...
Yang mengatakan, saya menemukan makalah ini: Teknik One-Vs-All Binarization dalam Konteks Hutan Acak ( https://www.elen.ucl.ac.be/Proceedings/esann/esannpdf/es2015-5.pdf ) diterbitkan dalam 2015
Para penulis menunjukkan kinerja klasifikasi yang lebih baik dengan pengelompokan Acak Hutan satu-lawan-istirahat dibandingkan dengan yang multiklass Acak Hutan.
Para penulis tidak memberikan banyak petunjuk tentang mengapa ia bekerja dengan sangat baik, kecuali bahwa pohon-pohon yang dihasilkan dalam konteks satu-lawan-istirahat lebih sederhana.
Saya ingin tahu apakah Anda menemukan sendiri beberapa jawaban sejak Anda memposting pertanyaan Anda?
sumber
Pada akhirnya, kelas model yang Anda pilih menentukan bentuk batas keputusan Anda - jika Anda menggunakan RandomForests sebagai multiclass atau sebagai satu-vs-semua classifier multiklass batas-batasnya akan sama-sama dibatasi, dengan satu-satunya perbedaan menjadi data yang Anda gunakan agar sesuai dengan model Anda. Bergantung pada seberapa baik model Anda cocok dengan data Anda, dan seberapa rentan model Anda terhadap masalah ketidakseimbangan data, saya tidak benar-benar melihat alasan apriori bahwa multiclass harus lebih baik daripada satu-vs-semua. Mereka hanya memberi Anda hal-hal yang berbeda - satu memberi Anda keputusan untuk setiap pasangan kelas, dengan biaya lebih banyak model untuk dilatih, dan satu memberi Anda keputusan kelas segera. Ini sepenuhnya masuk akal bagi saya, terutama mengingat bahwa RandomForests tidak menyelesaikan fungsi kehilangan cembung, bahwa Anda akan mendapatkan hasil yang Anda lakukan.
Jika Anda secara khusus tertarik untuk menemukan fitur mana yang relevan untuk pengklasifikasi Anda, saya akan menyarankan regresi logistik dengan penalti kerugian L1, karena sparsity akan memberi Anda sejumlah kecil fitur yang dapat diprediksi untuk setiap pasangan kelas yang Anda memiliki.
sumber