Verwirrungsmatrix im maschinellen Lernen mit BEISPIEL

⚡ Intelligente Zusammenfassung

Die Konfusionsmatrix ist eine Tabelle zur Leistungsmessung von Klassifikationsmodellen, die vorhergesagte Bezeichnungen mit bekannten tatsächlichen Bezeichnungen vergleicht und genau aufzeigt, welche Klassen ein Klassifikator richtig und welche er falsch erkennt.

  • 🔘 Vier mögliche Ergebnisse: Richtig positive, richtig negative, falsch positive und falsch negative Werte füllen jede Zelle einer Binärmatrix.
  • ☑️ Fehlertypen: Ein falsch positives Ergebnis ist ein Fehler 1. Art, ein falsch negatives Ergebnis ein Fehler 2. Art.
  • ✅ Abgeleitete Metriken: Genauigkeit, Präzision, Trefferquote, Spezifität und F1-Score basieren alle auf denselben vier Zählwerten.
  • 🧪 Über die Genauigkeit hinaus: Bei unausgewogenen Daten schmeichelt die Genauigkeit einem Modell, während die Matrix aufzeigt, in welcher Klasse es tatsächlich versagt.
  • ️ Mehrklassenansicht: N Klassen erzeugen ein N×N-Gitter, wobei die Diagonale jede korrekte Vorhersage enthält.
  • ⚙️ Python Route: scikit-learn erstellt die gleiche Tabelle in zwei Zeilen mit confusion_matrix() und classification_report().

Konfusionsmatrix im maschinellen Lernen mit Beispiel

Was ist eine Verwirrungsmatrix?

A Verwirrung Matrix ist eine Leistungsmessungstechnik für Maschinelles Lernen Klassifizierung. Es handelt sich um eine Tabelle, die die Leistung eines Klassifizierungsmodells anhand eines Testdatensatzes mit bekannten wahren Werten darstellt. Der Begriff „Konfusionsmatrix“ ist recht einfach, die darauf aufbauende Terminologie kann jedoch verwirrend sein. Daher werden die einzelnen Bestandteile im Folgenden verständlich erklärt.

Die Matrix gilt für alle überwachten Klassifikator — logistische Regression, ein Entscheidungsbaum, ein Naives Bayes-Modell oder die tiefes neuronales Netzwerk — weil es nur zwei Spalten mit Bezeichnungen vergleicht: was das Modell vorhergesagt hat und was tatsächlich der Fall war.

Vier Ergebnisse der Verwirrungsmatrix

Die Konfusionsmatrix visualisiert die Genauigkeit eines Klassifikators durch Vergleich der tatsächlichen und der vorhergesagten Klassen. Die binäre Konfusionsmatrix besteht aus Quadraten:

Tabelle zur binären Verwechslungserkennung mit Darstellung der TP-, FP-, FN- und TN-Quadranten
Verwirrungstabelle

Die obige Tabelle zeigt die vier Quadrate, die jede binäre Konfusionsmatrix enthält:

  • TP: Richtig positiv: Die vorhergesagten Werte wurden korrekt als tatsächlich positiv vorhergesagt.
  • FP: Falsch positiv: Vorhergesagte Werte wurden fälschlicherweise als tatsächlich positiv vorhergesagt, d. h. negative Werte wurden als positiv vorhergesagt.
  • FN: Falsch negativ: Positive Werte werden als negativ vorhergesagt
  • TN: Richtig negativ: Die vorhergesagten Werte wurden korrekt als tatsächlich negativ vorhergesagt.

Die Statistik gibt den beiden Fehlerzellen eigene Namen. Ein falsch positives Ergebnis ist ein Typ I Fehler Das Modell schlug Alarm, der niemals hätte ausgelöst werden dürfen. Ein falsch negatives Ergebnis ist ein Typ II Fehler Das Modell schwieg, obwohl es hätte Alarm schlagen müssen. Die Kenntnis, welche der beiden Optionen für Ihr Problem kostspieliger ist, entscheidet darüber, welche Kennzahl Sie später optimieren.

Den Genauigkeitstest können Sie anhand der Konfusionsmatrix berechnen, wie die folgende Formel zeigt:

Genauigkeitsformel, abgeleitet aus den vier Ergebnissen der Konfusionsmatrix

Beispiel einer Verwirrungsmatrix

Die Konfusionsmatrix ist eine nützliche Methode des maschinellen Lernens, mit der sich Trefferquote (Recall), Präzision (Precision), Genauigkeit (Accuracy) und die AUC-ROC-Kurve messen lassen. Das folgende Fußballbeispiel veranschaulicht die Bedeutung der Begriffe „True Positive“, „True Negative“, „False Positive“ und „False Negative“ im Alltag.

Richtig positiv:

Du hast etwas Positives vorhergesagt, und es hat sich bewahrheitet. Zum Beispiel hattest du vorausgesagt, dass Frankreich die Weltmeisterschaft gewinnen würde, und so war es auch.

True Negative:

Du hast das Negative vorhergesagt, und das stimmt auch. Du hattest vorausgesagt, dass England nicht gewinnen würde, und es hat verloren.

Falsch positiv:

Ihre Vorhersage ist positiv und falsch.

Du hattest vorhergesagt, dass England gewinnen würde, aber es hat verloren.

Falsch negativ:

Ihre Vorhersage ist negativ, und das Ergebnis widerlegt sie.

Sie hatten vorhergesagt, dass Frankreich nicht gewinnen würde, aber es hat gewonnen.

Sie sollten sich merken, dass das erste Wort beschreibt, ob die Vorhersage richtig oder falsch war (Wahr oder Falsch), und das zweite Wort beschreibt, was das Modell vorhergesagt hat (Positiv oder Negativ).

So berechnen Sie eine Verwirrungsmatrix

Hier ist die schrittweise Vorgehensweise zur Berechnung einer Konfusionsmatrix in Data Mining:

  • Schritt 1) Zunächst benötigen Sie einen Testdatensatz zusammen mit den erwarteten Ergebniswerten.
  • Schritt 2) Alle Zeilen im Testdatensatz vorhersagen.
  • Schritt 3) Vergleichen Sie die erwarteten Ergebnisse mit den Vorhersagen und zählen Sie:
    1. Die Summe der richtigen Vorhersagen jeder Klasse.
    2. Die Summe der falschen Vorhersagen jeder Klasse.

Danach werden diese Zahlen nach den unten angegebenen Methoden organisiert:

  • Jede Zeile der Matrix entspricht einer konkreten Klasse.
  • Jede Spalte der Matrix ist mit einer vorhergesagten Klasse verknüpft.
  • Die Gesamtzahl der richtigen und falschen Klassifizierungen wird in die Tabelle eingetragen.
  • Die Summe der korrekten Vorhersagen für eine Klasse wird in die Zelle eingetragen, in der die tatsächliche Zeile dieser Klasse auf ihre eigene vorhergesagte Spalte trifft – die Diagonale.
  • Die Summe der falschen Vorhersagen für eine Klasse wird in die tatsächliche Zeile für diesen Klassenwert und in die vorhergesagte Spalte derjenigen Klasse eingetragen, die das Modell stattdessen gewählt hat.

Die Zuordnung von Zeilen und Spalten ist eher eine Konvention als eine feste Regel, und manche Diagrammwerkzeuge vertauschen das Layout. Lesen Sie daher immer die Achsenbeschriftungen, bevor Sie eine Matrix interpretieren. Die hier verwendete Ausrichtung – tatsächliche Werte in den Zeilen, vorhergesagte Werte in den Spalten – entspricht der von scikit-learn erzeugten.

Andere wichtige Begriffe unter Verwendung einer Verwirrungsmatrix

Sobald die vier Zählwerte festgelegt sind, beschreibt eine Gruppe von Sekundärbegriffen verschiedene Ausschnitte derselben Tabelle:

  • Positiver Vorhersagewert (PPV): Dies entspricht nahezu der Präzision. Ein wesentlicher Unterschied zwischen den beiden Begriffen besteht darin, dass der positive Vorhersagewert (PPV) die Prävalenz berücksichtigt. Bei perfekt ausgeglichenen Klassen ist der positive Vorhersagewert gleich der Präzision.
  • Nullfehlerrate: Dieser Wert definiert, wie oft Ihre Vorhersage falsch wäre, wenn Sie immer die Mehrheitsklasse vorhersagen würden. Sie können ihn als Basiswert verwenden, um Ihren Klassifikator damit zu vergleichen.
  • F-Score: Der F1-Score ist ein gewichteter Durchschnittswert aus Trefferquote (Recall) und Präzision.
  • ROC-Kurve: Die ROC-Kurve stellt die Trefferquote (Sensitivität) der Falsch-Positiv-Rate (Spezifität) bei verschiedenen Schwellenwerten gegenüber. Sie verdeutlicht außerdem den Zusammenhang zwischen Sensitivität (Recall) und Spezifität, d. h. der Trefferquote (Sensitivität).
  • Präzision: Die Präzisionsmetrik zeigt die Genauigkeit der positiven Klasse. Es misst, wie wahrscheinlich die Vorhersage der positiven Klasse richtig ist.

Präzisionsformel: Richtig positive Ergebnisse geteilt durch die Summe aus richtig positiven und falsch positiven Ergebnissen

Die maximale Punktzahl beträgt 1, wenn der Klassifikator alle positiven Werte korrekt klassifiziert. Die Präzision allein ist wenig aussagekräftig, da sie die negativen Werte ignoriert. Die Metrik wird üblicherweise zusammen mit der Trefferquote (Recall) verwendet. Die Trefferquote wird auch Sensitivität oder Trefferquote genannt und wie folgt berechnet.

  • Empfindlichkeit: Die Sensitivität berechnet das Verhältnis der korrekt erkannten positiven Klassen. Diese Metrik zeigt, wie gut das Modell positive Klassen erkennt.

Sensitivitätsformel: Anzahl der richtig positiven Ergebnisse geteilt durch die Summe der richtig positiven und falsch negativen Ergebnisse

Kennzahlen und Formeln der Konfusionsmatrix

Alle oben genannten Kennzahlen basieren auf der Arithmetik mit denselben vier Zählgrößen. Daher ist es hilfreich, sie nebeneinander mit der Frage zu betrachten, die jede einzelne beantwortet.

Metrisch Formel Fragen, die es beantwortet Verwenden Sie es, wenn
Genauigkeit (TP + TN) / (TP + TN + FP + FN) Wie viele Vorhersagen waren insgesamt richtig? Die Klassen sind in etwa ausgeglichen.
Präzision TP / (TP + FP) Wenn das Modell ein positives Ergebnis liefert, wie oft stimmt es dann? Fehlalarme sind teuer
Rückruf (Empfindlichkeit) TP / (TP + FN) Von allen tatsächlichen positiven Aspekten, wie viele wurden tatsächlich erfasst? Verpasste positive Ergebnisse sind teuer
Spezifität TN / (TN + FP) Wie viele aller tatsächlichen Negativpunkte wurden beseitigt? Auch die negative Klasse zählt.
F1-Punktzahl 2 × (Präzision × Trefferquote) / (Präzision + Trefferquote) Wie sieht das Verhältnis zwischen den beiden aus? Sie benötigen eine Nummer für beides

Ein Spamfilter, getestet an 100 E-Mails, liefert folgende Werte: TP = 45, FN = 5, FP = 10 und TN = 40. Die Genauigkeit beträgt (45 + 40) / 100 = 0.85. Die Präzision liegt bei 45 / (45 + 10) = 0.82, die Trefferquote bei 45 / (45 + 5) = 0.90 und die Spezifität bei 40 / (40 + 10) = 0.80. Der F1-Score beträgt 0.86.

Diese Zahlen erzählen eine Geschichte, die eine einzelne Genauigkeitsangabe verschleiert: Der Filter erkennt 90 Prozent des echten Spams, stellt aber fälschlicherweise jede fünfte als Spam markierte legitime E-Mail unter Quarantäne. Ob dieser Kompromiss akzeptabel ist, hängt von den Kosten jedes einzelnen Fehlers ab. Genau deshalb wird die gesamte Matrix anstelle der reinen Genauigkeit angegeben.

Verwirrungsmatrix für die Klassifizierung mehrerer Klassen

Klassifizierungsprobleme beschränken sich selten auf zwei Kategorien, und die Matrix skaliert, ohne ihre Form zu verändern. Bei N Klassen wird die Tabelle zu einem N×N-Gitter: Die Diagonale enthält alle korrekten Vorhersagen, und jede Zelle außerhalb der Diagonalen gibt genau an, welche Klasse mit welcher anderen verwechselt wurde.

