logo

Verwirrungsmatrix im maschinellen Lernen

In maschinelles Lernen Unter Klassifizierung versteht man den Prozess der Kategorisierung eines bestimmten Datensatzes in verschiedene Kategorien. Beim maschinellen Lernen verwenden wir zur Messung der Leistung des Klassifizierungsmodells das Verwirrung Matrix . Verstehen Sie in diesem Tutorial die Bedeutung der Verwirrungsmatrix.

Was ist eine Verwirrungsmatrix?

A Verwirrung Matrix ist eine Matrix, die die Leistung eines maschinellen Lernmodells anhand einer Reihe von Testdaten zusammenfasst. Es ist ein Mittel zur Anzeige der Anzahl genauer und ungenauer Instanzen basierend auf den Vorhersagen des Modells. Es wird häufig verwendet, um die Leistung von Klassifizierungsmodellen zu messen, die darauf abzielen, eine kategoriale Bezeichnung für jede Eingabeinstanz vorherzusagen.

Die Matrix zeigt die Anzahl der vom Modell anhand der Testdaten erzeugten Instanzen an.



  • Echte Positive (TP): treten auf, wenn das Modell einen positiven Datenpunkt genau vorhersagt.
  • Echte Negative (TN) : treten auf, wenn das Modell einen negativen Datenpunkt genau vorhersagt.
  • Falsch positive Ergebnisse (FP) : treten auf, wenn das Modell einen positiven Datenpunkt falsch vorhersagt.
  • FALSCH Negative (FN) : treten auf, wenn das Modell einen negativen Datenpunkt falsch vorhersagt.

Warum brauchen wir eine Verwirrungsmatrix?

Bei der Beurteilung der Leistung eines Klassifizierungsmodells ist eine Verwirrungsmatrix unerlässlich. Es bietet eine gründliche Analyse von wahr-positiven, wahr-negativen, falsch-positiven und falsch-negativen Vorhersagen und erleichtert so ein tieferes Verständnis der Modelle Rückruf, Genauigkeit, Präzision, und Gesamtwirksamkeit im Klassenunterschied. Wenn ein Datensatz eine ungleichmäßige Klassenverteilung aufweist, ist diese Matrix besonders hilfreich bei der Bewertung der Leistung eines Modells, die über grundlegende Genauigkeitsmetriken hinausgeht.

Lassen Sie uns die Verwirrungsmatrix anhand der Beispiele verstehen:

Verwirrungsmatrix zur binären Klassifizierung

Unten wird eine 2X2-Verwirrungsmatrix für die Bilderkennung mit einem Hundebild oder einem Nicht-Hund-Bild angezeigt.

Tatsächlich

Hund

Nicht Hund

Vorhergesagt

Hund

Wirklich positiv
(TP)

Falsch positiv
(FP)

Nicht Hund

Falsch negativ
(FN)

Hoppla, Konzepte

Echt negativ
(TN)

  • Echt positiv (TP): Es handelt sich um die Gesamtzählungen, die sowohl die vorhergesagten als auch die tatsächlichen Werte aufweisen.
  • Echt negativ (TN): Es handelt sich um die Gesamtzahl, die sowohl die vorhergesagten als auch die tatsächlichen Werte aufweist.
  • Falsch positiv (FP): Es handelt sich um die Gesamtzahl, bei der die Vorhersage „Hund“ lautet, während sie in Wirklichkeit „Nicht Hund“ ist.
  • Falsch negativ (FN): Es handelt sich um die Gesamtzahl, bei der die Vorhersage „Kein Hund“ lautet, obwohl es sich tatsächlich um „Hund“ handelt.

Beispiel für binäre Klassifizierungsprobleme

Index

1

2

3

4

5

6

7

8

9

10

Tatsächlich

Hund

Hund

Hund

Nicht Hund

Hund

Nicht Hund

Hund

Hund

Nicht Hund

Nicht Hund

Vorhergesagt

Hund

Nicht Hund

Hund

Nicht Hund

Hund

Hund

Hund

Hund

Nicht Hund

Nicht Hund

Ergebnis

Stadt

FN

Stadt

TN

Stadt

FP

Stadt

Stadt

TN

TN

  • Tatsächliche Hundezahl = 6
  • Tatsächliche Nicht-Hundezählungen = 4
  • Echte positive Zählungen = 5
  • Falsch-Positiv-Zählungen = 1
  • Echte negative Zählungen = 3
  • Falsch-negative Zählungen = 1

Vorhergesagt

Hund

Nicht Hund


Tatsächlich

Hund

Wirklich positiv
(TP =5)

Falsch negativ
(FN =1)

Nicht Hund

Falsch positiv
(FP=1)

Echt negativ
(TN=3)

Metriken basierend auf Verwirrungsmatrixdaten

1. Genauigkeit

Die Genauigkeit wird verwendet, um die Leistung des Modells zu messen. Es ist das Verhältnis der Gesamtzahl der korrekten Instanzen zur Gesamtzahl der Instanzen.

Accuracy = frac {TP+TN}{TP+TN+FP+FN}

Für den obigen Fall:

Genauigkeit = (5+3)/(5+3+1+1) = 8/10 = 0,8

2. Präzision

Präzision ist ein Maß dafür, wie genau die positiven Vorhersagen eines Modells sind. Es ist definiert als das Verhältnis der wirklich positiven Vorhersagen zur Gesamtzahl der vom Modell gemachten positiven Vorhersagen.

ext{Precision} = frac{TP}{TP+FP}

Für den obigen Fall:

Präzision = 5/(5+1) =5/6 = 0,8333

3. Erinnern

Abrufen misst die Wirksamkeit eines Klassifizierungsmodells bei der Identifizierung aller relevanten Instanzen aus einem Datensatz. Es ist das Verhältnis der Anzahl der wahr-positiven (TP) Instanzen zur Summe der wahr-positiven und falsch-negativen (FN)-Instanzen.

ext{Recall} = frac{TP}{TP+FN}

Für den obigen Fall:

Rückruf = 5/(5+1) =5/6 = 0,8333

Notiz: Wir verwenden Präzision, wenn wir Fehlalarme minimieren wollen, was in Szenarien wie der Spam-E-Mail-Erkennung von entscheidender Bedeutung ist, bei denen es kostspielig ist, eine Nicht-Spam-Nachricht fälschlicherweise als Spam zu klassifizieren. Und wir verwenden Recall, wenn die Minimierung falsch-negativer Ergebnisse unerlässlich ist, wie etwa bei medizinischen Diagnosen, bei denen es entscheidend ist, alle tatsächlichen positiven Fälle zu identifizieren, auch wenn dies zu einigen falsch-positiven Ergebnissen führt.

4. F1-Score

F1-Ergebnis wird verwendet, um die Gesamtleistung eines Klassifizierungsmodells zu bewerten. Es ist das harmonische Mittel für Präzision und Erinnerung,

ext{F1-Score} = frac {2 cdot Precision cdot Recall}{Precision + Recall}

Für den obigen Fall:

F1-Score: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333

Wir gleichen Präzision und Erinnerung mit dem F1-Score ab, wenn ein Kompromiss zwischen der Minimierung falsch positiver und falsch negativer Ergebnisse erforderlich ist, beispielsweise bei Informationsabrufsystemen.

5. Spezifität:

Spezifität ist eine weitere wichtige Metrik bei der Bewertung von Klassifizierungsmodellen, insbesondere bei der binären Klassifizierung. Es misst die Fähigkeit eines Modells, negative Instanzen korrekt zu identifizieren. Spezifität wird auch als True Negative Rate bezeichnet.

ext{Specificity} = frac{TN}{TN+FP}

Spezifität=3/(1+3)​=3/4=0,75

6. Fehler vom Typ 1 und Typ 2

Fehler vom Typ 1

Ein Fehler vom Typ 1 tritt auf, wenn das Modell eine positive Instanz vorhersagt, diese aber tatsächlich negativ ist. Die Präzision wird durch falsch-positive Ergebnisse beeinflusst, da es sich um das Verhältnis von richtig-positiven Ergebnissen zur Summe von wahr-positiven und falsch-positiven Ergebnissen handelt.

ext{Type 1 Error} = frac{FP}{TN+FP}

Beispielsweise kommt es in einem Gerichtsszenario zu einem Typ-1-Fehler, der oft als Fehlalarm bezeichnet wird, wenn das Gericht eine Person fälschlicherweise als schuldig verurteilt, obwohl sie in Wahrheit an der mutmaßlichen Straftat unschuldig ist. Dieser schwerwiegende Fehler kann schwerwiegende Folgen haben und zur unrechtmäßigen Bestrafung einer unschuldigen Person führen, die die betreffende Straftat nicht begangen hat. Die Vermeidung von Fehlern erster Art in Gerichtsverfahren ist von größter Bedeutung, um sicherzustellen, dass der Gerechtigkeit ordnungsgemäß Genüge getan wird und unschuldige Personen vor ungerechtfertigtem Schaden und Strafe geschützt werden.

Fehler vom Typ 2

Ein Fehler vom Typ 2 tritt auf, wenn das Modell keine positive Instanz vorhersagen kann. Der Rückruf wird direkt von falsch-negativen Ergebnissen beeinflusst, da es sich um das Verhältnis von richtig-positiven Ergebnissen zur Summe von wahr-positiven und falsch-negativen Ergebnissen handelt.

