Jak obliczyć współczynnik korelacji matthewsa w r


Współczynnik korelacji Matthewsa (MCC) to metryka, której możemy użyć do oceny wydajności modelu klasyfikacyjnego .

Oblicza się go w następujący sposób:

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

Złoto:

  • TP : Liczba prawdziwie pozytywnych wyników
  • TN : Liczba prawdziwych negatywów
  • FP : Liczba fałszywych alarmów
  • FN : Liczba wyników fałszywie ujemnych

Metryka ta jest szczególnie przydatna, gdy obie klasy są niezrównoważone, to znaczy, że jedna klasa pojawia się znacznie częściej niż druga.

Wartość MCC mieści się w przedziale od -1 do 1, gdzie:

  • -1 oznacza całkowitą rozbieżność między klasami przewidywanymi a klasami rzeczywistymi
  • 0 oznacza całkowicie losowe domysły
  • 1 oznacza całkowitą zgodność klas przewidywanych z klasami rzeczywistymi

Załóżmy na przykład, że analityk sportowy korzysta z modelu regresji logistycznej , aby przewidzieć, czy 400 różnych koszykarzy z college’u zostanie powołanych do NBA.

Poniższa macierz zamieszania podsumowuje przewidywania dokonane przez model:

Aby obliczyć MCC modelu, możemy skorzystać z następującego wzoru:

  • 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

Współczynnik korelacji Matthewsa okazuje się wynosić 0,7368 .

Wartość ta jest nieco bliska jedności, co wskazuje, że model dobrze radzi sobie z przewidywaniem, czy gracze zostaną powołani do draftu, czy nie.

Poniższy przykład pokazuje, jak obliczyć MCC dla tego konkretnego scenariusza przy użyciu funkcji mcc() z pakietu mltools w R.

Przykład: Obliczanie współczynnika korelacji Matthewsa w R

Poniższy kod pokazuje jak zdefiniować wektor przewidywanych klas i wektor rzeczywistych klas, a następnie obliczyć współczynnik korelacji Matthewsa za pomocą funkcji mcc() z pakietu mltools :

 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

Współczynnik korelacji Matthewsa wynosi 0,7368 .

Odpowiada to wartości, którą obliczyliśmy wcześniej ręcznie.

Jeśli chcesz obliczyć współczynnik korelacji Matthewsa dla macierzy zamieszania, możesz użyć argumentu zamieszanieM w następujący sposób:

 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

Ponownie współczynnik korelacji Matthewsa wynosi 0,7368.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak przeprowadzić regresję logistyczną w R
Jak wykreślić krzywą ROC za pomocą ggplot2
Jak obliczyć wynik F1 w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *