Come calcolare il coefficiente di correlazione di matthews in python


Il coefficiente di correlazione di Matthews (MCC) è una metrica che possiamo utilizzare per valutare le prestazioni di unmodello di classificazione .

Viene calcolato come segue:

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

Oro:

  • TP : Numero di veri positivi
  • TN : numero di veri negativi
  • FP : Numero di falsi positivi
  • FN : Numero di falsi negativi

Questa metrica è particolarmente utile quando le due classi sono sbilanciate, ovvero una classe appare molto più dell’altra.

Il valore di MCC è compreso tra -1 e 1 dove:

  • -1 indica un disaccordo totale tra le classi previste e le classi effettive
  • 0 significa ipotesi completamente casuali
  • 1 indica un completo accordo tra le classi previste e le classi effettive

Supponiamo, ad esempio, che un analista sportivo utilizzi un modello di regressione logistica per prevedere se 400 diversi giocatori di basket universitari verranno arruolati o meno nella NBA.

La seguente matrice di confusione riassume le previsioni fatte dal modello:

Per calcolare l’MCC del modello, possiamo utilizzare la seguente formula:

  • Centro clienti = (TP*TN – FP*FN) / √ (TP+FP)(TP+FN)(TN+FP)(TN+FN)
  • Centro clienti = (15*375-5*5) / √ (15+5)(15+5)(375+5)(375+5)
  • Centro clienti = 0,7368

Il coefficiente di correlazione di Matthews risulta essere 0,7368 . Questo valore è piuttosto vicino a uno, indicando che il modello sta facendo un buon lavoro nel prevedere se i giocatori verranno scelti o meno.

L’esempio seguente mostra come calcolare il MCC per questo scenario specifico utilizzando la funzione matthews_corrcoef() della libreria sklearn in Python.

Esempio: calcolo del coefficiente di correlazione di Matthews in Python

Il codice seguente mostra come definire un array di classi previste e un array di classi effettive, quindi calcolare il coefficiente di correlazione Matthews di un modello in 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

Il MCC è 0,7368 . Questo corrisponde al valore che abbiamo calcolato manualmente in precedenza.

Nota : puoi trovare la documentazione completa per la funzione matthews_corrcoef() qui .

Risorse addizionali

I seguenti tutorial spiegano come calcolare altre metriche comuni per i modelli di classificazione in Python:

Un’introduzione alla regressione logistica in Python
Come calcolare il punteggio F1 in Python
Come calcolare la precisione bilanciata in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *