Как рассчитать балл F1 в R (включая пример)

Как рассчитать балл F1 в R (включая пример)

При использовании моделей классификации в машинном обучении общей метрикой, которую мы используем для оценки качества модели, является F1 Score .

Этот показатель рассчитывается как:

Оценка F1 = 2 * (Точность * Отзыв) / (Точность + Отзыв)

куда:

  • Точность : правильные положительные прогнозы по отношению к общему количеству положительных прогнозов.
  • Вспомнить : исправить положительные прогнозы по отношению к общему количеству фактических положительных результатов.

Например, предположим, что мы используем модель логистической регрессии, чтобы предсказать, попадут ли 400 разных баскетболистов из колледжа в НБА.

Следующая матрица путаницы суммирует прогнозы, сделанные моделью:

Вот как рассчитать оценку F1 модели:

Точность = истинный положительный результат / (истинный положительный результат + ложный положительный результат) = 120/(120+70) = 0,63157

Отзыв = истинно положительный / (истинно положительный + ложноотрицательный) = 120 / (120 + 40) = 0,75

Оценка F1 = 2 * (0,63157 * 0,75) / (0,63157 + 0,75) =.6857

В следующем примере показано, как рассчитать оценку F1 для этой точной модели в R.

Пример: расчет F1 Score в R

В следующем коде показано, как использовать функцию путаницыMatrix() из пакета вставки в 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 
 Precision : 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.Это соответствует значению, которое мы рассчитали ранее вручную.

Примечание.Мы должны указать режим = «все» , чтобы результат F1 отображался на выходе.

Если вы используете оценку F1 для сравнения нескольких моделей, модель с наивысшей оценкой F1 представляет собой модель, которая лучше всего способна классифицировать наблюдения по классам.

Например, если вы подгоняете другую модель логистической регрессии к данным, и эта модель имеет показатель F1 0,85, эта модель будет считаться лучшей, поскольку она имеет более высокий показатель F1.

Дополнительные ресурсы

Как выполнить логистическую регрессию в R
Оценка F1 против точности: что использовать?

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.