Cara mendapatkan matriks kebingungan agregat dari n klasifikasi yang berbeda

8

Saya ingin menguji akurasi metodologi. Saya menjalankannya ~ 400 kali, dan saya mendapat klasifikasi berbeda untuk setiap putaran. Saya juga memiliki kebenaran dasar, yaitu klasifikasi nyata untuk diuji.

Untuk setiap klasifikasi saya menghitung matriks kebingungan. Sekarang saya ingin menggabungkan hasil ini untuk mendapatkan keseluruhan matriks kebingungan. Bagaimana saya bisa mencapainya?

Bolehkah saya menjumlahkan semua matriks kebingungan untuk mendapatkan keseluruhannya?

gc5
sumber

Jawaban:

4

Saya tidak tahu jawaban standar untuk ini, tetapi saya memikirkannya beberapa waktu lalu dan saya punya beberapa ide untuk dibagikan.

Ketika Anda memiliki satu matriks kebingungan, Anda memiliki lebih atau kurang gambaran tentang bagaimana Anda model klasifikasi membingungkan kelas (salah klasifikasi). Ketika Anda mengulangi tes klasifikasi Anda akhirnya akan memiliki beberapa matriks kebingungan. Pertanyaannya adalah bagaimana cara mendapatkan matriks kebingungan agregat yang bermakna. Jawabannya tergantung pada apa arti bermakna (pun intended). Saya pikir tidak ada versi tunggal yang bermakna.

Salah satu caranya adalah dengan mengikuti ide kasar dari beberapa pengujian. Secara umum, Anda menguji sesuatu beberapa kali untuk mendapatkan hasil yang lebih akurat. Sebagai prinsip umum, seseorang dapat beralasan bahwa rata-rata pada hasil beberapa pengujian mengurangi varians estimasi, sehingga sebagai konsekuensinya, ia meningkatkan ketepatan estimasi. Anda dapat melanjutkan dengan cara ini, tentu saja, dengan menjumlahkan posisi dengan posisi dan kemudian membaginya dengan jumlah tes. Anda dapat melangkah lebih jauh dan alih-alih hanya memperkirakan nilai untuk setiap sel dari matriks kebingungan, Anda juga dapat menghitung beberapa interval kepercayaan, nilai-t, dan sebagainya. Ini tidak masalah dari sudut pandang saya. Tapi itu hanya menceritakan satu sisi cerita.

Sisi lain dari cerita yang mungkin diselidiki adalah seberapa stabil hasilnya untuk kejadian yang sama. Sebagai contoh bahwa saya akan mengambil contoh ekstrem. Misalkan Anda memiliki model klasifikasi untuk 3 kelas. Misalkan kelas-kelas ini dalam proporsi yang sama. Jika model Anda dapat memprediksi satu kelas dengan sempurna dan 2 kelas lainnya dengan kinerja acak, Anda akan mendapatkan 0,33 + 0,166 + 0,166 = 0,66 rasio kesalahan klasifikasi. Ini mungkin tampak bagus, tetapi bahkan jika Anda melihat pada matriks kebingungan tunggal Anda tidak akan tahu bahwa kinerja Anda pada 2 kelas terakhir sangat bervariasi. Berbagai tes dapat membantu. Tetapi rata-rata matriks kebingungan akan mengungkapkan ini? Keyakinan saya tidak. Rata-rata akan memberikan hasil yang sama kurang lebih, dan melakukan beberapa tes hanya akan mengurangi varians estimasi.

Jadi cara lain untuk menyusun matriks kebingungan akan lebih baik melibatkan kepadatan prediksi untuk setiap contoh. Seseorang dapat membangun kepadatan ini dengan menghitung untuk setiap contoh, berapa kali diprediksi kelas yang diberikan. Setelah normalisasi, Anda akan memiliki untuk setiap contoh kepadatan prediksi bukan label prediksi tunggal. Anda dapat melihat bahwa label prediksi tunggal mirip dengan kepadatan yang terdegenerasi di mana Anda memiliki probabilitas 1 untuk kelas prediksi dan 0 untuk kelas lainnya untuk setiap instance terpisah. Sekarang memiliki kepadatan ini orang dapat membangun matriks kebingungan dengan menambahkan probabilitas dari setiap instance dan memprediksi kelas ke sel yang sesuai dari matriks kebingungan agregat.

