Como calcular a pontuação f1 em r (com 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 R.
Exemplo: Calculando a pontuação F1 em R
O código a seguir mostra como usar a função confusãoMatrix() do pacote circunflexo em R para calcular a pontuação F1 (e outras métricas) para um determinado modelo de regressão logística:
library (caret) #define vectors of actual values and predicted values actual <- factor(rep(c(1, 0), times=c(160, 240))) pred <- factor(rep(c(1, 0, 1, 0), times=c(120, 40, 70, 170))) #create confusion matrix and calculate metrics related to confusion matrix confusionMatrix(pred, actual, mode = " everything ", positive=" 1 ") Reference Prediction 0 1 0 170 40 1 70 120 Accuracy: 0.725 95% CI: (0.6784, 0.7682) No Information Rate: 0.6 P-Value [Acc > NIR]: 1.176e-07 Kappa: 0.4444 Mcnemar's Test P-Value: 0.005692 Sensitivity: 0.7500 Specificity: 0.7083 Pos Pred Value: 0.6316 Neg Pred Value: 0.8095 Accuracy: 0.6316 Recall: 0.7500 F1: 0.6857 Prevalence: 0.4000 Detection Rate: 0.3000 Detection Prevalence: 0.4750 Balanced Accuracy: 0.7292 'Positive' Class: 1
Vemos que a pontuação da F1 é 0,6857 . Isso corresponde ao valor que calculamos manualmente anteriormente.
Nota : Precisamos especificar mode=”everything” para que a pontuação F1 seja exibida na saída.
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,85, esse modelo será considerado melhor porque tem uma pontuação F1 mais alta.
Recursos adicionais
Como realizar regressão logística em R
Pontuação F1 vs precisão: qual você deve usar?