Der Matthews-Korrelationskoeffizient (MCC, engl. Matthews correlation coefficient) ist eine Metrik, die wir verwenden können, um die Leistung eines Klassifizierungsmodells zu bewerten.

Es wird berechnet als:

MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)

wo:

  • TP: Anzahl der wahren Positiven
  • TN: Anzahl wahrer Negative
  • FP: Anzahl falsch positiver Ergebnisse
  • FN: Anzahl falsch negativer Ergebnisse

Diese Metrik ist besonders nützlich, wenn die beiden Klassen unausgewogen sind – das heißt, eine Klasse erscheint viel häufiger als die andere.

Der Wert für MCC reicht von -1 bis 1, wobei:

  • -1 gibt eine vollständige Abweichung zwischen vorhergesagten Klassen und tatsächlichen Klassen an
  • 0 ist gleichbedeutend mit völlig zufälligem Raten
  • 1 zeigt die vollständige Übereinstimmung zwischen vorhergesagten Klassen und tatsächlichen Klassen an

Angenommen, ein Sportanalyst verwendet ein logistisches Regressionsmodell, um vorherzusagen, ob 400 verschiedene College-Basketballspieler in die NBA eingezogen werden oder nicht.

Die folgende Konfusionsmatrix fasst die Vorhersagen des Modells zusammen:

Ausgewogen

Um den MCC des Modells zu berechnen, können wir die folgende Formel verwenden:

  • MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • MCC = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • MCC = 0,7368

Der Matthews-Korrelationskoeffizient beträgt 0,7368. Dieser Wert liegt ziemlich nahe bei eins, was darauf hindeutet, dass das Modell gute Vorhersagen darüber macht, ob Spieler gedraftet werden oder nicht.

Das folgende Beispiel zeigt, wie MCC für genau dieses Szenario mithilfe der Funktion matthews_corrcoef() aus der sklearn-Bibliothek in Python berechnet wird.

Beispiel: Berechnung des Matthews-Korrelationskoeffizienten in Python

Der folgende Code zeigt, wie Sie ein Array von vorhergesagten Klassen und ein Array von tatsächlichen Klassen definieren und dann den Matthews-Korrelationskoeffizienten eines Modells in Python berechnen:

import numpy as np
from sklearn.metrics import matthews_corrcoef

#Array von tatsächlichen Klassen definieren
actual = np.repeat([1, 0], repeats=[20, 380])

#Array vorhergesagter Klassen definieren
pred = np.repeat([1, 0, 1, 0], repeats=[15, 5, 5, 375])

#Berechnen Sie den Matthews-Korrelationskoeffizienten
matthews_corrcoef(actual, pred)

0.7368421052631579

Der MCC-Wert beträgt 0,7368. Dies entspricht dem Wert, den wir zuvor von Hand berechnet haben.

Hinweis: Die vollständige Dokumentation für die Funktion matthews_corrcoef() finden Sie hier.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere gängige Metriken für Klassifizierungsmodelle in Python berechnen:

Eine Einführung in die logistische Regression in Python
So berechnen Sie die F1-Punktzahl in Python
So berechnen Sie die ausgewogene Genauigkeit in Python

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: