Cara menghitung presisi dan mengingat dalam matriks kebingungan 3 x 3

12
                  Predicted
                    class
               Cat  Dog Rabbit
  Actual class
           Cat   5    3      0
           Dog   2    3      1
        Rabbit   0    2     11

Bagaimana saya bisa menghitung presisi dan mengingat sehingga menjadi mudah untuk menghitung skor-F1. Matriks kebingungan normal adalah dimensi 2 x 2. Namun, ketika menjadi 3 x 3 saya tidak tahu bagaimana cara menghitung presisi dan daya ingat.

pengguna22149
sumber

Jawaban:

19

Jika Anda menjabarkan definisi presisi (alias PPV nilai prediktif positif) dan mengingat (alias sensitivitas), Anda melihat bahwa definisi tersebut terkait dengan satu kelas yang tidak bergantung pada kelas lain:

Ingat atau senstitivitas adalah proporsi kasus yang diidentifikasi dengan benar sebagai milik kelas c di antara semua kasus yang benar-benar milik kelas c .
(Mengingat kami memiliki kasus yang benar-benar milik " c ", berapa probabilitas memperkirakan ini dengan benar?)

Nilai prediksi PPV presisi atau positif adalah proporsi kasus yang diidentifikasi dengan benar sebagai milik kelas c di antara semua kasus yang diklaim oleh pengklasifikasi bahwa mereka milik kelas c .
Dengan kata lain, dari kasus-kasus yang diprediksi berasal dari kelas c , fraksi mana yang benar-benar milik kelas c ? (Mengingat prediksi " c ", berapakah probabilitas menjadi benar?)

nilai prediksi negatif NPV dari kasus-kasus tersebut diprediksi tidak termasuk kelas c , fraksi mana yang benar-benar bukan milik kelas c ? (Mengingat prediksi "bukan c ", berapakah probabilitas menjadi benar?)

Sehingga Anda dapat menghitung presisi dan mengingat untuk masing-masing kelas Anda. Untuk tabel kebingungan multi-kelas, masing-masing elemen diagonal dibagi dengan jumlah baris dan kolomnya:

skema perhitungan

Sumber: Beleites, C .; Salzer, R. & Sergo, V. Validasi model klasifikasi lunak menggunakan keanggotaan kelas parsial: Konsep kepekaan yang diperluas & co. diterapkan pada penilaian jaringan astrositoma, Chemom Intell Lab Syst, 122, 12 - 22 (2013). DOI: 10.1016 / j.chemolab.2012.12.003

cbeleites tidak senang dengan SX
sumber
Terima kasih banyak. Saya sudah mengerti analogi yang dijelaskan dalam solusi Anda. Saya akan membaca kertas. Saya akan menerima ini sebagai jawaban. Saya tidak mengerti PPV DAN NPV. Tolong jelaskan konsep ini sebagai grafik seperti Sens dan Spec dijelaskan dan saya akan menerima jawaban Anda.
user22149
3

Dengan mengurangi data menjadi pilihan yang dipaksakan (klasifikasi) dan tidak merekam apakah ada "panggilan dekat", Anda memperoleh perkiraan statistik presisi minimum informasi minimum, selain secara diam-diam mengasumsikan fungsi utilitas / kerugian / biaya yang aneh dan menggunakan ambang batas sewenang-wenang. . Akan jauh lebih baik menggunakan informasi maksimum, yang akan mencakup kemungkinan keanggotaan kelas dan bukan pilihan yang dipaksakan.

Frank Harrell
sumber
1

Cara termudah adalah dengan tidak menggunakan confusion_matrix sama sekali, Gunakan klasifikasi_report (), itu akan memberi Anda semua yang Anda butuhkan, tepuk tangan ...

Sunting:
ini adalah format untuk confusion_matrix ():
[[TP, FN]
[FP, TN]]
Dan laporan klasifikasi memberikan semua ini

Omkaar.K
sumber
Itu jika Anda menggunakan python ///
Omkaar.K
0

Jika Anda hanya menginginkan hasilnya, saran saya adalah jangan terlalu memikirkan dan menggunakan alat yang Anda inginkan. Berikut ini cara melakukannya dengan Python;

import pandas as pd
from sklearn.metrics import classification_report

results = pd.DataFrame(
    [[1, 1],
     [1, 2],
     [1, 3],
     [2, 1],
     [2, 2],
     [2, 3],
     [3, 1],
     [3, 2],
     [3, 3]], columns=['Expected', 'Predicted'])

print(results)
print()
print(classification_report(results['Expected'], results['Predicted']))

Untuk mendapatkan output berikut

   Expected  Predicted
0         1          1
1         1          2
2         1          3
3         2          1
4         2          2
5         2          3
6         3          1
7         3          2
8         3          3

             precision    recall  f1-score   support

          1       0.33      0.33      0.33         3
          2       0.33      0.33      0.33         3
          3       0.33      0.33      0.33         3

avg / total       0.33      0.33      0.33         9
Steztric
sumber
0

Berikut ini adalah contoh dari matriks kebingungan multi-kelas dengan asumsi label kelas kami adalah A, B dan C

A / P A B C Jumlah
A 10 3 4 17
B 2 12 6 20
C 6 3 9 18

Jumlah 18 18 19 55

Sekarang kita menghitung tiga nilai untuk Precision dan Recall masing-masing dan menyebutnya Pa, Pb dan Pc; dan juga Ra, Rb, Rc.

Kita tahu Precision = TP / (TP + FP), jadi untuk Pa true positif akan menjadi A aktual yang diprediksi sebagai A, yaitu, 10, sisa dua sel dalam kolom itu, apakah itu B atau C, buat False Positive. Begitu

Pa = 10/18 = 0,55 Ra = 10/17 = 0,59

Sekarang presisi dan recall untuk kelas B adalah Pb dan Rb. Untuk kelas B, true positive adalah B aktual diprediksi sebagai B, yaitu sel yang berisi nilai 12 dan sisa dua sel dalam kolom itu membuat False Positive, jadi

Pb = 12/18 = 0,67 Rb = 12/20 = 0,6

Demikian pula Pc = 9/19 = 0,47 Rc = 9/18 = 0,5

Kinerja keseluruhan dari classifier akan ditentukan oleh Precision dan Average Recall rata-rata. Untuk ini, kita mengalikan nilai presisi untuk setiap kelas dengan jumlah instance aktual untuk kelas itu, lalu menambahkannya dan membaginya dengan jumlah total instance. Suka ,

Rata-Rata Presisi = (0,55 * 17 + 0,67 * 20 + 0,47 * 18) / 55 = 31,21 / 55 = 0,57 Rata-rata Panggilan Kembali = (0,59 * 17 + 0,6 * 20 + 0,5 * 18) / 55 = 31,03 / 55 = 0,56

Saya harap ini membantu

Nayyer Masood
sumber