Как подсчитать балл f1 в r (с примером)
При использовании моделей классификации в машинном обучении общей метрикой, которую мы используем для оценки качества модели, является показатель F1 .
Этот показатель рассчитывается следующим образом:
Оценка F1 = 2 * (Точность * Отзыв) / (Точность + Отзыв)
Золото:
- Точность : правильные положительные прогнозы относительно общего числа положительных прогнозов.
- Напоминание : корректировка положительных прогнозов по сравнению с общим фактическим положительным результатом.
Например, предположим, что мы используем модель логистической регрессии, чтобы предсказать, будут ли 400 баскетболистов из разных колледжей выбраны в НБА.
Следующая матрица путаницы суммирует прогнозы, сделанные моделью:
Вот как можно рассчитать оценку модели в Формуле-1:
Точность = истинно положительный результат / (истинный положительный результат + ложный положительный результат) = 120/ (120+70) = 0,63157
Напомним = истинно положительный результат / (истинный положительный результат + ложный отрицательный результат) = 120 / (120 + 40) = 0,75.
Оценка F1 = 2 * (0,63157 * 0,75) / (0,63157 + 0,75) = . 6857
В следующем примере показано, как вычислить оценку F1 для этой конкретной модели в R.
Пример: подсчет очков F1 в R
В следующем коде показано, как использовать функцию смущенияMatrix() из пакета Caret в R для расчета оценки F1 (и других показателей) для заданной модели логистической регрессии:
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
Мы видим, что показатель F1 равен 0,6857 . Это соответствует значению, которое мы рассчитали вручную ранее.
Примечание . Нам нужно указать mode=»everything» , чтобы в выходных данных отображалась оценка F1.
Если вы используете оценку F1 для сравнения нескольких моделей, модель с наивысшим показателем F1 представляет собой модель, которая лучше всего способна классифицировать наблюдения по классам.
Например, если вы подгоняете к данным другую модель логистической регрессии и эта модель имеет показатель F1, равный 0,85, эта модель будет считаться лучшей, поскольку она имеет более высокий показатель F1.
Дополнительные ресурсы
Как выполнить логистическую регрессию в R
Оценка F1 против точности: что использовать?