Wie erstelle ich eine Verwirrungsmatrix für einen Klassifikator mit mehreren Klassen?


11

Ich habe ein Problem mit 6 Klassen. Daher erstelle ich einen Klassifikator für mehrere Klassen wie folgt: Für jede Klasse habe ich einen Klassifikator für die logistische Regression, der Eins gegen Alle verwendet, was bedeutet, dass ich 6 verschiedene Klassifikatoren habe.

Ich kann für jeden meiner Klassifikatoren eine Verwirrungsmatrix melden. Ich möchte jedoch eine Verwirrungsmatrix für ALLE Klassifikatoren angeben , wie ich hier in vielen Beispielen gesehen habe.

Wie kann ich es tun? Muss ich meine Klassifizierungsstrategie ändern, indem ich einen Eins-gegen-Eins-Algorithmus anstelle von Eins gegen Alle verwende? Denn auf diesen Verwirrungsmatrizen steht in den Berichten die False Positives für jede Klasse.

Beispiel einer Mehrklassen-Verwirrungsmatrix

Multiklassen-Verwirrungsmatrix

Ich möchte die Anzahl der falsch klassifizierten Artikel finden. In der ersten Zeile gibt es 137 Beispiele für Klasse 1, die als Klasse 1 klassifiziert wurden, und 13 Beispiele für Klasse 1, die als Klasse 2 klassifiziert wurden . Wie bekomme ich diese Nummer?


Die Anzahl der falsch klassifizierten Elemente ist die Summe aller Elemente in der Matrix abzüglich der Spur der Matrix ... aber ich denke nicht, dass Sie das meinen.

1
Mechanisch erhalten Sie diese Matrix, indem Sie zuerst Ihren Testsatz durch die tatsächliche Klasse (z. B. Ziel = 1, Ziel = 2 usw.) trennen und dann Ihren trainierten Klassifikator auf jeden Punkt in jeder Gruppe anwenden. Für Ziel = 1 würden Sie also die oberste Zeile der Matrix ausfüllen, basierend darauf, wie viele Mitglieder dieser Gruppe jeder Klasse zugewiesen wurden.

Genau so sollte es gemacht werden ... So mechanisch wie du gesagt hast. Vielen Dank!
Victor Leal

1
kein Problem. Ich habe dies auch formeller in meinem Beitrag erwähnt, aber manchmal hilft es, das tatsächliche Rezept zu sehen.

Antworten:


6

Vermutlich verwenden Sie diese Klassifizierer, um eine bestimmte Klasse für einen bestimmten Satz von Feature-Werten auszuwählen (wie Sie sagten, Sie erstellen einen Klassifizierer für mehrere Klassen).

Nehmen wir also an, Sie haben Klassen, dann wäre Ihre Verwirrungsmatrix eine Matrix, wobei die linke Achse die wahre Klasse (wie im Testsatz bekannt) und die obere Achse die Klasse zeigt, die einem Element mit zugewiesen ist diese wahre Klasse. Jedes Element der Matrix wäre die Anzahl der Elemente mit der wahren Klasse , die als in Klasse klassifiziert wurden .N × N i , j i jNN×Ni,jij

Dies ist nur eine einfache Erweiterung der 2-Klassen-Verwirrungsmatrix.


Ja! Ich kenne das! Aber wie sagt man die falsch positiven Ergebnisse? Ich meine, es gibt Beispiele, in denen die Anzahl der falsch klassifizierten Elemente angezeigt wird ... und meine Klassifizierer sagen nur "Hey, es gibt 60 Elemente der Klasse A und 40 einer anderen Klasse (ich kann einfach nicht sagen, welches es ist) ist ...) "
Victor Leal

1
@ VictorLeal Ich folge nicht, eine Verwirrungsmatrix sagt dir falsch positiv, wahr positiv, wahr negativ, falsch negativ ... was fehlt?

1
@ VictorLeal siehe hier: en.wikipedia.org/wiki/Confusion_matrix

Ich kenne die Informationen, die wir in einer Verwirrungsmatrix haben. Vielleicht kann ein Bild besser darstellen, wovon ich spreche: Confusion Matrix Multiclass
Victor Leal

@ VictorLeal Es sieht für mich wie eine normale Verwirrungsmatrix aus ... LHS zeigt die tatsächliche Klasse, oben die zugewiesene Klasse ... Fehlt mir etwas? Außerdem sollten Sie dieses Bild zu Ihrem Beitrag hinzufügen. Es wird hilfreich sein

11

Obwohl es in diesem Forum bereits einige Antworten gibt, dachte ich, ich würde die expliziten Gleichungen angeben, um es genauer zu machen:

C=ActualClassifedc11...c1ncn1cnn

Die Verwirrungselemente für jede Klasse sind gegeben durch:

tpi=cii

fpi=l=1nclitpi

fni=l=1nciltpi

tni=l=1nk=1nclktpifpifni


Was ist L und L?
girl101

1
auch, was ist das tp, tn, fp, fn für alle Klassen zusammen
girl101

tp = wahr positiv, fp = falsch positiv, fn = falsch negativ, tn = wahr negativ. Ich nehme an, dass der Index i auf jede Klasse verweist.
Albert

1

Verwenden Sie die in der Frage angehängte Matrix und berücksichtigen Sie die Werte auf der vertikalen Achse als tatsächliche Klasse und die Werte auf der horizontalen Achse als Vorhersage. Dann für die Klasse 1:

  • True Positive = 137-> Proben der Klasse 1, klassifiziert als Klasse 1
  • False Positive = 6-> (1 + 2 + 4) Stichproben der Klassen 2, 3 und 4, jedoch als Klasse 1 klassifiziert
  • Falsch negativ = 18-> (13 + 3 + 1 + 1) Proben der Klasse 1, jedoch klassifiziert als Klassen 2, 3, 6 und 7
  • Ture Negative = 581-> (55 + 1 + 6 ... + 2 + 26) Die Summe aller Werte in der Matrix mit Ausnahme der Werte in Spalte 1 und Zeile 1
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.