Como calcular a precisão balanceada em python usando sklearn


A precisão equilibrada é uma métrica que podemos usar para avaliar o desempenho de um modelo de classificação .

É calculado da seguinte forma:

Precisão Balanceada = (Sensibilidade + Especificidade) / 2

Ouro:

  • Sensibilidade : A “taxa de verdadeiros positivos” – a porcentagem de casos positivos que o modelo é capaz de detectar.
  • Especificidade : A “taxa de verdadeiros negativos” – a porcentagem de casos negativos que o modelo é capaz de detectar.

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

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 a precisão balanceada do modelo, primeiro calcularemos a sensibilidade e a especificidade:

  • Sensibilidade : A “taxa de verdadeiro positivo” = 15 / (15 + 5) = 0,75
  • Especificidade : A “taxa verdadeiramente negativa” = 375 / (375 + 5) = 0,9868

Podemos então calcular a precisão balanceada da seguinte forma:

  • Precisão Balanceada = (Sensibilidade + Especificidade) / 2
  • Precisão balanceada = (0,75 + 9868) / 2
  • Precisão balanceada = 0,8684

A precisão balanceada do modelo é 0,8684 .

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

Exemplo: calculando a precisão balanceada 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 a precisão balanceada de um modelo em Python:

 import numpy as np
from sklearn. metrics import balanced_accuracy_score

#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 balanced accuracy score
balanced_accuracy_score(actual, pred)

0.868421052631579

A precisão balanceada é 0,8684 . Isso corresponde ao valor que calculamos manualmente anteriormente.

Observação : você pode encontrar a documentação completa da função Balanced_accuracy_score() aqui .

Recursos adicionais

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

Add a Comment

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