Jak obliczyć współczynnik korelacji matthewsa w pythonie


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 matthews_corrcoef() z biblioteki sklearn w Pythonie.

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

Poniższy kod pokazuje, jak zdefiniować tablicę przewidywanych klas i tablicę rzeczywistych klas, a następnie obliczyć współczynnik korelacji Matthewsa modelu w Pythonie:

 import numpy as np
from sklearn. metrics import matthews_corrcoef

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[20, 380])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[15, 5, 5, 375])

#calculate Matthews correlation coefficient
matthews_corrcoef(actual, pred)

0.7368421052631579

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

Uwaga : pełną dokumentację funkcji matthews_corrcoef() można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak obliczać inne popularne metryki modeli klasyfikacji w Pythonie:

Wprowadzenie do regresji logistycznej w Pythonie
Jak obliczyć wynik F1 w Pythonie
Jak obliczyć zrównoważoną precyzję w Pythonie

Dodaj komentarz

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