Berechnen der Genauigkeit und des Abrufs in einer 3 x 3-Verwirrungsmatrix


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

Wie kann ich Präzision berechnen und abrufen, damit es einfach wird, den F1-Score zu berechnen? Die normale Verwirrungsmatrix ist eine 2 x 2-Dimension. Wenn es jedoch 3 x 3 wird, weiß ich nicht, wie ich Präzision und Rückruf berechnen soll.

Antworten:


19

Wenn Sie die Definitionen von Präzision (auch bekannt als positiver Vorhersagewert PPV) und Rückruf (auch bekannt als Sensitivität) formulieren, sehen Sie, dass sie sich auf eine Klasse beziehen, unabhängig von anderen Klassen:

Rückruf oder Empfindlichkeit ist der Anteil der Fälle, die korrekt als zur Klasse c gehörend identifiziert wurden, unter allen Fällen, die tatsächlich zur Klasse c gehören .
(Wenn wir einen Fall haben, der wirklich zu " c " gehört, wie hoch ist die Wahrscheinlichkeit, dies richtig vorherzusagen?)

Präzisions- oder positiver Vorhersagewert PPV ist der Anteil der Fälle, die korrekt als zur Klasse c gehörend identifiziert wurden, unter allen Fällen, von denen der Klassifizierer behauptet, dass sie zur Klasse c gehören .
Mit anderen Worten, von den Fällen, von denen vorhergesagt wird , dass sie zur Klasse c gehören , welcher Bruchteil gehört wirklich zur Klasse c ? (Wie groß ist angesichts der Voraussage " c " die Wahrscheinlichkeit, korrekt zu sein?)

negativer Vorhersagewert NPV der Fälle, von denen vorhergesagt wurde, dass sie nicht zur Klasse c gehören. Welcher Bruchteil gehört wirklich nicht zur Klasse c ? (Wie groß ist die Wahrscheinlichkeit, korrekt zu sein, wenn die Vorhersage "nicht c " getroffen wird?)

So können Sie die Genauigkeit und den Rückruf für jede Ihrer Klassen berechnen. Bei Verwirrungstabellen mit mehreren Klassen sind dies die diagonalen Elemente, die durch ihre Zeilen- bzw. Spaltensummen geteilt werden:

Berechnungsschema

Quelle: Beleites, C.; Salzer, R. & Sergo, V. Validierung von Soft-Klassifikationsmodellen unter Verwendung von Teilklassenmitgliedschaften: Ein erweitertes Konzept von Sensitivität & Co. angewendet auf die Einstufung von Astrozytomgeweben, Chemom Intell Lab Syst, 122, 12 - 22 (2013). DOI: 10.1016 / j.chemolab.2012.12.003


Vielen Dank. Ich verstehe bereits die in Ihrer Lösung beschriebene Analogie. Ich werde Papier lesen. Ich werde dies als Antwort akzeptieren. Ich verstehe PPV UND NPV nicht. Bitte erläutern Sie dieses Konzept so grafisch wie die Sens und Spec erklärt wurden und ich werde Ihre Antwort akzeptieren.
user22149

3

Indem Sie die Daten auf erzwungene Entscheidungen (Klassifizierung) reduzieren und nicht aufzeichnen, ob es sich um "enge Anrufe" handelt, erhalten Sie statistische Schätzungen mit minimaler Genauigkeit und minimaler Genauigkeit. Außerdem nehmen Sie heimlich eine seltsame Nutzen- / Verlust- / Kostenfunktion an und verwenden beliebige Schwellenwerte . Es wäre weitaus besser, maximale Informationen zu verwenden, die die Wahrscheinlichkeiten einer Klassenmitgliedschaft und keine erzwungenen Entscheidungen einschließen.


1

Der einfachste Weg ist, Confusion_matrix überhaupt nicht zu verwenden. Verwenden Sie Klassifizierung_Report (), es gibt Ihnen alles, was Sie jemals gebraucht haben, Prost ...

Bearbeiten:
Dies ist das Format für confusion_matrix ():
[[TP, FN]
[FP, TN]]
Und der Klassifizierungsbericht gibt all dies an


Das, wenn Sie Python verwenden ///
Omkaar.K

0

Wenn Sie einfach nur das Ergebnis erzielen möchten, würde ich Ihnen raten, nicht zu viel über die Ihnen zur Verfügung stehenden Werkzeuge nachzudenken und sie zu verwenden. Hier erfahren Sie, wie Sie dies in Python tun können.

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']))

Um die folgende Ausgabe zu erhalten

   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

0

Das Folgende ist ein Beispiel für eine Mehrklassen-Verwirrungsmatrix, bei der angenommen wird, dass unsere Klassenbezeichnungen A, B und C sind

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

Summe 18 18 19 55

Jetzt berechnen wir jeweils drei Werte für Precision und Recall und nennen sie Pa, Pb und Pc. und ähnlich Ra, Rb, Rc.

Wir wissen, dass Präzision = TP / (TP + FP) ist, also wird für Pa wahres Positiv das tatsächliche A sein, das als A vorhergesagt wird, dh 10, der Rest der beiden Zellen in dieser Spalte, ob es B oder C ist, macht falsch positiv. So

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

Jetzt sind Präzision und Rückruf für Klasse B Pb und Rb. Für die Klasse B ist wahr positiv das tatsächliche B, das als B vorhergesagt wird, dh die Zelle, die den Wert 12 enthält, und der Rest der beiden Zellen in dieser Spalte machen also falsch positiv

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

In ähnlicher Weise ist Pc = 9/19 = 0,47 Rc = 9/18 = 0,5

Die Gesamtleistung des Klassifikators wird durch durchschnittliche Präzision und durchschnittlichen Rückruf bestimmt. Dazu multiplizieren wir den Genauigkeitswert für jede Klasse mit der tatsächlichen Anzahl von Instanzen für diese Klasse, addieren sie dann und teilen sie durch die Gesamtzahl der Instanzen. Mögen ,

Durchschnittliche Präzision = (0,55 * 17 + 0,67 * 20 + 0,47 * 18) / 55 = 31,21 / 55 = 0,57 Durchschnittlicher Rückruf = (0,59 * 17 + 0,6 * 20 + 0,5 * 18) / 55 = 31,03 / 55 = 0,56

Ich hoffe, es hilft

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.