Wie kann ich große Verwirrungsmatrizen leichter lesbar machen?


9

Ich habe kürzlich einen Datensatz ( Link ) mit 369 Klassen veröffentlicht. Ich habe ein paar Experimente mit ihnen durchgeführt, um ein Gefühl dafür zu bekommen, wie schwierig die Klassifizierungsaufgabe ist. Normalerweise gefällt es mir, wenn es Verwirrungsmatrizen gibt, um zu sehen, welche Art von Fehler gemacht wird. Eine Matrix ist jedoch nicht praktikabel.369×369

Gibt es eine Möglichkeit, wichtige Informationen zu großen Verwirrungsmatrizen zu geben? Zum Beispiel gibt es normalerweise viele Nullen, die nicht so interessant sind. Ist es möglich, die Klassen so zu sortieren, dass die meisten Einträge ungleich Null um die Diagonale liegen, um die Anzeige mehrerer Matrizen zu ermöglichen, die Teil der vollständigen Verwirrungsmatrix sind?

Hier ist ein Beispiel für eine große Verwirrungsmatrix .

Beispiele in freier Wildbahn

Abbildung 6 von EMNIST sieht gut aus:

Geben Sie hier die Bildbeschreibung ein

Es ist leicht zu erkennen, wo sich viele Fälle befinden. Dies sind jedoch nur Klassen. Wenn die gesamte Seite anstelle nur einer Spalte verwendet würde, könnte dies wahrscheinlich dreimal so viele sein, aber das wären immer noch nur 3 26 = 78 Klassen. Nicht einmal in der Nähe von 369 Klassen von HASY oder 1000 von ImageNet.26326=78

Siehe auch

Meine ähnliche Frage zu CS.stackexchange


Ich habe Mitleid mit dir ;-) Du kannst die Verwirrungsmatrizen von eins gegen alle für jede der Klassen ausprobieren. Geben Sie ihnen Aussehen oder Klassen, in denen das Verhalten nicht typisch ist, und verwenden Sie eine vollständige Verwirrungsmatrix nur für sie.
DaL

1
Warum nicht einfach die Genauigkeit des Modells für jede Kategorie angeben? Wer muss wirklich die gesamte Matrix sehen?
Darrin Thomas

1
@DarrinThomas Es geht nicht nur darum, es in einem Papier zu berichten. Es geht auch darum, Fehler selbst zu analysieren.
Martin Thoma

1
Zuerst können Sie die Werte zeilenweise normalisieren und dann als Heatmap darstellen. Außerdem können Sie die Klasse nach der klassenweisen Genauigkeit sortieren (normalisierter Wert auf der Diagonale). Ich nehme an, dies würde die Lesbarkeit erheblich verbessern.
Nikolas Rieble

1
Ich sollte dies wahrscheinlich noch einmal in math.SE / stackoverflow fragen. Ich bin mir ziemlich sicher, dass es Algorithmen gibt, die die Zeilen / Spalten so neu anordnen, dass der größte Teil des Werts nahe an der Diagonale liegt.
Martin Thoma

Antworten:


4

Sie können eine Technik anwenden, die ich in meiner Masterarbeit (Seite 48ff) beschrieben habe und die Confusion Matrix Ordering (CMO) heißt:

  1. Ordnen Sie die Spalten / Zeilen so an, dass die meisten Fehler entlang der Diagonale liegen.
  2. Teilen Sie die Verwirrungsmatrix in mehrere Blöcke auf, sodass die einzelnen Blöcke leicht gedruckt / angezeigt werden können - und so können Sie einige der Blöcke entfernen, da zu wenige Datenpunkte vorhanden sind.

Netter Nebeneffekt: Diese Methode gruppiert ähnliche Klassen automatisch zusammen. Abbildung 5.12 meiner Masterarbeit zeigt Folgendes:

Geben Sie hier die Bildbeschreibung ein

Sie können die Reihenfolge der Verwirrungsmatrix mit anwenden clana


Siehe github.com/MartinThoma/clana für eine Implementierung
Martin Thoma

1

Anstatt zu versuchen, die Spalten und Zeilen neu zu ordnen, würde ich vorschlagen, einen anderen Weg zu finden, um die Daten zu visualisieren.

(ich,j)ichj. Sie können auch ~ 20 feinkörnige Verwirrungsmatrizen haben: Für jeden Cluster können Sie die Verwirrungsmatrix der Klassen für die ~ 20 Klassen in jedem Cluster anzeigen. Natürlich können Sie dies auch durch hierarchisches Clustering erweitern und Verwirrungsmatrizen mit mehreren Granularitäten verwenden.

Möglicherweise gibt es auch andere mögliche Visualisierungsstrategien.

Als allgemeiner philosophischer Punkt: Es kann auch hilfreich sein, Ihre Ziele zu klären (was Sie aus der Visualisierung herausholen möchten). Sie können zwei Arten der Visualisierung unterscheiden:

  • Explorative Analyse: Sie sind sich nicht sicher, wonach Sie suchen. Sie möchten nur eine Visualisierung, mit der Sie nach interessanten Mustern oder Artefakten in den Daten suchen können.

  • Zahlen mit einer Nachricht: Sie haben eine bestimmte Nachricht, die der Leser mitnehmen soll, und Sie möchten eine Visualisierung erstellen, die diese Nachricht unterstützt oder Beweise für die Nachricht liefert.

Es kann Ihnen helfen, zu wissen, auf was Sie zielen möchten, und dann eine Visualisierung zu entwickeln, die darauf abzielt:

  • Wenn Sie explorative Analysen durchführen, anstatt zu versuchen, eine perfekte Visualisierung auszuwählen, ist es oft hilfreich, so viele Visualisierungen zu erstellen, wie Sie sich vorstellen können. Mach dir keine Sorgen, ob einer von ihnen perfekt ist; Es ist in Ordnung, wenn jeder fehlerhaft ist, da jeder eine möglicherweise andere Perspektive auf die Daten bietet (es wird wahrscheinlich in gewisser Hinsicht gut und in anderer Hinsicht schlecht sein).

  • Wenn Sie eine bestimmte Nachricht haben, die Sie vermitteln möchten, oder ein Thema, das Sie entwickeln möchten, suchen Sie nach einer Visualisierung, die dieses Thema unterstützt. Es ist schwierig, einen konkreten Vorschlag zu machen, ohne zu wissen, was dieses Thema / diese Botschaft sein könnte.


0

Es ist wichtig zu wissen, warum die EMNIST-Verwirrungsmatrix gut aussieht.

Aber ich finde es seltsam, dass sie die Färbung nicht beibehalten haben, wobei höhere Zahlen am dunkelsten sind. Beispielsweise sind die meisten leeren Fehlklassifizierungen, die Nullen enthalten, dunkler grau als diejenigen, die eine Ganzzahl enthalten. Scheint nicht konsequent.

Ich würde versuchen, den EMINST-Stil zu verwenden, außer ihn konsistent zu halten, wobei Farbe die Anzahl der Einträge in einer Zelle angibt. Weiß für Null und Schwarz für die meisten Einträge.

Eine perfekte Klassifizierung wäre eine schwarze Diagonale mit vollständig weißen oberen und unteren Dreiecken. Wo graue Flecken in den Dreiecken waren, würde dies auf Probleme hinweisen. Selbst bei einem 1000-Klassen-Set wäre dies hilfreich. Bei ImageNet, bei dem die Klassen hierarchisch sind, würde das Sortieren der Spalten so, dass Unterklassen gruppiert werden, rechts von der übergeordneten Klasse zu quadratischen dunklen Flecken führen.

Auch wenn Sie die Top-5-Antworten für ein Bild erhalten, schließen sich Klassen möglicherweise nicht gegenseitig aus, sodass die Hundeklassifizierung für ein Bild eines lap_dog immer noch wahr sein sollte. In einer solchen Verwirrungsmatrix sollten daher die allgemeineren Klassen viel dunkler sein als die genauen Klassifikationen (wenn die Farben normalisiert sind). Daher wäre das obere linke Quadrat am dunkelsten.

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.