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?