Bagaimana cara membangun matriks kebingungan untuk classifier multiclass?

12

Saya punya masalah dengan 6 kelas. Jadi saya membangun classifier multiclass, sebagai berikut: untuk setiap kelas, saya memiliki satu classifier Logistic Regression, menggunakan One vs All, yang berarti saya memiliki 6 classifier yang berbeda.

Saya dapat melaporkan matriks kebingungan untuk masing-masing pengklasifikasi saya. Tapi, saya ingin melaporkan matriks kebingungan untuk SEMUA pengklasifikasi, seperti yang saya lihat dalam banyak contoh di sini.

Bagaimana saya bisa melakukannya? Apakah saya harus mengubah strategi klasifikasi saya, menggunakan algoritma Satu lawan Satu alih-alih Satu vs Semua? Karena pada matriks kebingungan ini, laporan mengatakan positif palsu untuk setiap kelas.

Contoh matriks kebingungan multi-kelas

Matriks Kebingungan Multikelas

Saya ingin mencari jumlah barang yang salah klasifikasi. Di baris pertama, ada 137 contoh kelas 1 yang diklasifikasikan sebagai kelas 1, dan 13 contoh kelas 1 yang diklasifikasikan sebagai kelas 2 . Bagaimana cara mendapatkan nomor ini?

Victor Leal
sumber
Jumlah item kesalahan klasifikasi adalah jumlah semua elemen dalam matriks dikurangi jejak matriks ... tapi saya tidak berpikir ini yang Anda maksud.
1
Secara mekanis, Anda mendapatkan matriks ini dengan terlebih dahulu memisahkan set tes Anda dengan kelas mereka yang sebenarnya (katakanlah, Target = 1, Target = 2 dll), kemudian terapkan classifier terlatih Anda untuk setiap titik di setiap kelompok. Jadi, untuk Target = 1, Anda akan mengisi baris atas matriks, berdasarkan pada berapa banyak anggota grup ini yang ditugaskan untuk setiap kelas.
Ini persis cara yang harus dilakukan .... Jadi mekanis seperti yang Anda katakan. Terima kasih!
Victor Leal
1
tidak masalah. Saya menyebutkan ini secara lebih formal di posting saya juga, tetapi kadang-kadang membantu untuk melihat resep yang sebenarnya.

Jawaban:

6

Agaknya, Anda menggunakan pengklasifikasi ini untuk membantu memilih satu kelas tertentu untuk satu set nilai fitur tertentu (seperti yang Anda katakan Anda sedang membuat classifier multiclass).

Jadi, katakanlah Anda memiliki kelas , maka matriks kebingungan Anda akan menjadi matriks , dengan sumbu kiri menunjukkan kelas yang benar (seperti yang dikenal dalam set uji) dan sumbu atas yang menunjukkan kelas yang ditugaskan ke item dengan kelas yang benar. Setiap elemen dari matriks akan menjadi jumlah item dengan kelas benar yang diklasifikasikan sebagai kelas .N × N iNN×Ni,jij

Ini hanyalah perpanjangan langsung dari matriks kebingungan 2-kelas.


sumber
Iya! Saya tahu tentang itu! Tapi, bagaimana mengatakan positif palsu? Maksud saya, ada contoh di mana jumlah item yang salah klasifikasi ditampilkan ... dan pengklasifikasi saya hanya mengatakan "Hei, ada 60 item dari kelas A, dan 40 item dari kelas lain (saya hanya tidak bisa mengatakan yang mana itu) adalah ...) "
Victor Leal
1
@ Viktoreal saya tidak mengikuti, matriks kebingungan akan memberi tahu Anda positif palsu, positif benar, negatif benar, negatif palsu..apa yang hilang?
1
@ Viktoreal lihat di sini: en.wikipedia.org/wiki/Confusion_matrix
Saya tahu informasi yang kami miliki dalam Matriks Kebingungan. Mungkin sebuah gambar dapat mewakili apa yang saya bicarakan dengan lebih baik: Confusion Matrix Multiclass
Victor Leal
@ Viktoreal Sepertinya matriks kebingungan normal bagi saya ... LHS menunjukkan kelas aktual yang bagian atas menunjukkan kelas yang ditugaskan ... apakah saya kehilangan sesuatu? Juga, Anda harus menambahkan gambar ini ke posting Anda .. ini akan membantu
12

Meskipun sudah ada beberapa jawaban di forum ini, saya pikir saya akan memberikan persamaan eksplisit untuk membuatnya lebih pasti:

Dengan asumsi Anda memiliki matriks kebingungan multi-kelas dari formulir,

C=ActualClassifedc11...c1ncn1cnn

Elemen kebingungan untuk setiap kelas diberikan oleh:

tpi=cii

fpi=l=1nclitpi

fni=l=1nciltpi

tni=l=1nk=1nclktpifpifni

Josh Albert
sumber
apa yang aku dan aku?
girl101
1
juga, apa tp, tn, fp, fn untuk semua kelas bersama
girl101
tp = benar positif, fp = salah positif, fn = salah negatif, tn = benar negatif. Saya kira indeks saya adalah referensi untuk setiap kelas.
albert
1

Menggunakan matriks yang dilampirkan dalam pertanyaan dan mempertimbangkan nilai-nilai dalam sumbu vertikal sebagai kelas aktual, dan nilai-nilai dalam sumbu horizontal prediksi. Kemudian untuk Kelas 1:

  • Benar Positif = 137-> sampel kelas 1, diklasifikasikan sebagai kelas 1
  • False Positive = 6-> (1 + 2 + 4) sampel kelas 2, 3 dan 4, tetapi diklasifikasikan sebagai kelas 1
  • False Negative = 18-> (13 + 3 + 1 + 1) sampel kelas 1, tetapi diklasifikasikan sebagai kelas 2, 3, 6 dan 7
  • Ture Negative = 581-> (55 + 1 + 6 ... + 2 + 26) Jumlah semua nilai dalam matriks kecuali yang ada di kolom 1 dan baris 1
Ignacio Alorre
sumber