Wie berechnen Sie die Genauigkeit und den Rückruf für die Klassifizierung mehrerer Klassen mithilfe der Verwirrungsmatrix?


92

Ich frage mich, wie man die Präzision berechnet und eine Verwirrungsmatrix für ein Klassifizierungsproblem mit mehreren Klassen verwendet. Insbesondere kann eine Beobachtung nur ihrer wahrscheinlichsten Klasse / Kennzeichnung zugeordnet werden. Ich würde gerne berechnen:

  • Präzision = TP / (TP + FP)
  • Rückruf = TP / (TP + FN)

für jede Klasse, und berechnen Sie dann das mikro-gemittelte F-Maß.


Dieses Dokument , Bewertung eines Klassifikationsmodells - Was sagen mir Präzision und Erinnerung? , von Compumine bietet eine einfache Einführung in die Verwirrungsmatrix und die daraus abgeleiteten Maßnahmen. Es hilft, die Verwirrungsmatrix, Präzision, Erinnerung, Spezifität und Genauigkeit zu erstellen.
Jayran Choopan

4
Hier finden Sie die Antwort. Sehr gute Erklärung youtube.com/watch?v=FAr2GmWNbT0

Der Compumine-Link ist nicht mehr verfügbar.
Trenton

Für den Fall mehrerer Klassen verstehe ich, dass entlang der Zeilen (Achse = 0) der Rückruf und entlang der Spalten (Achse = 1) die Genauigkeit ist. rxnlp.com/…
MD ZIA ULLAH

Antworten:


69

In einem Fall mit 2 Hypothesen ist die Verwirrungsmatrix normalerweise:

       | Declare H1  |  Declare H0 |
|Is H1 |    TP       |   FN        |
|Is H0 |    FP       |   TN        |

wo ich so etwas wie deine notation benutzt habe:

  • TP = true positive (deklarieren Sie H1, wenn in Wahrheit H1),
  • FN = falsch negativ (deklarieren Sie H0, wenn in Wahrheit H1 ist),
  • FP = falsch positiv
  • TN = richtig negativ

Ausgehend von den Rohdaten entsprechen die Werte in der Tabelle normalerweise den Zählwerten für jedes Vorkommen über den Testdaten. Daraus sollten Sie die Mengen berechnen können, die Sie benötigen.

Bearbeiten

Die Verallgemeinerung für Mehrklassenprobleme besteht darin, über Zeilen / Spalten der Verwirrungsmatrix zu summieren. Vorausgesetzt, dass die Matrix wie oben ausgerichtet ist, dh dass eine bestimmte Zeile der Matrix einem bestimmten Wert für die "Wahrheit" entspricht, haben wir:

Precision i=MiijMji

Recall i=MiijMij

Das heißt, Präzision ist der Bruchteil von Ereignissen, in denen wir korrekt aus allen Fällen deklariert haben , in denen der Algorithmus deklariert hat . Umgekehrt ist der Rückruf der Bruchteil von Ereignissen, bei denen wir aus allen Fällen, in denen der wahre Zustand der Welt ist, korrekt deklariert haben .ich ich ichiiii


1
In meinem Fall gibt es mehr als 10 Klassen. Ich schätze, die FN bedeutet die Gesamtzahl der deklarierten Klassen H (i), i! = 1; und das gleiche ist FP?
Daiyue

Hallo, ich frage mich, was die Werte für die Präzision und den Rückruf sein werden, wenn TP + FP = 0 und TP + FN = 0 für eine tatsächliche Klasse in der Verwirrungsmatrix.
daiyue

Die Genauigkeit für die Klasse iist nicht definiert, wenn es keine Fälle gibt, in denen der Algorithmus deklariert i. Der Rückruf für die Klasse iist undefiniert, wenn der Testsatz keine Klasse enthält i.
Dave

Mein letztes Ziel ist die Berechnung des Macro-F-Maßes. Daher benötige ich Genauigkeits- und Rückrufwerte für jede Klasse i. Wie kann ich das Macro-F-Maß berechnen, wenn die beiden oben genannten Fälle in einer Klasse i auftreten? Insbesondere, was ist der Wert für Fi, und zählt Klasse I als eine der Klassen M, so wird die Anzahl der Elemente in M ​​als Nenner der Formel zur Berechnung des Maßes für Makro F gezählt.
daiyue

1
sry, könnten sie ihre idee klarer erklären?
daiyue

31

Gutes zusammenfassendes Papier, das diese Metriken auf Probleme mit mehreren Klassen untersucht:

  • Sokolova, M. & Lapalme, G. (2009). Eine systematische Analyse von Leistungskennzahlen für Klassifizierungsaufgaben. Informationsverarbeitung und -verwaltung, 45 , p. 427-437. ( pdf )

Das Abstract lautet:

In diesem Artikel wird eine systematische Analyse von vierundzwanzig Leistungsmaßstäben vorgestellt, die im gesamten Spektrum der Klassifizierungsaufgaben des maschinellen Lernens verwendet werden, dh binär, mehrklassig, mehrfach gekennzeichnet und hierarchisch. Für jede Klassifizierungsaufgabe verknüpft die Studie eine Reihe von Änderungen in einer Verwirrungsmatrix mit bestimmten Merkmalen von Daten. Die Analyse konzentriert sich dann auf die Art der Änderungen an einer Verwirrungsmatrix, die eine Kennzahl nicht ändern, und behält daher die Bewertung eines Klassifikators bei (Kennzahlinvarianz). Das Ergebnis ist die Taxonomie der Maßinvarianz in Bezug auf alle relevanten Änderungen der Etikettenverteilung in einem Klassifizierungsproblem. Diese formale Analyse wird durch Anwendungsbeispiele untermauert, bei denen Invarianzeigenschaften von Maßnahmen zu einer zuverlässigeren Bewertung von Klassifikatoren führen.


2
Willkommen auf der Seite von @JamesTaylor. Würde es Ihnen etwas ausmachen, eine Zusammenfassung der Informationen in dem verlinkten Artikel zu geben, damit die Leser entscheiden können, ob es das ist, was sie brauchen und falls der Link nicht mehr funktioniert?
gung

8

Sklearn und numpy benutzen:

from sklearn.metrics import confusion_matrix
import numpy as np

labels = ...
predictions = ...

cm = confusion_matrix(labels, predictions)
recall = np.diag(cm) / np.sum(cm, axis = 1)
precision = np.diag(cm) / np.sum(cm, axis = 0)

Verwenden Sie dann, um allgemeine Maßstäbe für Präzision und Abruf zu erhalten

np.mean(recall)
np.mean(precision)
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.