Saya memiliki data pembelajaran yang terdiri dari ~ 45 ribu sampel, masing-masing memiliki 21 fitur. Saya mencoba untuk melatih classifier hutan acak pada data ini, yang dilabeli menjadi 3 kelas (-1, 0 dan 1). Kelas kurang lebih sama ukurannya.
Model klasifikasi hutan acak saya gunakan gini
sebagai kriteria kualitas split, jumlah pohon 10, dan saya belum membatasi kedalaman pohon.
Sebagian besar fitur menunjukkan tingkat kepentingan yang dapat diabaikan - rata-rata sekitar 5%, sepertiga di antaranya penting 0, sepertiga di antaranya penting di atas rata-rata.
Namun, mungkin fakta yang paling mencolok adalah skor oob (out-of-bag): sedikit kurang dari 1%. Itu membuat saya berpikir model gagal, dan memang, menguji model pada set ukuran independen baru ~ 40k, saya mendapat skor 63% (kedengarannya bagus sejauh ini), tetapi pemeriksaan yang lebih dalam dari matriks kebingungan telah menunjukkan kepada saya bahwa model hanya berhasil untuk kelas 0, dan gagal di sekitar 50% dari kasus ketika harus memutuskan antara 1 dan -1.
Output Python terlampir:
array([[ 7732, 185, 6259],
[ 390, 11506, 256],
[ 7442, 161, 6378]])
Ini wajar karena kelas 0 memiliki properti khusus yang membuatnya lebih mudah diprediksi. Namun, benarkah skor oob yang saya temukan sudah merupakan pertanda bahwa modelnya tidak bagus? Apa skor oob yang baik untuk hutan acak ? Apakah ada beberapa hukum yang membantu menentukan apakah suatu model "baik", menggunakan skor oob sendiri, atau dalam kombinasi dengan beberapa hasil lain dari model?
Sunting: setelah menghapus data buruk (sekitar sepertiga dari data), label kurang lebih 2% untuk 0 dan 49% untuk masing-masing -1 / + 1. Skor oob adalah 0,011 dan skor pada data uji adalah 0,49, dengan matriks kebingungan hampir tidak bias terhadap kelas 1 (sekitar 3/4 dari prediksi).
scikit
itu oob_score
adalah skor, yaitu ukuran kesepakatan. Saya tidak dapat menemukannya didokumentasikan.