Como calcular a pontuação f1 em python (incluindo exemplo)


Ao usar modelos de classificação em aprendizado de máquina, uma métrica comum que usamos para avaliar a qualidade do modelo é a pontuação F1 .

Esta métrica é calculada da seguinte forma:

Pontuação F1 = 2 * (Precisão * Recuperação) / (Precisão + Recuperação)

Ouro:

  • Precisão : Previsões positivas corretas em relação ao total de previsões positivas
  • Lembrete : corrigindo previsões positivas em relação ao total de positivos reais

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

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

Veja como calcular a pontuação F1 do modelo:

Precisão = Verdadeiro Positivo / (Verdadeiro Positivo + Falso Positivo) = 120/ (120+70) = 0,63157

Rechamada = Verdadeiro Positivo / (Verdadeiro Positivo + Falso Negativo) = 120 / (120+40) = 0,75

Pontuação F1 = 2 * (0,63157 * 0,75) / (0,63157 + 0,75) = . 6857

O exemplo a seguir mostra como calcular a pontuação F1 para este modelo exato em Python.

Exemplo: Calculando a pontuação F1 em Python

O código a seguir mostra como usar a função f1_score() do pacote sklearn em Python para calcular a pontuação F1 para uma determinada matriz de valores previstos e valores reais.

 import numpy as np
from sklearn. metrics import f1_score

#define array of actual classes
actual = np. repeat ([1, 0], repeats=[160, 240])

#define array of predicted classes
pred = np. repeat ([1, 0, 1, 0], repeats=[120, 40, 70, 170])

#calculate F1 score
f1_score(actual, pred)

0.6857142857142857

Vemos que a pontuação da F1 é 0,6857 . Isso corresponde ao valor que calculamos manualmente anteriormente.

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

Notas sobre o uso de pontuações F1

Se você usar a pontuação F1 para comparar vários modelos, o modelo com a pontuação F1 mais alta representará o modelo mais capaz de classificar as observações em classes.

Por exemplo, se você ajustar outro modelo de regressão logística aos dados e esse modelo tiver uma pontuação F1 de 0,75, esse modelo será considerado melhor porque tem uma pontuação F1 mais alta.

Recursos adicionais

Como realizar regressão logística em Python
Como criar uma matriz de confusão em Python
Como calcular a precisão balanceada em Python
Pontuação F1 vs precisão: qual você deve usar?

Add a Comment

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