Hoe de matthews-correlatiecoëfficiënt in r te berekenen


Matthews Correlatie Coëfficiënt (MCC) is een metriek die we kunnen gebruiken om de prestaties van een classificatiemodel te evalueren.

Het wordt als volgt berekend:

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

Goud:

  • TP : Aantal echte positieven
  • TN : Aantal echte negatieven
  • FP : Aantal valse positieven
  • FN : Aantal valse negatieven

Deze metriek is vooral handig wanneer de twee klassen niet in evenwicht zijn, dat wil zeggen dat de ene klasse veel meer voorkomt dan de andere.

De waarde van MCC ligt tussen -1 en 1 waarbij:

  • -1 geeft de totale onenigheid aan tussen voorspelde klassen en werkelijke klassen
  • 0 betekent volledig willekeurige gissingen
  • 1 geeft volledige overeenstemming aan tussen voorspelde klassen en werkelijke klassen

Stel bijvoorbeeld dat een sportanalist een logistisch regressiemodel gebruikt om te voorspellen of 400 verschillende universiteitsbasketbalspelers wel of niet zullen worden opgeroepen voor de NBA.

De volgende verwarringsmatrix vat de voorspellingen van het model samen:

Om de MCC van het model te berekenen, kunnen we de volgende formule gebruiken:

  • 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

De Matthews-correlatiecoëfficiënt blijkt 0,7368 te zijn.

Deze waarde ligt enigszins in de buurt van één, wat aangeeft dat het model goed presteert bij het voorspellen of spelers zullen worden opgeroepen of niet.

In het volgende voorbeeld ziet u hoe u MCC voor dit specifieke scenario kunt berekenen met behulp van de functie mcc() uit het mltools- pakket in R.

Voorbeeld: Berekening van de Matthews-correlatiecoëfficiënt in R

De volgende code laat zien hoe u een vector van voorspelde klassen en een vector van werkelijke klassen definieert, en vervolgens de Matthews-correlatiecoëfficiënt berekent met behulp van de functie mcc() uit het mltools- pakket:

 library (mltools)

#define vector of actual classes
actual <- rep (c(1, 0), times =c(20, 380))

#define vector of predicted classes
preds <- rep (c(1, 0, 1, 0), times =c(15, 5, 5, 375))

#calculate Matthews correlation coefficient
mcc(preds, actual)

[1] 0.7368421

De Matthews-correlatiecoëfficiënt is 0,7368 .

Dit komt overeen met de waarde die we eerder handmatig hebben berekend.

Als u de Matthews-correlatiecoëfficiënt voor een verwarringsmatrix wilt berekenen, kunt u het verwarringM- argument als volgt gebruiken:

 library (mltools)

#create confusion matrix
conf_matrix <- matrix(c(15, 5, 5, 375), nrow= 2 )

#view confusion matrix
conf_matrix

     [,1] [,2]
[1,] 15 5
[2,] 5,375

#calculate Matthews correlation coefficient for confusion matrix
mcc(confusionM = conf_matrix)

[1] 0.7368421

Opnieuw is de Matthews-correlatiecoëfficiënt 0,7368.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe logistische regressie uit te voeren in R
Hoe een ROC-curve te plotten met ggplot2
Hoe de F1-score in R te berekenen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert