So berechnen sie den f1-score in r (mit beispiel)


Bei der Verwendung von Klassifizierungsmodellen beim maschinellen Lernen ist der F1-Score eine gängige Metrik, die wir zur Bewertung der Modellqualität verwenden.

Diese Metrik wird wie folgt berechnet:

F1-Score = 2 * (Präzision * Rückruf) / (Präzision + Rückruf)

Gold:

  • Genauigkeit : Korrigieren Sie positive Vorhersagen im Verhältnis zur Gesamtzahl der positiven Vorhersagen
  • Erinnerung : Korrigieren Sie positive Vorhersagen anhand der gesamten tatsächlichen positiven Ergebnisse

Angenommen, wir verwenden ein logistisches Regressionsmodell, um vorherzusagen, ob 400 verschiedene College-Basketballspieler in die NBA eingezogen werden oder nicht.

Die folgende Verwirrungsmatrix fasst die vom Modell getroffenen Vorhersagen zusammen:

So berechnen Sie den F1-Score des Modells:

Genauigkeit = Richtig positiv / (Richtig positiv + Falsch positiv) = 120/ (120+70) = 0,63157

Rückruf = Richtig positiv / (Richtig positiv + Falsch negativ) = 120 / (120+40) = 0,75

F1-Score = 2 * (.63157 * .75) / (.63157 + .75) = . 6857

Das folgende Beispiel zeigt, wie der F1-Score für genau dieses Modell in R berechnet wird.

Beispiel: Berechnung des F1-Scores in R

Der folgende Code zeigt, wie die Funktion „confusionMatrix()“ aus dem Paket „caret “ in R verwendet wird, um den F1-Score (und andere Metriken) für ein bestimmtes logistisches Regressionsmodell zu berechnen:

 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

Wir sehen, dass der F1-Score 0,6857 beträgt. Dies entspricht dem Wert, den wir zuvor manuell berechnet haben.

Hinweis : Wir müssen mode=“everything“ angeben, damit der F1-Score in der Ausgabe angezeigt wird.

Wenn Sie den F1-Score verwenden, um mehrere Modelle zu vergleichen, stellt das Modell mit dem höchsten F1-Score das Modell dar, das Beobachtungen am besten in Klassen klassifizieren kann.

Wenn Sie beispielsweise ein anderes logistisches Regressionsmodell an die Daten anpassen und dieses Modell einen F1-Score von 0,85 hat, wird dieses Modell als besser angesehen, da es einen höheren F1-Score hat.

Zusätzliche Ressourcen

So führen Sie eine logistische Regression in R durch
F1-Score vs. Genauigkeit: Was sollten Sie verwenden?

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert