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