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?