Jak obliczyć wynik f1 w r (z przykładem)


Podczas korzystania z modeli klasyfikacyjnych w uczeniu maszynowym powszechnym miernikiem, którego używamy do oceny jakości modelu, jest wynik F1 .

Wskaźnik ten jest obliczany w następujący sposób:

Wynik F1 = 2 * (Precyzja * Przywołanie) / (Precyzja + Przypomnienie)

Złoto:

  • Dokładność : Popraw pozytywne przewidywania w stosunku do wszystkich pozytywnych przewidywań
  • Przypomnienie : Korygowanie pozytywnych przewidywań w stosunku do łącznej liczby rzeczywistych pozytywnych wyników

Załóżmy na przykład, że używamy modelu regresji logistycznej do przewidzenia, czy 400 różnych koszykarzy z college’u zostanie powołanych do NBA.

Poniższa macierz zamieszania podsumowuje przewidywania dokonane przez model:

Oto jak obliczyć wynik modelu w F1:

Dokładność = prawdziwie dodatnia / (prawdziwie dodatnia + fałszywie dodatnia) = 120/ (120+70) = 0,63157

Przywołanie = prawdziwie dodatnie / (prawdziwie dodatnie + fałszywie ujemne) = 120 / (120+40) = 0,75

Wynik F1 = 2 * (0,63157 * 0,75) / (0,63157 + 0,75) = . 6857

Poniższy przykład pokazuje, jak obliczyć wynik F1 dla tego dokładnego modelu w R.

Przykład: Obliczanie wyniku F1 w R

Poniższy kod pokazuje, jak użyć funkcji ConfusedMatrix() z pakietu caret w R do obliczenia wyniku F1 (i innych metryk) dla danego modelu regresji logistycznej:

 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

Widzimy, że wynik F1 wynosi 0,6857 . Odpowiada to wartości, którą obliczyliśmy wcześniej ręcznie.

Uwaga : Musimy określić mode=”wszystko”, aby wynik F1 był wyświetlany na wyjściu.

Jeśli użyjesz wyniku F1 do porównania wielu modeli, model z najwyższym wynikiem F1 reprezentuje model, który najlepiej potrafi sklasyfikować obserwacje w klasy.

Na przykład, jeśli do danych dopasujesz inny model regresji logistycznej i model ten będzie miał wynik F1 wynoszący 0,85, zostanie on uznany za lepszy, ponieważ ma wyższy wynik F1.

Dodatkowe zasoby

Jak przeprowadzić regresję logistyczną w R
Wynik F1 a dokładność: którego powinieneś użyć?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *