Como calcular o coeficiente de correlação de matthews em python


O Coeficiente de Correlação de Matthews (MCC) é uma métrica que podemos usar para avaliar o desempenho de um modelo de classificação .

É calculado da seguinte forma:

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

Ouro:

  • TP : Número de verdadeiros positivos
  • TN : Número de verdadeiros negativos
  • FP : Número de falsos positivos
  • FN : Número de falsos negativos

Esta métrica é particularmente útil quando as duas classes estão desequilibradas, ou seja, uma classe aparece muito mais que a outra.

O valor de MCC está entre -1 e 1 onde:

  • -1 indica discordância total entre as aulas previstas e as aulas reais
  • 0 significa suposições completamente aleatórias
  • 1 indica concordância completa entre as aulas previstas e as aulas reais

Por exemplo, suponha que um analista esportivo use um modelo de regressão logística para prever se 400 jogadores diferentes de basquete universitário serão ou não convocados para a NBA.

A seguinte matriz de confusão resume as previsões feitas pelo modelo:

Para calcular o MCC do modelo, podemos utilizar a seguinte fórmula:

  • 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

O coeficiente de correlação de Matthews é 0,7368 . Este valor é um pouco próximo de um, indicando que o modelo está fazendo um trabalho decente ao prever se os jogadores serão convocados ou não.

O exemplo a seguir mostra como calcular o MCC para este cenário específico usando a função matthews_corrcoef() da biblioteca sklearn em Python.

Exemplo: Calculando o Coeficiente de Correlação de Matthews em Python

O código a seguir mostra como definir uma matriz de classes previstas e uma matriz de classes reais e, em seguida, calcular o coeficiente de correlação de Matthews de um modelo em 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

O MCC é 0,7368 . Isso corresponde ao valor que calculamos manualmente anteriormente.

Nota : Você pode encontrar a documentação completa da função matthews_corrcoef() aqui .

Recursos adicionais

Os tutoriais a seguir explicam como calcular outras métricas comuns para modelos de classificação em Python:

Uma introdução à regressão logística em Python
Como calcular a pontuação F1 em Python
Como calcular a precisão balanceada em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *