Jak obliczyć dokładność modelu AI – precyzja recall i F1 score

Jak obliczyć dokładność modelu AI – precyzja recall i F1 score

Aby sprawdzić, jak dobrze działa model AI, nie wystarczy znać tylko ogólną dokładność. Trzeba przyjrzeć się takim miarom jak precyzja, recall i F1 score, które pokazują, jak model radzi sobie z rozróżnianiem prawdziwych i fałszywych wyników. Obliczając te wskaźniki, dowiesz się, czy Twój model rzeczywiście podejmuje właściwe decyzje w konkretnych przypadkach.

Co oznacza dokładność modelu AI i dlaczego jest ważna?

Dokładność (accuracy) modelu AI określa procent wszystkich przewidywań, które są poprawne. To podstawowy sposób mierzenia skuteczności modeli klasyfikacyjnych, zwłaszcza gdy liczba przypadków pozytywnych i negatywnych jest zbliżona w analizowanym zbiorze. Wskaźnik ten wylicza się jako stosunek przypadków przewidzianych prawidłowo (prawdziwie pozytywnych i prawdziwie negatywnych) do ogólnej liczby przykładów.

Wysoka dokładność staje się istotna, gdy konsekwencje błędnych decyzji – zarówno fałszywie pozytywnych, jak i fałszywie negatywnych – są porównywalne. Przykładem są klasyczne zadania rozpoznawania cyfr pisanych ręcznie, gdzie każdy błąd ma podobne znaczenie. Z drugiej strony, dokładność jest mniej przydatna przy niezbalansowanych zbiorach, gdy jedna z klas dominuje. W takich przypadkach model może osiągnąć wysoki wynik, jednocześnie pomijając rzadkie, lecz istotne przypadki.

Poznanie dokładności pozwala szybko uzyskać obraz działania modelu, jednak niepełne jej wykorzystanie niesie ryzyko pominięcia innych aspektów efektywności algorytmu. Interpretując ten wskaźnik, należy zwrócić uwagę na proporcje klas oraz kontekst konkretnego zadania. Badania naukowe (np. „On the Proper Use of Accuracy in Imbalanced Classification,” G. He i J. Garcia, 2009) pokazują, że opieranie wyboru wyłącznie na accuracy może prowadzić do zawyżonej oceny jakości modelu.

Jak działa precyzja (precision) w ocenie modeli AI?

Precyzja, określana w języku angielskim jako precision, wyraża, jaki odsetek pozytywnych wskazań modelu rzeczywiście jest trafny. W praktyce jest to stosunek liczby prawdziwych trafień pozytywnych (true positives) do wszystkich przypadków, w których model uznał wynik za pozytywny (suma true positives i false positives), czyli: precision = TP / (TP + FP). Im wyższa precyzja, tym mniej błędów polegających na błędnym przypisaniu obiektu do klasy pozytywnej.

Precyzja odgrywa kluczową rolę w zastosowaniach, w których fałszywe alarmy są kosztowne lub niepożądane. Przykładem mogą być systemy detekcji chorób, gdzie niepotrzebne skierowanie pacjenta na drogie badania lub leczenie należy ograniczyć do minimum. W przeciwieństwie do recall, który skupia się na wykrywaniu wszystkich rzeczywistych przypadków pozytywnych, precyzja koncentruje się na jakości identyfikowanych przez model zgłoszeń pozytywnych – minimalizując liczbę błędnie przypisanych pozytywów.

Dla rzetelnej oceny skuteczności modelu warto brać pod uwagę interakcję pomiędzy precyzją a innymi metrykami. Możliwe są bowiem sytuacje, gdy model uzyskuje wysoką precyzję przy jednocześnie bardzo niskiej czułości (recall), np. wtedy, gdy przewiduje bardzo mało przypadków pozytywnych, lecz niemal bezbłędnie. Takie działanie jest typowe przy silnym zbalansowaniu modelu w stronę wykluczania wyników niepewnych, nawet kosztem pominięcia części rzeczywistych pozytywów.

W codziennej ocenie efektywności modeli AI, wartości precyzji oraz liczby powiązanych predykcji można zestawić w poniższej tabeli wraz z recall – by zobaczyć ich wpływ na rzeczywiste wyniki klasyfikacji:

PredykcjaLiczba przypadkówZnaczenie dla precision
True Positive (TP)45Zwiększa precision – poprawne wykrycie pozytywu
False Positive (FP)5Obniża precision – błędne wykrycie pozytywu
False Negative (FN)20Nie wpływa bezpośrednio na precision, ale na recall
True Negative (TN)80Nie wpływa na precision

Tabela pokazuje, że precyzja zależy wyłącznie od liczby pozytywnych predykcji i ich trafności. Wzrost liczby fałszywie pozytywnych klasyfikacji znacząco obniża precyzję, niezależnie od sumy przypadków negatywnych lub nieodkrytych pozytywów. To odróżnia precision od innych miar skuteczności modeli AI, takich jak recall czy accuracy.

Czym jest recall i kiedy należy go stosować podczas analizy modelu?

Recall, znany także jako czułość (sensitivity) lub True Positive Rate, to miara skuteczności modelu AI, która pokazuje, jaki odsetek wszystkich rzeczywistych przypadków pozytywnych został prawidłowo wykryty przez model. Wzór na recall to: liczba prawidłowo wykrytych pozytywnych przypadków (True Positives) podzielona przez sumę wszystkich rzeczywistych pozytywnych przypadków, czyli True Positives + False Negatives (TP / [TP + FN]).

Wybór recall jako głównej metryki jest szczególnie ważny w sytuacjach, gdzie liczy się ograniczenie liczby pominiętych przypadków pozytywnych (False Negatives). Ta miara jest istotna na przykład w diagnostyce medycznej, detekcji zagrożeń, systemach bezpieczeństwa czy wyszukiwaniu informacji — tam, gdzie przeoczenie istotnych sygnałów może mieć poważne skutki. Wysoki recall oznacza mniejszą liczbę przeoczonych przypadków pozytywnych, jednak często dzieje się to kosztem precyzji.

Poniżej przedstawiono najważniejsze cechy recall oraz porównanie z innymi kluczowymi miarami oceny skuteczności modeli klasyfikacyjnych, co pozwoli lepiej zrozumieć różnice w ich zastosowaniach:

MiaraDefinicjaWzórGłówne zastosowanie
RecallWykrywanie wszystkich rzeczywistych przypadków pozytywnychTP / (TP + FN)Minimalizacja przeoczeń (np. diagnostyka chorób, detekcja anomalii)
PrecyzjaOdsetek poprawnie wykrytych pozytywnych wśród wszystkich wskazanych jako pozytywneTP / (TP + FP)Minimalizacja fałszywych alarmów (np. filtry spamu, systemy wykrywania oszustw)
F1 ScoreHarmoniczna średnia precyzji i recall2 (Precision Recall) / (Precision + Recall)Równoważenie precyzji i recall w sytuacjach wymagających kompromisu

Jak wynika z zestawienia, recall sprawdza się najlepiej w sytuacjach, w których koszt przeoczenia pozytywnej klasy przeważa nad ryzykiem fałszywego alarmu. Najczęściej oblicza się go na podstawie macierzy pomyłek (confusion matrix), bazując na wynikach uzyskanych na zbiorze walidacyjnym lub produkcyjnym.

Jak obliczyć F1 score i jak interpretuje się ten wskaźnik?

F1 score oblicza się jako średnią harmoniczną precyzji (precision) i czułości (recall) według wzoru: F1 = 2 (precyzja recall) / (precyzja + recall). W praktyce, aby policzyć F1 score, należy najpierw wyznaczyć precyzję i recall na podstawie macierzy pomyłek (confusion matrix), z której uzyskujemy wartości: True Positives (TP), False Positives (FP) oraz False Negatives (FN). Precyzję uzyskujemy ze wzoru TP/(TP+FP), a recall to TP/(TP+FN). Następnie podstawiamy wyliczone wartości do wzoru na F1 score.

Wskaźnik F1 jest szczególnie istotny w klasyfikacjach z nieproporcjonalnym rozkładem klas, gdzie klasy większościowe mogą zawyżać klasyczną miarę dokładności (accuracy). F1 score balansuje pomiędzy precyzją i recall, przez co jest wiarygodnym narzędziem oceny modeli tam, gdzie koszt fałszywie pozytywnych i fałszywie negatywnych wyników jest wysoki i porównywalny. Wartość F1 score wynosi od 0 do 1, gdzie 1 reprezentuje idealny model, a 0 – model najgorszy z możliwych pod względem zarówno precyzji, jak i recall.

Aby zobrazować relację F1 score wobec precyzji i recall, poniżej zamieszczono zestawienie przykładowych wartości:

PrecyzjaRecallF1 score
0,900,900,90
0,950,500,65
0,600,800,69
0,500,500,50
0,700,400,51

Tabela pokazuje, że F1 score jest zawsze bliższe niższej z wartości precision lub recall, nigdy nie przewyższa żadnej z nich i wyraźnie karze sytuacje, gdy jedna z miar jest znacząco niższa. Przy interpretacji F1 score należy pamiętać, że model osiągnie wysoki wynik tylko wtedy, gdy utrzyma zarówno wysoką precyzję, jak i recall, a równowaga między nimi ma duże znaczenie przy ocenie skuteczności modelu AI.

Kiedy wybrać precyzję, recall, a kiedy F1 score w ocenie modelu AI?

Wybór pomiędzy precyzją (precision), recall a F1 score zależy bezpośrednio od tego, jaki typ błędów jest najbardziej istotny w analizowanym problemie i jakie skutki mają poszczególne pomyłki modelu. Gdy najważniejsze jest minimalizowanie liczby fałszywie pozytywnych (na przykład w diagnozowaniu choroby, gdzie fałszywy alarm wiąże się z istotnymi kosztami psychologicznymi lub finansowymi), precyzja będzie priorytetowa. Z kolei recall powinien być na pierwszym miejscu, gdy kluczowe jest wykrycie wszystkich przypadków pozytywnych (np. w sytuacji wykrywania oszustw, gdzie przeoczenie choćby jednego przypadku jest szczególnie niebezpieczne).

