Как подсчитать балл 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 против точности: что использовать?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *