Bagaimana saya bisa membuat matriks kebingungan besar lebih mudah dibaca?


9

Baru-baru ini saya menerbitkan dataset ( tautan ) dengan 369 kelas. Saya menjalankan beberapa percobaan pada mereka untuk merasakan betapa sulitnya tugas klasifikasi. Biasanya, saya suka jika ada matriks kebingungan untuk melihat jenis kesalahan yang dibuat. Namun, matriks tidak praktis.369×369

Apakah ada cara untuk memberikan informasi penting dari matriks kebingungan besar? Misalnya, biasanya ada banyak 0 yang tidak begitu menarik. Apakah mungkin untuk mengurutkan kelas sehingga sebagian besar entri bukan nol berada diagonal untuk memungkinkan menunjukkan beberapa matriks yang merupakan bagian dari matriks kebingungan lengkap?

Berikut adalah contoh untuk matriks kebingungan besar .

Contoh di Alam Liar

Gambar 6 EMNIST terlihat bagus:

masukkan deskripsi gambar di sini

Sangat mudah untuk melihat di mana banyak kasus. Namun, itu hanya kelas. Jika seluruh halaman digunakan dan bukan hanya satu kolom, ini mungkin bisa 3x lebih banyak, tetapi itu masih hanya 3 26 = 78 kelas. Bahkan tidak dekat dengan 369 kelas HASY atau 1000 ImageNet.26326=78

Lihat juga

Pertanyaan serupa saya di CS.stackexchange


Saya kasihan Anda ;-) Anda dapat mencoba matriks kebingungan satu lawan semua untuk setiap kelas. Diberikan kepada mereka, tampilan atau kelas di mana perilaku tidak khas dan menggunakan matriks kebingungan penuh hanya pada mereka.
DaL

1
Mengapa tidak melaporkan ketepatan model untuk setiap kategori. Siapa yang benar-benar perlu melihat seluruh matriks?
Darrin Thomas

1
@DarrinThomas Ini bukan hanya tentang melaporkannya di kertas. Ini juga tentang menganalisis kesalahan sendiri.
Martin Thoma

1
Pertama, Anda bisa menormalkan nilai-nilai pada baris dan kemudian memplotnya sebagai peta panas. Lebih lanjut, Anda bisa mengurutkan kelas berdasarkan ketepatan arah kelas (nilai dinormalisasi pada diagonal). Saya kira ini akan sangat meningkatkan keterbacaan.
Nikolas Rieble

1
Saya mungkin harus menanyakan ini dalam math.SE / stackoverflow lagi. Saya cukup yakin ada algoritma yang mengatur ulang baris / kolom sedemikian rupa sehingga sebagian besar nilainya dekat dengan diagonal.
Martin Thoma

Jawaban:


4

Anda dapat menerapkan teknik yang saya jelaskan dalam tesis master saya (halaman 48ff) dan disebut Confusion Matrix Ordering (CMO):

  1. Pesanlah kolom / baris sedemikian rupa, sehingga sebagian besar kesalahan berada di sepanjang diagonal.
  2. Pisahkan matriks kebingungan menjadi beberapa blok sehingga blok tunggal dapat dengan mudah dicetak / dilihat - dan sedemikian rupa sehingga Anda dapat menghapus beberapa blok karena ada beberapa titik data.

Efek samping yang bagus: Metode ini juga secara otomatis mengelompokkan kelas-kelas serupa secara bersamaan. Gambar 5.12 dari tesis master saya menunjukkan bahwa:

masukkan deskripsi gambar di sini

Anda dapat menerapkan pemesanan matriks kebingungan clana


Lihat github.com/MartinThoma/clana untuk implementasi
Martin Thoma

1

Alih-alih mencoba memesan ulang kolom dan baris, saya menyarankan mencoba mencari cara lain untuk memvisualisasikan data.

(i,j)ij. Juga, Anda dapat memiliki ~ 20 matriks kebingungan berbutir halus: untuk setiap cluster, Anda dapat menunjukkan matriks kebingungan kelas, untuk ~ 20 kelas di setiap cluster. Tentu saja, Anda juga dapat memperluas ini dengan menggunakan pengelompokan hierarkis dan memiliki matriks kebingungan di berbagai granularitas.

Mungkin ada strategi visualisasi lain yang mungkin.

Sebagai poin filosofis umum: mungkin juga membantu untuk memperjelas tujuan Anda (apa yang ingin Anda keluarkan dari visualisasi). Anda dapat membedakan dua jenis penggunaan visualisasi:

  • Analisis eksplorasi: Anda tidak yakin apa yang Anda cari; Anda hanya ingin visualisasi yang dapat membantu Anda mencari pola atau artefak yang menarik dalam data.

  • Angka dengan pesan: Anda memiliki pesan tertentu yang ingin diambil pembaca, dan Anda ingin menyusun visualisasi yang membantu mendukung pesan itu atau memberikan bukti untuk pesan tersebut.

Mungkin membantu Anda untuk mengetahui tujuan yang ingin Anda tuju, dan kemudian menyusun visualisasi yang ditujukan untuk itu:

  • Jika Anda melakukan analisis eksplorasi, daripada mencoba untuk memilih satu visualisasi yang sempurna, sering kali membantu untuk mencoba membuat sebanyak mungkin visualisasi yang dapat Anda pikirkan. Jangan khawatir tentang apakah mereka sempurna; tidak apa-apa jika masing-masing cacat, karena masing-masing mungkin memberi Anda perspektif yang berpotensi berbeda pada data (mungkin akan baik dalam beberapa hal dan buruk pada orang lain).

  • Jika Anda memiliki pesan tertentu yang ingin Anda sampaikan atau tema yang ingin Anda kembangkan, carilah visualisasi yang mendukung tema itu. Sulit untuk membuat saran khusus tanpa mengetahui apa tema / pesan itu.


0

Penting untuk mengetahui mengapa matriks kebingungan EMNIST terlihat bagus.

Tapi saya merasa aneh bahwa mereka tidak mempertahankan pewarnaan dengan angka yang lebih tinggi menjadi paling gelap, misalnya sebagian besar klasifikasi miss-kosong yang mengandung nol berwarna abu-abu lebih gelap daripada yang mengandung bilangan bulat. Tampaknya tidak konsisten.

Saya akan mencoba menggunakan gaya EMINST kecuali tetap konsisten di mana warna menunjukkan jumlah entri dalam sel. Putih untuk nol masuk, dan hitam untuk entri terbanyak.

Klasifikasi yang sempurna adalah diagonal hitam dengan segitiga atas dan bawah putih sepenuhnya. Di mana ada tambalan abu-abu di segitiga akan mengindikasikan masalah. Bahkan pada kelas 1000 set ini akan sangat membantu. Untuk ImageNet di mana kelasnya hirarkis, mungkin menyortir kolom sehingga subclass dikelompokkan hak kelas induk akan menyebabkan patch gelap kuadrat.

Juga jika Anda mendapatkan 5 respons teratas untuk sebuah gambar, kelas mungkin tidak saling eksklusif, sehingga klasifikasi anjing untuk gambar lap_dog masih harus benar, maka dalam matriks kebingungan seperti itu, kelas yang lebih umum seharusnya jauh lebih gelap. daripada klasifikasi yang tepat (jika warna dinormalisasi.) Oleh karena itu alun-alun kiri paling gelap.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.