W praktycznych zastosowaniach często istotne jest zbalansowanie obu tych wskaźników – tutaj najlepiej sprawdza się F1 score. Jest to miara harmoniczna, która równoważy precyzję i recall. Sprawdza się szczególnie wtedy, gdy zarówno fałszywie pozytywne, jak i fałszywie negatywne wyniki są równie niechciane lub w sytuacjach z niezbalansowanymi danymi, gdzie pozytywne klasy są dużo rzadsze niż negatywne. Przykładem może być klasyfikacja tekstu, detekcja spamu czy zadania wymagające wysokiej skuteczności dla obu typów klas – w takich przypadkach F1 score dostarcza najbardziej miarodajnej oceny działania modelu.

Czytelne porównanie, w jakich sytuacjach stosować wybrany wskaźnik, przedstawia poniższa tabela:

Kiedy stosowaćPrecision (Precyzja)RecallF1 score
Koszt fałszywych pozytywów wysokiTakNieTak, jeśli ważny kompromis
Koszt fałszywych negatywów wysokiNieTakTak, jeśli ważny kompromis
Silna nierównowaga klasNieNieTak
Chcesz ocenić ogólną skutecznośćNieNieTak
Model wykorzystywany do wstępnej selekcjiNieTakTak, jeśli występuje kompromis

Tabela jasno pokazuje, że precyzję wybieramy, gdy szczególnie istotny jest koszt fałszywych alarmów, recall – w przypadku, gdy najważniejsze jest wychwycenie wszystkich pozytywnych przypadków, natomiast F1 score dominuje tam, gdzie liczy się kompromis i równowaga w środowiskach o nierównomiernym rozkładzie klas. Decyzję o wyborze metryki należy zawsze podejmować w odniesieniu do specyfiki problemu oraz celów biznesowych lub badawczych konkretnego przedsięwzięcia.

Jak samodzielnie obliczyć dokładność, precyzję, recall i F1 score na przykładzie?

Aby samodzielnie obliczyć dokładność, precyzję, recall oraz F1 score, należy rozpocząć od utworzenia macierzy pomyłek (confusion matrix) dla konkretnego zbioru danych testowych. Macierz ta podaje liczbę przypadków prawdziwie pozytywnych (TP), fałszywie pozytywnych (FP), prawdziwie negatywnych (TN) oraz fałszywie negatywnych (FN). Te cztery wartości są podstawą dalszych obliczeń i należy je wyodrębnić bezpośrednio z wyników predykcji modelu oraz rzeczywistych etykiet.

W kolejnym kroku, wykorzystując liczby TP, FP, TN i FN, obliczamy wskaźniki zgodnie z ich formalnymi wzorami:

MiaraWzór
Dokładność (accuracy)(TP + TN) / (TP + FP + TN + FN)
Precyzja (precision)TP / (TP + FP)
Recall (czułość)TP / (TP + FN)
F1 score2 (precyzja recall) / (precyzja + recall)

Wszystkie powyższe miary można wyliczyć zarówno w arkuszu kalkulacyjnym, jak i za pomocą prostego kodu w Pythonie, wykorzystując biblioteki takie jak numpy czy pandas. Podane wzory pozwalają szybko wyznaczyć metryki klasyfikacji binarnej na podstawie macierzy pomyłek.

Przykład praktyczny: jeśli model sklasyfikował 40 przypadków jako prawdziwie pozytywne, 10 jako fałszywie pozytywne, 30 jako prawdziwie negatywne i 20 jako fałszywie negatywne, należy podstawić te wartości do wzorów. Przykładowo, precyzja wynosi 40 / (40 + 10) = 0.8, recall to 40 / (40 + 20) = 0.6667, a dokładność: (40 + 30) / (40 + 10 + 30 + 20) = 0.7. F1 score wylicza się na podstawie uzyskanych wartości precyzji i recall.

Wyliczając wskaźniki ręcznie, dobrze jest zadbać o poprawne przypisanie każdego przypadku, szczególnie w przypadku klasyfikacji wieloklasowej, gdzie każdy wynik należy analizować w odniesieniu do poszczególnych klas. Poniżej znajduje się lista kroków ułatwiających prawidłowe przeprowadzenie obliczeń:

  • Uzyskaj rzeczywiste i przewidywane etykiety dla prób testowych.
  • Oblicz cztery podstawowe kategorie: TP, FP, TN, FN.
  • Stwórz macierz pomyłek na tej podstawie.
  • Podstaw liczby do wzorów i wyznacz accuracy, precision, recall i F1 score.

Przestrzeganie tej procedury ułatwia spójne wyliczanie metryk i pozwala uzyskać rezultaty porównywalne z wynikami generowanymi przez popularne narzędzia do analizy modeli. Nawet w dużych zbiorach danych samodzielne wyliczenia można zautomatyzować w arkuszu kalkulacyjnym lub prostym skrypcie.