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

Dodaj komentarz

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