Mithilfe einer confusion matrix können Sie die Genauigkeit Ihres Klassifizierungsmodells bewerten. So erstellen und lesen Sie eine solche Matrix in Python.
Die confusion matrix ist eine N x NMatrix, die verwendet wird, um die vorhergesagten Ergebnisse und die tatsächlichen Ergebnisse des Tests zusammenzufassen, wobei Ndie Anzahl der Testergebnisse ist. Sie hilft Ihnen beim Verständnis von:
- Wie gut Ihr Klassifizierungsalgorithmus funktioniert .
- Wo die Fehler in Ihrem Modell entstehen.
Einfach ausgedrückt hilft es Ihnen, Verwirrung hinsichtlich der Modellleistung zu beseitigen .
Zum besseren Verständnis der Verwirrungsmatrix verwenden wir ein Beispiel aus der Economic Times zu Covid-RT-PCR-Testergebnissen.
„Der RT-PCR-Test ist bei Gentests sensitiver und damit genauer“, heißt es in dem Artikel.
Die Wörter „sensitiv“ und „genau“ sind Leistungsindikatoren für den Test und stammen eigentlich aus einer confusion matrix. Betrachten wir den RT-PCR-Test als Klassifizierungsmodell . Er sagt voraus, ob der Patient infiziert ist, und die confusion matrix wird verwendet, um seine Leistung zu bewerten.
Wie funktioniert die Verwirrungsmatrix?
Mithilfe der confusion matrix können Sie die Leistung Ihres Klassifizierungsmodells besser einschätzen und erkennen, wo Fehler auftreten. Was bedeutet das also?
Angenommen, Sie verfügen über ein Klassifizierungsmodell mit einer Genauigkeit von 95 Prozent. Dies bedeutet, dass bei 95 von 100 Datensätzen die vorhergesagten Werte mit den tatsächlichen Werten übereinstimmen. Das Modell sagt also 95 Datensätze richtig voraus.
Das gleiche Modell hat auch fünf Datensätze falsch vorhergesagt, d. h. der Fehler beträgt 5 Prozent. Aus der Aussage zur Genauigkeit können Sie jedoch nicht ableiten, wo diese 5 Prozent Fehler aufgetreten sind oder woher sie stammen.
Hier kommt die confusion matrix ins Spiel.
Sie können es mit vorhergesagten Werten auf einer Achse und tatsächlichen Werten auf einer anderen erstellen. Anschließend müssen Sie die Anzahl der vorhergesagten und tatsächlichen Werte in die jeweiligen Zellen eintragen, wie unten gezeigt.
Lassen Sie uns mit dem RT-PCR-Testbeispiel fortfahren, um das Konzept im Detail zu verstehen. Angenommen, Sie haben einen RT-PCR-Test an 10 Patienten durchgeführt, bei dem der Test die Frage beantwortet: Ist der Patient infiziert?
Der Test hatte zwei Ergebnisse: YESoder NO. Unten finden Sie die Liste der tatsächlichen und prognostizierten Ergebnisse.
Da es nur zwei Ergebnisse gibt, beträgt die confusion matrix 2 x 2.
Vergleichen Sie einfach die vorhergesagten Werte mit den tatsächlichen Werten und zählen Sie sie, um die entsprechenden Zellen in der confusion matrix auszufüllen.
Wichtige Begriffe aus der Verwirrungsmatrix
Obwohl das obige Bild selbsterklärend ist, verfügt jede Zelle der confusion matrix über eine eigene wissenschaftliche Terminologie, wie unten gezeigt.
1. Wahres Positiv (TP)
Ein echtes Positiv liegt vor, wenn das Testergebnis wie vorhergesagt ist YESund tatsächlich YES, also positiv, ist. Das bedeutet, dass die Vorhersage wahr ist. Die Zelle in der ersten Zeile, ersten Spalte stellt dies dar.
2. Wahres Negativ (TN)
Ein echtes Negativ liegt vor, wenn das Testergebnis wie vorhergesagt wurde NOund tatsächlich NO, also negativ, ist. Das bedeutet, dass die Vorhersage wahr ist. Die Zelle in der zweiten Zeile, zweite Spalte stellt dies dar.
3. Falsch-Positiv (FP)
Ein falsch positives Ergebnis liegt vor, wenn das Testergebnis als vorhergesagt wird YES, also positiv, obwohl es tatsächlich ist NO. Das bedeutet, dass die Vorhersage falsch ist. Die Zelle in der zweiten Zeile, erste Spalte stellt dies dar.
4. Falsch-Negativ (FN)
Ein falsch-negatives Ergebnis liegt vor, wenn das Testergebnis als vorhergesagt wird NO, also negativ, aber tatsächlich ist YES. Das bedeutet, dass die Vorhersage falsch ist. Die Zelle in der ersten Zeile, zweite Spalte stellt dies dar.
Hier ist ein kurzer Tipp zum Lesen.
Alle falschen Ergebnisse, wie falsch positive und falsch negative, sind Fehler im Test. Die confusion matrix kann Ihnen helfen, diese Fehler zu quantifizieren.
Jetzt können Sie sagen, wie oft und in welchen Situationen Ihr Klassifizierungsmodell (in diesem Beispiel der RT-PCR-Test) keine korrekten Vorhersagen gemacht hat. In der Statistik ist ein falsch positives Ergebnis (FP) ein Fehler vom Typ I und ein falsch negatives Ergebnis (FN) ein Fehler vom Typ II.
Ein falsch-negatives Ergebnis gilt in der Medizin allgemein als gefährlicher Fehler.
Ein Fehler Typ II im Beispiel des RT-PCR-Tests tritt auf, wenn für den Patienten ein negatives Testergebnis vorhergesagt wird, obwohl es tatsächlich positiv ist. Basierend auf den Testergebnissen könnte sich Covid-19 auf eine größere Bevölkerung ausbreiten, wenn dieser Patient nicht genügend Vorsichtsmaßnahmen getroffen hätte.
Um die Leistung des Klassifizierungsmodells zu bewerten, sollten alle Zellen aus der confusion matrix berücksichtigt werden.
Metriken der Verwirrungsmatrix
Weitere Berechnungen aus der confusion matrix können die Auswirkungen aller korrekten und falschen Vorhersagen erfassen. Nachfolgend sind die häufig abgeleiteten Metriken aufgeführt:
1. Richtigkeit
Mithilfe einer confusion matrix können Sie ermitteln, wie oft Ihr Klassifizierungsmodell korrekt ist. Das heißt: Wie viele der vorhergesagten Werte sind tatsächlich korrekt?
Mathematisch kann die Genauigkeit berechnet werden, indem alle wahren Werte, also die Anzahl aller wahren positiven (TP) und wahren negativen (TN) Ergebnisse, durch die Gesamtzahl der Ergebnisse geteilt werden.
In unserem Beispiel beträgt die Genauigkeit (4+1)/(4+1+3+2) = 0.5, was bedeutet, dass das Modell nur in 50 Prozent der Fälle eine korrekte Vorhersage macht.
Die Genauigkeit ist möglicherweise kein gutes Maß, wenn der Datensatz eine unterschiedliche Anzahl positiver und negativer Ergebnisse enthält.
Beispielsweise gibt es im Datensatz acht nicht infizierte und nur zwei infizierte Patienten. Nehmen wir nun an, Ihr Modell hat vorhergesagt, dass alle Patienten nicht infiziert sind. Die confusion matrix in diesem Szenario enthält TP = 0, FP = 0, TN = 8und FN = 2.
Die Genauigkeit beträgt in diesem Fall (8+0)/(0+0+8+2) = 0.8. Obwohl die Genauigkeit 80 Prozent beträgt, ist dieses Modell sehr schlecht, da es alle infizierten Patienten als nicht infiziert vorhersagt, was zu einem falsch-negativen Ergebnis führt, also einem Fehler vom Typ II.
Die Genauigkeit erfasst nur den Anteil der korrekt vorhergesagten Ergebnisse an der Gesamtzahl der Ergebnisse. Sie berücksichtigt keine Fehlklassifizierungen oder falschen Ergebnisse. Bei einer Genauigkeit von 80 Prozent wissen Sie also nicht, wie sich die restlichen 20 Prozent auf falsch-negativ und falsch-positiv verteilen.
Daher benötigen wir andere Messwerte, um die Leistung des Klassifizierungsmodells zu bewerten.
2. Sensibilität
Mithilfe dieser Metrik können Sie ermitteln, wie oft das Modell ein korrektes „Ja“ vorhersagt. Es handelt sich um eine True-Positive-Rate, die berechnet wird, indem die Anzahl der True-Positive-Ergebnisse durch die Gesamtzahl der tatsächlich positiven Ergebnisse geteilt wird.
Mathematisch wird es wie folgt berechnet:
Daher gibt es bei hoher Sensitivität weniger falsch negative Ergebnisse.
Im Beispiel des RT-PCR-Tests wird die Sensitivität wie folgt berechnet 4/(4+3) = 0.57: Das bedeutet, dass der Test eine Sensitivität von 57 Prozent hat. Von allen Patienten, die tatsächlich mit Covid-19 infiziert waren, hat der RT-PCR-Test also nur 57 Prozent richtig vorhergesagt.
Sensitivität und Recall sind austauschbare Begriffe und werden beide häufig in der Statistik verwendet. Der Begriff Sensitivität wird häufig zusammen mit dem Begriff Spezifität verwendet, während Recall zusammen mit Präzision verwendet wird.
3. Spezifität
Die Spezifität ist das Gegenteil der Sensitivität, da es sich dabei um die Rate der wahren Negativergebnisse handelt. Sie wird berechnet, indem die Anzahl der wahren Negativergebnisse durch die Gesamtzahl der tatsächlich negativen Ergebnisse geteilt wird.
Mithilfe dieser Metrik können Sie nachvollziehen, wie oft das Klassifizierungsmodell ein vorhersagt NOund ein tatsächliches zurückgibt NO.
Im Beispiel des RT-PCR-Tests wird die Spezifität wie folgt berechnet 1/(1+2) = 0.333: Das bedeutet, dass der Test eine Spezifität von 33,3 Prozent hat. Von allen Patienten, die nicht mit Covid infiziert waren, hat der RT-PCR-Test also nur 33 Prozent richtig vorhergesagt.
5. Präzision
Mithilfe der Präzision können Sie ermitteln, wie oft ein Modell ein positives Ergebnis korrekt vorhersagt. Im Idealfall bedeutet eine Präzision von eins oder 100 Prozent, dass das Modell immer dann, wenn es ein positives Ergebnis vorhersagt, zu 100 Prozent richtig liegt.
Die Präzision ist die Anzahl der echten positiven Ergebnisse geteilt durch die Gesamtzahl der positiven Ergebnisse:
Um eine Genauigkeit von 100 Prozent oder eins zu erreichen, sollte der falsch positive Wert Null werden. Das bedeutet, dass keiner der negativen Werte als positiv vorhergesagt wird.
Im Beispiel des RT-PCR-Tests erhalten Sie eine Präzision von 4/(4+2) = 0.666. Das bedeutet, dass dieses Klassifizierungsmodell, wenn es den Patienten als infiziert vorhersagt, nur in 66,6 Prozent der Fälle richtig liegt.
Sie fragen sich vielleicht, wie Sie diese Kennzahlen in einem realen Projekt berechnen können. Die meisten Bibliotheken für maschinelles Lernen verfügen über Methoden, die alle diese Kennzahlen in nur einer Codezeile berechnen sunk cost fallacy.
So erstellen Sie eine confusion matrix in Python
Wenn Sie Python zum Erstellen eines Klassifizierungsmodells verwenden , verfügt die Bibliothek für maschinelles Lernen scikit-learn über die integrierte Funktion confusion_matrix zum Erstellen einer confusion matrix.
Lassen Sie uns unser RT-PCR-Testbeispiel transformieren und jedes YESdurch 1und NOdurch ersetzen 0, um diese Funktion zu verwenden.
Die Ausgabematrix sieht etwas anders aus als die confusion matrix, die Sie weiter oben in diesem Artikel gesehen haben. Das liegt daran, dass scikit-learn eine andere Anordnung der vorhergesagten und tatsächlichen Werte in der confusion matrix hat.
Daher folgt die mit scikit-learn erstellte confusion matrix der folgenden Struktur.
Sie können diese Matrix auch mit der Datenvisualisierungsbibliothek Seaborn visualisieren, wie unten gezeigt .
Obwohl Sie TP, TN, FP und FN aus dieser confusion matrix verstehen können, ist die eigentliche Frage immer noch nicht beantwortet: Wie erhalte ich mit Python Metriken wie Präzision, Rückruf und Genauigkeit ?
Und die Antwort liegt wieder in derselben Scikit-Learn-Bibliothek. Scikit-Learn bietet die integrierten Funktionen accuracy_score, precision_score, recall_scoreum Ihre Fragen zu beantworten:
Sie können sehen, dass diese Ausgabe genau mit der von Ihnen manuell berechneten übereinstimmt.
Es gibt mehrere Metriken, um die Leistung eines Klassifizierungsmodells zu bewerten. Die Wahl der richtigen Metrik hängt jedoch von dem Problem ab, das Sie lösen. Im Allgemeinen wird die Genauigkeit verwendet, um zu verstehen, ob das Modell gut oder schlecht ist. Wenn der Datensatz jedoch unausgewogen ist, ist es immer besser, auch andere Metriken zu berücksichtigen.