Orang bisa berpendapat bahwa ini akan memberikan hasil yang sama seperti metode sebelumnya. Namun saya berpikir bahwa ini mungkin terjadi kadang-kadang, sering ketika model memiliki varians rendah, metode kedua kurang terpengaruh oleh bagaimana sampel dari tes diambil, dan dengan demikian lebih stabil dan lebih dekat dengan kenyataan.

Juga metode kedua dapat diubah untuk mendapatkan metode ketiga, di mana orang dapat menetapkan prediksi label dengan kepadatan tertinggi dari prediksi contoh yang diberikan.

Saya tidak menerapkan hal-hal itu tetapi saya berencana untuk belajar lebih lanjut karena saya percaya mungkin perlu menghabiskan waktu.

rapaio
sumber
Apa yang Anda maksud untuk rasio kesalahan klasifikasi pada paragraf keempat?
gc5
rasio kesalahan klasifikasi = (jumlah instance diklasifikasikan dengan benar) / (jumlah total instance); dalam paragraf itu kita memiliki 0,33 = proporsi masing-masing kelas (beri nama label sebagai c1, c2, c3); kita memiliki 0,33 * 1,0 (c1 semuanya diklasifikasikan dengan benar), + 0,33 * 0,5 (c2 secara acak diklasifikasikan sebagai c2 atau c3) + 0,33 * 0,5 (c3 secara acak diklasifikasikan sebagai c2 atau c3) = 0,33 + 0,166 + 0,166 = 0,66 ( instance diklasifikasikan dengan benar / total jumlah instance)
rapaio
4

Ada beberapa cara untuk mencapai "master confusion matrix" Anda.

  1. Jumlahkan semua matriks kebingungan bersama: Seperti yang Anda sarankan, menjumlahkan ini menghasilkan matriks kebingungan. Masalah dengan ini adalah Anda tidak dapat menafsirkan total.

  2. Rata-rata entri. Metode ini sama dengan nomor satu, tetapi Anda membagi setiap entri dengan jumlah percobaan (~ 400 dalam kasus Anda). Ini akan menjadi metode pilihan saya karena dengan begitu Anda dapat benar-benar menerjemahkan setiap kategori menjadi (rata-rata) + - (pengukuran kesalahan) dan benar-benar melihat kategori mana yang paling tidak stabil atau stabil. Hati-hati dengan menafsirkan 'pengukuran kesalahan' ini.

  3. Laporkan pengukuran spesifik masalah nomor kebingungan. Misalnya, jika nomor Anda memiliki outlier, median lebih disukai daripada cara.

Ada statistik lain yang memungkinkan untuk dilaporkan juga. Anda dapat mengulangi metode untuk melacak klasifikasi individu. Maka kita dapat mengatakan statistik penting lainnya seperti '% klasifikasi yang tetap sama dan akurat', dll ...

nfmcclure
sumber
1
Ketika Anda mengatakan, ketika Anda menjumlahkan hasil, Anda tidak dapat menafsirkan total, maksud Anda bahwa setiap klasifikasi dapat memiliki bobot yang berbeda dan kontribusinya dapat melebihi / di bawah estimasi total? Jika saya seharusnya menjalankan, misalnya, 4 tes independen, dapatkah saya berasumsi bahwa setiap klasifikasi memiliki bobot yang sama dan menafsirkan (tanpa rasa sakit) totalnya? Semoga ini jelas ..
gc5
1
Yang ingin saya sampaikan adalah bahwa kita kehilangan jejak dari apa arti angka sebenarnya. Misalnya, jika saya memiliki 4 pada entri tertentu pada run 1 dan mendapatkan 5 pada entri yang sama pada run 2, sulit untuk mengatakan dengan tepat apa arti 4 + 5 = 9. Saya lebih suka melihat distribusi (% 's) atau rata-rata di mana individu berada dalam matriks. Tampaknya jauh lebih intuitif.
nfmcclure