Як розрахувати коефіцієнт кореляції метьюза в python
Коефіцієнт кореляції Метьюза (MCC) — це показник, який ми можемо використовувати для оцінки продуктивності моделі класифікації .
Він розраховується таким чином:
MCC = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
золото:
- TP : кількість справжніх позитивних результатів
- TN : Кількість справжніх негативів
- FP : кількість помилкових спрацьовувань
- FN : кількість помилкових негативів
Ця метрика особливо корисна, коли два класи незбалансовані, тобто один клас виглядає набагато більше, ніж інший.
Значення MCC становить від -1 до 1, де:
- -1 вказує на повну розбіжність між прогнозованими та фактичними класами
- 0 означає абсолютно випадкові припущення
- 1 вказує на повну відповідність між прогнозованими класами та фактичними класами
Наприклад, припустімо, що спортивний аналітик використовує модель логістичної регресії , щоб передбачити, чи будуть 400 різних студентських баскетболістів задрафтовані в НБА.
Наступна матриця плутанини узагальнює прогнози, зроблені моделлю:
Для розрахунку MCC моделі можна використати таку формулу:
- 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
Коефіцієнт кореляції Метьюза виявляється рівним 0,7368 . Це значення є дещо близьким до одиниці, що вказує на те, що модель добре справляється з прогнозуванням того, будуть гравці призвані чи ні.
У наступному прикладі показано, як обчислити MCC для цього конкретного сценарію за допомогою функції matthews_corrcoef() із бібліотеки sklearn у Python.
Приклад: обчислення коефіцієнта кореляції Метьюза в Python
Наступний код показує, як визначити масив прогнозованих класів і масив фактичних класів, а потім обчислити коефіцієнт кореляції Метьюза моделі в Python:
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 дорівнює 0,7368 . Це відповідає значенню, яке ми обчислили раніше вручну.
Примітка . Ви можете знайти повну документацію для функції matthews_corrcoef() тут .
Додаткові ресурси
У наступних посібниках пояснюється, як обчислити інші загальні показники для моделей класифікації в Python:
Вступ до логістичної регресії в Python
Як обчислити бал F1 у Python
Як розрахувати збалансовану точність у Python