Saya menggunakan pengklasifikasi naif bayes untuk mengklasifikasikan antara dua kelompok data. Satu kelompok data jauh lebih besar daripada yang lain (di atas 4 kali). Saya menggunakan probabilitas sebelumnya dari setiap grup di classifier.
Masalahnya adalah bahwa hasil yang saya dapatkan memiliki 0% tingkat positif benar dan 0% tingkat positif palsu. Saya mendapatkan hasil yang sama ketika saya mengatur sebelum ke 0,5 dan 0,5.
Bagaimana saya bisa menetapkan ambang batas ke sesuatu yang lebih baik sehingga saya bisa mendapatkan hasil yang lebih seimbang?
Saya memiliki masalah yang sama ketika menggunakan classifier Logistic Regression. Saya menyelesaikannya dengan mengurangi suku sebelumnya dari bias.
Ketika saya menggunakan Fisher Linear Discriminant pada data ini, saya mendapatkan hasil yang baik dengan ambang batas yang ditetapkan di tengah.
Saya berasumsi ada beberapa solusi umum untuk masalah ini, saya tidak bisa menemukannya.
UPDATE: Saya baru saja memperhatikan bahwa saya classifiernya overfitting. Kinerja pada set pelatihan sempurna (100% benar).
Jika saya menggunakan grup yang sama, maka classifier mulai mengklasifikasikan ke grup "kecil" juga, tetapi kinerjanya sangat buruk (lebih buruk daripada FLD atau LR).
UPDATE2: Saya pikir masalahnya adalah saya menggunakan matriks kovarians penuh. Berjalan dengan matriks kovarians diagonal memberi saya hasil yang lebih "seimbang".
Jawaban:
Menetapkan semua pola ke kelas negatif tentu bukan "hasil aneh". Bisa jadi classifier optimal Bayes selalu mengklasifikasikan semua pola sebagai milik kelas mayoritas, dalam hal ini classifier Anda melakukan apa yang seharusnya dilakukan. Jika kepadatan pola yang termasuk dalam kelas positif tidak pernah melebihi kepadatan pola yang termasuk dalam kelas negatif, maka kelas negatif lebih mungkin terlepas dari nilai atribut.
Yang harus dilakukan dalam keadaan seperti itu adalah untuk mempertimbangkan kepentingan relatif kesalahan positif palsu dan negatif palsu, dalam praktiknya jarang terjadi bahwa biaya dari dua jenis kesalahan yang berbeda adalah sama. Jadi, tentukan kerugian untuk kesalahan positif palsu dan negatif palsu dan pertimbangkan ini dalam menetapkan probabilitas ambang (perbedaan biaya kesalahan klasifikasi sama dengan mengubah probabilitas sebelumnya, jadi ini mudah diterapkan untuk Bayes naif). Saya akan merekomendasikan penyetelan prior untuk meminimalkan estimasi validasi silang dari kerugian (memasukkan biaya kesalahan klasifikasi yang tidak setara).
Jika biaya kesalahan klasifikasi Anda sama, dan pelatihan Anda menentukan prioritas kondisi operasional, maka dengan asumsi bahwa implementasi Anda benar, ada kemungkinan bahwa Anda sudah memiliki klasifikasi NB terbaik.
sumber
Perbesar grup data yang lebih kecil agar sesuai dengan grup besar dengan perhitungan. Ini akan meregangkan data grup yang lebih kecil, tetapi itu akan memungkinkan perhitungan yang lebih setara.
Jika Anda masih mendapatkan hasil aneh seperti saat ini, periksa seluruh implementasi Anda dari awal untuk memburu kesalahan (mungkin sederhana).
sumber