Akurasi vs ukuran-F
Pertama-tama, saat Anda menggunakan metrik, Anda harus tahu cara memainkannya. Akurasi mengukur rasio instance yang diklasifikasikan dengan benar di semua kelas. Itu berarti, bahwa jika satu kelas lebih sering terjadi daripada yang lain, maka akurasi yang dihasilkan jelas didominasi oleh keakuratan kelas yang mendominasi. Dalam kasus Anda jika seseorang membangun Model M yang hanya memprediksi "netral" untuk setiap contoh, akurasi yang dihasilkan akan menjadi
a c c = n e u t r a l( n e u t r a l + p o s i t i v e + n e ga t i v e )= 0,9188
Bagus, tapi tidak berguna.
Jadi penambahan fitur jelas meningkatkan kekuatan NB untuk membedakan kelas, tetapi dengan memprediksi "positif" dan "negatif" orang salah mengklasifikasikan netral dan karenanya akurasi turun (diucapkan secara kasar). Perilaku ini tidak tergantung pada NB.
Lebih atau kurang Fitur?
Secara umum tidak lebih baik menggunakan lebih banyak fitur, tetapi menggunakan fitur yang tepat. Lebih banyak fitur yang lebih baik sejauh algoritma pemilihan fitur memiliki lebih banyak pilihan untuk menemukan subset optimal (saya sarankan untuk mengeksplorasi: fitur-pilihan crossvalidated ). Ketika datang ke NB, pendekatan yang cepat dan solid (tetapi kurang optimal) adalah dengan menggunakan InformationGain (Rasio) untuk mengurutkan fitur dalam urutan menurun dan memilih k atas.
Sekali lagi, saran ini (kecuali InformationGain) tidak tergantung pada algoritma klasifikasi.
EDIT 27.11.11
Ada banyak kebingungan mengenai bias dan varians untuk memilih jumlah fitur yang benar. Karena itu saya sarankan untuk membaca halaman pertama tutorial ini: Bias-Variance tradeoff . Esensi kuncinya adalah:
- High Bias berarti, bahwa modelnya kurang optimal, yaitu test-errornya tinggi (underfitting, seperti yang dikatakan Simone)
- Varians Tinggi berarti, bahwa model sangat sensitif terhadap sampel yang digunakan untuk membangun model . Itu berarti, bahwa kesalahan sangat tergantung pada set pelatihan yang digunakan dan karenanya varians kesalahan (dievaluasi di berbagai crossvalidation-lipatan) akan sangat berbeda. (overfitting)
Kurva pembelajaran yang diplot memang menunjukkan Bias, karena kesalahannya diplot. Namun, yang tidak bisa Anda lihat adalah Variance, karena interval kepercayaan kesalahan tidak diplot sama sekali.
Contoh: Saat melakukan Crossvalidation 3 kali lipat 6 kali (ya, pengulangan dengan partisi data yang berbeda dianjurkan, Kohavi menyarankan 6 pengulangan), Anda mendapatkan 18 nilai. Saya sekarang berharap bahwa ...
- Dengan sejumlah kecil fitur, kesalahan rata-rata (bias) akan lebih rendah, namun, varians kesalahan (dari 18 nilai) akan lebih tinggi.
- dengan jumlah fitur yang tinggi, kesalahan rata-rata (bias) akan lebih tinggi, tetapi varians kesalahan (dari 18 nilai) lebih rendah.
Perilaku kesalahan / bias ini persis seperti yang kami lihat di plot Anda. Kami tidak dapat membuat pernyataan tentang varians. Bahwa kurva dekat satu sama lain dapat menjadi indikasi bahwa set tes cukup besar untuk menunjukkan karakteristik yang sama dengan set pelatihan dan karenanya kesalahan yang diukur mungkin dapat diandalkan, tetapi ini (setidaknya sejauh yang saya mengerti) itu) tidak cukup untuk membuat pernyataan tentang varians (dari kesalahan!).
Ketika menambahkan lebih banyak contoh pelatihan (menjaga ukuran set tes tetap), saya akan berharap bahwa varians kedua pendekatan (jumlah fitur kecil dan tinggi) berkurang.
Oh, dan jangan lupa menghitung infogain untuk pemilihan fitur hanya menggunakan data dalam sampel pelatihan! Seseorang tergoda untuk menggunakan data lengkap untuk pemilihan fitur dan kemudian melakukan partisi data dan menerapkan crossvalidation, tetapi ini akan menyebabkan overfitting. Saya tidak tahu apa yang Anda lakukan, ini hanya peringatan yang tidak boleh dilupakan orang.