Jak obliczyć wynik f1 w pythonie (w tym przykład)
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 Pythonie.
Przykład: Obliczanie wyniku F1 w Pythonie
Poniższy kod pokazuje, jak użyć funkcji f1_score() pakietu sklearn w Pythonie do obliczenia wyniku F1 dla danej tablicy wartości przewidywanych i wartości rzeczywistych.
import numpy as np from sklearn. metrics import f1_score #define array of actual classes actual = np. repeat ([1, 0], repeats=[160, 240]) #define array of predicted classes pred = np. repeat ([1, 0, 1, 0], repeats=[120, 40, 70, 170]) #calculate F1 score f1_score(actual, pred) 0.6857142857142857
Widzimy, że wynik F1 wynosi 0,6857 . Odpowiada to wartości, którą obliczyliśmy wcześniej ręcznie.
Uwaga : pełną dokumentację funkcji f1_score() można znaleźć tutaj .
Uwagi dotyczące korzystania z wyników F1
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,75, zostanie on uznany za lepszy, ponieważ ma wyższy wynik F1.
Dodatkowe zasoby
Jak przeprowadzić regresję logistyczną w Pythonie
Jak utworzyć macierz zamieszania w Pythonie
Jak obliczyć zrównoważoną precyzję w Pythonie
Wynik F1 a dokładność: którego powinieneś użyć?