2 ważne metryki w uczeniu maszynowym to odwołanie (recall) i precyzja (precision).
Najpierw narysujmy sobie macierz pomyłek (Confusion Matrix).
Nano Banana wygenerowało taki obrazek :)
Recall odpowiada na pytanie, ile pozytywnych przypadków udało nam się prawidłowo wykryć.
Przykładowo, jeśli mamy 100 osób chorych, a model umie rozpoznać chorobę u 80 z nich, to recall wynosi 80%. Pozostałe 20% to wyniki False negatives, bo model niepoprawnie uznał je za zdrowe.
Recall ma ważne znaczenie w systemach, w których koszt pominięcia False Positive jest większy, niż koszt fałszywego alarmu.
- Jeśli mamy system medyczny, lepiej jest zrobić fałszywy alarm i wysłać kogoś na dodatkowe badania, nawet, jeśli był zdrowy.
- W systemie wykrywania fraudów lepiej jest komuś zablokować tymczasowo transakcję, niż dopuścić do wypłacenia pieniędzy oszustowi.
Systemy mające duży Recall mogą powodować jednak więcej fałszywych alarmów i mieć mniejszą precyzję. Z kolei za duża precyzja oznacza, że model zaczyna przegapiać przypadki co do których można mieć wątpliwości.
Model może oznaczyć każdy przypadek jako pozytywny i wtedy jego recall będzie wynosił 100%. Dochodzi wtedy do sytuacji, że wiele rzeczy jest oznaczonych niepotrzebnie jako false postive.
Recall oblicza się dzieląc TP na TP + FN. Jego inna nazwa to TPR, True Positive Rate.
Precyzja skupia się na oznaczeniu, jakie jest prawdopodobieństwo, że jeśli model coś zaznaczył jako positve, to jest to prawda. Pomaga to uniknąć fałszywych alarmów.
Przykładowo, mamy w skrzynce mailowej 100 maili, z czego 90% to jest spam. Model oznaczył 100% maili jako spam, czyli recall wynosi 100%. Precyzja jest miarą dokładniejszą, wynosi 90%.
Obliczamy ją, dzieląc TP na TP + FP
Precyzja jest główną metryką w systemach, w których nie chcemy podnosić fałszywych alarmów. Używana jest między innymi w rekomendacjach na YT czy Spotify, gdzie lepiej jest otrzymać wyniki bardziej dopasowane, niż pokazywać użytkownikowi propozycje jak leci.