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ć?