Im Zusammenhang mit medizinischen Tests tritt ein Typ-2-Fehler auf, der oft als falsch negativ bezeichnet wird, wenn ein diagnostischer Test das Vorliegen einer Krankheit bei einem Patienten, der tatsächlich daran leidet, nicht erkennen kann. Die Folgen eines solchen Fehlers sind erheblich, da er zu einer verzögerten Diagnose und anschließenden Behandlung führen kann.

ext{Type 2 Error} = frac{FN}{TP+FN}

Bei der Präzision liegt der Schwerpunkt auf der Minimierung falsch-positiver Ergebnisse, während sich der Rückruf auf die Minimierung falsch-negativer Ergebnisse konzentriert.

Implementierung der Verwirrungsmatrix für die binäre Klassifizierung mit Python

Schritt 1: Importieren Sie die erforderlichen Bibliotheken

Python import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt>

Schritt 2: Erstellen Sie das NumPy-Array für tatsächliche und vorhergesagte Beschriftungen

Python actual = np.array( ['Dog','Dog','Dog','Not Dog','Dog','Not Dog','Dog','Dog','Not Dog','Not Dog']) predicted = np.array( ['Dog','Not Dog','Dog','Not Dog','Dog','Dog','Dog','Dog','Not Dog','Not Dog'])>

Schritt 3: Berechnen Sie die Verwirrungsmatrix

Python cm = confusion_matrix(actual,predicted)>

Schritt 4: Zeichnen Sie die Verwirrungsmatrix mit Hilfe der Seaborn-Heatmap

Python cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Dog','Not Dog'], yticklabels=['Dog','Not Dog']) plt.xlabel('Prediction',fontsize=13) plt.ylabel('Actual',fontsize=13) plt.title('Confusion Matrix',fontsize=17) plt.show()>

Ausgabe :

Schritt 5: Klassifizierungsbericht basierend auf Verwirrungsmetriken

Python print(classification_report(actual, predicted))>

Ausgabe :

Präzisionsrückruf F1-Score-Unterstützung Hund 0,83 0,83 0,83 6 Nicht Hund 0,75 0,75 0,75 4 Genauigkeit 0,80 10 Makro-Durchschnitt 0,79 0,79 0,79 10 Gewichteter Durchschnitt 0,80 0,80 0,80 10

Verwirrungsmatrix für die Klassifizierung mehrerer Klassen

Betrachten wir nun, dass es drei Klassen gibt. Unten ist eine 3X3-Verwirrungsmatrix für das Bild mit drei Klassen dargestellt.

Hier ist TP = True Positive, FP = False Positive, FN = False Negative.

IndexTatsächlichVorhergesagtStadtFPFN
1KatzeKatze100
2HundHund100
3PferdHund011
4KatzeKatze100
5HundHund100
6KatzeKatze100
7HundHund100
8PferdPferd100
9PferdPferd100
10KatzeHund011
  • True Positives (TP): 8 (1+1+0+1+1+1+1+1+1+0)
  • Falsch Positive (FP): 2 (0+0+1+0+0+0+0+0+0+1)
  • Falsch Negative (FN): 2 (0+0+1+0+0+0+0+0+0+1)

Unten ist eine 3X3-Verwirrungsmatrix für drei Klassen dargestellt.

Vorhergesagt

Katze

Hund

Pferd


Tatsächlich

Katze

Stadt

FP

FN

Hund

FP

Stadt

FN

Pferd

FN

FP

Stadt

Klassenbezogene Zusammenfassung:

  • Für Katze: [TP=3,FP=0,FN=1]
    • Index 1: Richtig positiv (Kat. tatsächlich, Katze vorhergesagt)
    • Index 4: Richtig positiv (Katze tatsächlich, Katze vorhergesagt)
    • Index 6: Richtig positiv (Kat. tatsächlich, Katze vorhergesagt)
    • Index 10: Falsch negativ (Katze tatsächlich, Hund vorhergesagt)
  • Für Hund: [TP=3,FP=2,FN=0]
    • Index 2: Richtig positiv (Hund tatsächlich, Hund vorhergesagt)
    • Index 5: Richtig positiv (Hund tatsächlich, Hund vorhergesagt)
    • Index 7: Richtig positiv (Hund tatsächlich, Hund vorhergesagt)
    • Index 10: Falsch positiv (Katze tatsächlich, Hund vorhergesagt)
    • Index 3: Falsch positiv (Pferd tatsächlich, Hund vorhergesagt)
  • Für Pferd: [TP=2,FP=0,FN=1]
    • Index 8: Richtig positiv (Pferd tatsächlich, Pferd vorhergesagt)
    • Index 9: Richtig positiv (Pferd tatsächlich, Pferd vorhergesagt)
    • Index 3: Falsch negativ (Pferd tatsächlich, Hund vorhergesagt)

Dann lautet die Verwirrungsmatrix:

Vorhergesagt

Katze

Hund

Pferd


Tatsächlich

Katze

TP(3)

FP(1)

FN(0)

Hund

FN(0)

TP(3)

FN(1)

Pferd

FN(1)

FP(1)

Linux-Verzeichnis umbenennen

TP(2)

Implementierung der Verwirrungsmatrix für die binäre Klassifizierung mit Python

Schritt 1: Importieren Sie die erforderlichen Bibliotheken

Python import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt>

Schritt 2: Erstellen Sie das NumPy-Array für tatsächliche und vorhergesagte Beschriftungen

Python actual = np.array( ['Cat', 'Dog', 'Horse', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Cat']) predicted = np.array( ['Cat', 'Dog', 'Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Dog'])>

Schritt 3: Berechnen Sie die Verwirrungsmatrix

Python cm = confusion_matrix(actual,predicted)>

Schritt 4: Zeichnen Sie die Verwirrungsmatrix mit Hilfe der Seaborn-Heatmap

Python cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Cat', 'Dog', 'Horse'], yticklabels=['Cat', 'Dog', 'Horse']) plt.xlabel('Prediction', fontsize=13) plt.ylabel('Actual', fontsize=13) plt.title('Confusion Matrix', fontsize=17) plt.show()>

Ausgabe:

Schritt 5: Klassifizierungsbericht basierend auf Verwirrungsmetriken

Python print(classification_report(actual, predicted))>

Ausgabe :

Präzisionsrückruf F1-Score-Unterstützung Katze 1,00 0,75 0,86 4 Hund 0,60 1,00 0,75 3 Pferd 1,00 0,67 0,80 3 Genauigkeit 0,80 10 Makro-Durchschnitt 0,87 0,81 0,80 10 Gewichteter Durchschnitt 0,88 0,80 0,81 10

Abschluss

Zusammenfassend lässt sich sagen, dass die Verwirrungsmatrix ein wesentliches Instrument zur Bewertung der Wirksamkeit von Klassifizierungsmodellen ist. Einblicke in die Genauigkeit, Präzision, Erinnerung und allgemeine Wirksamkeit eines Modells bei der Klassifizierung von Instanzen werden durch die gründliche Analyse der von ihm angebotenen wahr-positiven, wahr-negativen, falsch-positiven und falsch-negativen Vorhersagen bereitgestellt. Der Artikel lieferte Beispiele zur Veranschaulichung der Berechnung jeder Metrik und erörterte ihre Bedeutung. Außerdem wurde gezeigt, wie Verwirrungsmatrizen in Python für Binär- und Mehrklassen-Klassifizierungsszenarien implementiert werden können. Durch das Verständnis und die Anwendung dieser Metriken können Praktiker fundierte Entscheidungen hinsichtlich der Modellleistung treffen – insbesondere im Umgang mit unausgeglichenen Klassenverteilungen.

FAQs zur Verwirrungsmatrix

F. Wie ist eine Verwirrungsmatrix zu interpretieren?

Eine Verwirrungsmatrix fasst die Leistung eines Klassifizierungsmodells zusammen, wobei Einträge wahr-positive, wahr-negative, falsch-positive und falsch-negative Instanzen darstellen und Einblicke in die Genauigkeit und Fehler des Modells geben.

F. Welche Vorteile bietet die Verwendung der Confusion-Matrix?

Die Verwirrungsmatrix bietet eine umfassende Bewertung der Leistung eines Klassifizierungsmodells, bietet Einblicke in wahr-positive, wahr-negative, falsch-positive und falsch-negative Ergebnisse und unterstützt eine differenzierte Analyse, die über die grundlegende Genauigkeit hinausgeht.

Q. Was sind einige Beispiele für Verwirrungsmatrixanwendungen?

Verwirrungsmatrizen finden in verschiedenen Bereichen Anwendung, darunter in der medizinischen Diagnose (Erkennung wahrer/falsch positiver/negativer Ergebnisse für Krankheiten), der Betrugserkennung, der Stimmungsanalyse und der Bewertung der Bilderkennungsgenauigkeit.

F. Was ist das Verwirrungsmatrixdiagramm?

Ein Verwirrungsmatrixdiagramm stellt die Leistung eines Klassifizierungsmodells visuell dar. Es zeigt wahr-positive, wahr-negative, falsch-positive und falsch-negative Werte in einem strukturierten Matrixformat an.

F. Was sind die drei Werte der Verwirrungsmatrix?

Die drei Werte der Verwirrungsmatrix sind richtig positiv (richtig vorhergesagte positive Instanzen), wahr negativ (richtig vorhergesagte negative Instanzen) und falsch positiv (falsch vorhergesagte positive Instanzen).