Ein Drei-Klassen-Modell, das Bilder in Katze, Hund und Kaninchen sortiert, erzeugt ein 3×3-Raster. Enthält die Zelle in Zeile „Katze“, Spalte „Hund“ den Wert 12, wurden zwölf Katzenbilder fälschlicherweise als Hunde klassifiziert. Diese Detailgenauigkeit macht die Matrix aussagekräftiger als eine Punktzahl: Sie benennt das spezifische Klassenpaar, das das Modell nicht trennen kann.

Präzision, Trefferquote und F1-Wert werden pro Klasse anhand einer Eins-gegen-Rest-Sichtweise definiert, wobei die betreffende Klasse die positive Klasse und alle anderen Klassen die negative Klasse darstellen. Die Kennzahlen pro Klasse werden dann auf eine von drei Arten kombiniert:

  • Makro-Durchschnitt: Berechnet die Metrik für jede Klasse separat und bildet dann den ungewichteten Mittelwert. Jede Klasse wird gleich gewichtet, sodass seltene Klassen nicht untergehen.
  • Mikro-Durchschnitt: Die TP-, FP- und FN-Zählungen werden über alle Klassen hinweg zusammengefasst, bevor die Metrik berechnet wird. Große Klassen dominieren, und bei Problemen mit einer einzigen Kennzeichnung sind Mikropräzision, Mikro-Recall und Genauigkeit identisch.
  • Gewichteter Durchschnitt: Die Werte pro Klasse werden gemittelt, wobei die Anzahl der tatsächlichen Instanzen jeder Klasse als Gewichtung dient, wodurch das Klassenungleichgewicht sichtbar bleibt.

Wählen Sie „Makro“, wenn jede Klasse gleich wichtig ist, und „gewichtet“, wenn die Klassenverteilung den tatsächlichen Datenverkehr widerspiegelt.

Wie man eine Konfusionsmatrix erstellt Python

Die scikit-learn-Bibliothek erstellt die gesamte Tabelle aus zwei Label-Arrays, sodass kein manuelles Zählen erforderlich ist. Das folgende Beispiel vergleicht zehn korrekte Labels mit zehn Vorhersagen.

from sklearn.metrics import confusion_matrix

y_true = [1, 0, 1, 1, 0, 1, 0, 0, 1, 0]
y_pred = [1, 0, 1, 0, 0, 1, 1, 0, 1, 0]

cm = confusion_matrix(y_true, y_pred)
print(cm)

Der Aufruf gibt ein 2×2 NumPy-Array zurück, in dem Zeile 0 die tatsächliche negative Klasse und Zeile 1 die tatsächliche positive Klasse ist:

[[4 1]
 [1 4]]

Das Einlesen des Arrays gemäß der scikit-learn-Konvention ergibt TN = 4 (oben links), FP = 1 (oben rechts), FN = 1 (unten links) und TP = 4 (unten rechts). Das Entpacken dieser vier Werte in einer Zeile ergibt die folgende Karte:ping explizit:

tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()

Um Präzision, Trefferquote und F1-Wert für jede Klasse gleichzeitig zu erhalten, einschließlich der oben beschriebenen Makro- und gewichteten Mittelwerte, rufen Sie Folgendes auf: classification_report() anstatt jede Kennzahl von Hand zu berechnen:

from sklearn.metrics import classification_report

print(classification_report(y_true, y_pred))

Für eine grafische Darstellung, ConfusionMatrixDisplay.from_predictions(y_true, y_pred) Stellt dieselbe Tabelle als beschriftete Heatmap dar. Die vollständige Argumentliste, einschließlich der labels und normalize Optionen sind dokumentiert in der scikit-learn confusion_matrix referenceDer gleiche Auswertungsschritt gilt für Modelle, die mit TensorFlowweil die Metrik nur von den vorhergesagten Labels abhängt.

Warum brauchen Sie eine Verwirrungsmatrix?

Hier sind die Vorteile und Nutzen der Verwendung einer Konfusionsmatrix.

  • Es zeigt, wie ein Klassifizierungsmodell bei Vorhersagen verwirrt wird.
  • Die Konfusionsmatrix gibt Ihnen nicht nur Einblick in die Fehler, die Ihr Klassifikator macht, sondern auch in die Art der Fehler, die er macht.
  • Diese Aufschlüsselung hilft Ihnen, die Einschränkung zu überwinden, die sich allein aus der Klassifizierungsgenauigkeit ergibt.
  • Jede Spalte der Verwirrungsmatrix repräsentiert die Instanzen dieser vorhergesagten Klasse.
  • Jede Zeile der Verwirrungsmatrix repräsentiert die Instanzen der tatsächlichen Klasse.
  • Es macht die Modellevaluierung zu einer Diagnose und weist auf das spezifische Klassenpaar hin, das mehr Daten oder ein besseres Merkmal benötigt.

Dieser diagnostische Wert ist der Grund, warum die Konfusionsmatrix im Zentrum der Evaluierungsphase jedes Systems steht. Datenwissenschaft Arbeitsablauf und warum dies in der Regel die erste Tabelle ist, die überprüft wird, bevor ein Klassifikator in die Produktion überführt wird.

Häufig gestellte Fragen

Wenn nur zwei Prozent der Datensätze gefälscht sind, erreicht ein Modell, das stets „kein Betrug“ vorhersagt, eine Genauigkeit von 98 Prozent, ohne dabei Betrug aufzudecken. Die Matrix deckt die leere Zelle für korrekt positive Ergebnisse sofort auf, weshalb die Trefferquote bei verzerrten Daten wichtiger ist als die Genauigkeit.

Eine normalisierte Matrix zeigt Anteile anstelle von absoluten Häufigkeiten an, indem üblicherweise jede Zelle durch ihre Zeilensumme geteilt wird. Dadurch lassen sich Klassen sehr unterschiedlicher Größe auf einen Blick vergleichen, allerdings werden die Stichprobengrößen nicht angezeigt – daher sollten bei ungleichen Klassen beide Versionen angegeben werden.

Erstellen Sie die Matrix mit verschiedenen Wahrscheinlichkeitsschwellenwerten neu und beobachten Sie die Auswirkungen. Durch Absenken des Schwellenwerts werden Datensätze von der Zelle „Falsch-Negativ“ in die Zelle „Richtig-Positiv“ verschoben, was die Trefferquote erhöht, aber auch die Anzahl der Falsch-Positiv-Ergebnisse steigert. Wählen Sie den Schwellenwert, bei dem die verbleibenden Fehler die geringsten Kosten verursachen.

Nein. Die Matrix zählt einzelne Übereinstimmungen mit Labels und benötigt daher Kategorien. Regressionsergebnisse sind kontinuierlich und werden anhand von Fehlermaßen wie dem mittleren absoluten Fehler oder dem Bestimmtheitsmaß (R²) bewertet. Die Einteilung eines kontinuierlichen Zielwerts in Kategorien ist die einzige Möglichkeit, eine Matrix aussagekräftig zu gestalten.

Die Rückrufaktion ist meist die bessere Wahl, da eine übersehene Diagnose weitaus teurer ist als ein unnötiger Folgetest. Screening-Verfahren sind daher so optimiert, dass falsch-negative Ergebnisse nahezu ausgeschlossen werden und zusätzliche falsch-positive Ergebnisse in Kauf genommen werden, die später durch einen Bestätigungstest herausgefiltert werden.

Automatisierte Modellevaluierungswerkzeuge scannen nun jede Zelle außerhalb der Diagonalen, ordnen die kostspieligsten Verwechslungen nach ihrer Relevanz und schlagen vor, welche Klassen mehr Trainingsdaten oder ein zusammengeführtes Label benötigen. Sie passen außerdem automatisch Schwellenwerte an und wandeln so einen manuellen Matrizenvergleich in eine Rangliste um.

GitHub-Copilot Entwirft den Import, den Metrikaufruf und eine Heatmap anhand eines kurzen Kommentars. Betrachten Sie den Entwurf als Ausgangspunkt – überprüfen Sie stets die Achsenreihenfolge und die Argumentation für positive Beschriftungen selbst, da eine transponierte Matrix jede Schlussfolgerung umkehrt.

Groß genug, dass selbst die seltenste Klasse noch eine ausreichende Anzahl an Einträgen in ihrer Zeile liefert – wenige Stichproben führen zu Metriken, die zwischen den Durchläufen stark schwanken. Kreuzvalidierung, bei der Matrizen über alle Faltungen summiert werden, liefert ein stabileres Bild als eine kleine Testaufteilung.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: