Як розрахувати коефіцієнт кореляції метьюза в 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *