ML Atlas

04 · Ocena · 3 min czytania · Interaktywne · aktualizacja

Czym jest recall i czym różni się od precyzji?

W skrócie

Recall (czułość) to odsetek prawdziwych przykładów danej klasy, które model rozpoznał. Fałszywe alarmy mierzy precyzja. Średnia recalli to balanced accuracy.

Co to jest

Recall klasy k (czułość, sensitivity, true positive rate) to liczba przykładów klasy k poprawnie rozpoznanych przez model podzielona przez liczbę wszystkich prawdziwych przykładów tej klasy. Odpowiada na pytanie „ile z tego, co było, znaleźliśmy?”.

Precyzja odpowiada na pytanie odwrotne: „ile z tego, co wskazaliśmy, było prawdą?”. Obie metryki czyta się z macierzy pomyłek i stosuje do każdego klasyfikatora — od regresji logistycznej po duże modele językowe oceniane jako wyszukiwarki.

Mechanizm — dlaczego tak działa

Macierz pomyłek dla klasy k ma cztery pola: prawdziwie dodatnie TP (było k, model mówi k), fałszywie ujemne FN (było k, model mówi co innego), fałszywie dodatnie FP (nie było k, model mówi k) i prawdziwie ujemne TN. Recall = TP / (TP + FN): mianownik to wszystkie prawdziwe przypadki k, więc recall nie zależy od tego, ile razy model powiedział „k” niepotrzebnie. Precyzja = TP / (TP + FP): mianownik to wszystkie wskazania modelu.

Obie metryki ciągną w przeciwne strony przez próg decyzji. Obniżając próg dla klasy k, model częściej mówi „k”: recall rośnie, bo łapie więcej prawdziwych przypadków, a precyzja zwykle spada, bo łapie też więcej fałszywych. W granicy „zawsze k” recall wynosi 1, a precyzja równa się częstości klasy. Krzywa precyzja–recall pokazuje wszystkie kompromisy naraz, a F1 = 2·P·R / (P + R) to ich średnia harmoniczna, karząca bardziej słabszą z dwóch wartości.

Recall jest miarą „na klasę”, dlatego dobrze znosi niezbalansowanie: dla klasy stanowiącej 2% danych accuracy 98% może oznaczać recall 0. Z tego powodu balanced accuracy to po prostu średnia recalli po klasach — jedna liczba, w której rzadka klasa waży tyle, co częsta.

Zastrzeżenie: recall liczony na kilkunastu przykładach rzadkiej klasy ma duży błąd — jedna pomyłka na 20 przypadków to 5 punktów procentowych. Przy porównywaniu modeli na małej klasie potrzebne są przedziały ufności albo walidacja krzyżowa.

Na przykładzie

Breast Cancer Wisconsin: regresja logistyczna na 30 standaryzowanych cechach, trening na 70% danych, test na 171 guzach, w tym 64 złośliwych (random_state=0). Klasą „pozytywną” są guzy złośliwe. Przy domyślnym progu 0,5 model wykrył 60 z 64 złośliwych (FN = 4) i wszczął 4 fałszywe alarmy: recall 0,94, precyzja 0,94.

Obniżenie progu do 0,3 dało 61 wykrytych (recall 0,95) przy 10 fałszywych alarmach (precyzja 0,86), a próg 0,1 — 63 z 64 (recall 0,98) przy 14 fałszywych alarmach (precyzja 0,82). Model się nie zmienił, zmieniła się tylko reguła decyzji. Skrajność: „wszystko złośliwe” daje recall 1,00 przy precyzji 0,37, czyli równej udziałowi guzów złośliwych w teście.

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: regresja logistyczna na biopsjach raka piersi: suwak progu zmienia macierz pomyłek, precision, recall i punkt na krzywej ROC.

Dane: Breast Cancer Wisconsin (diagnostyka raka piersi)

W praktyce

  • scikit-learn: recall_score(y_true, y_pred, average=None) zwraca recall każdej klasy; classification_report podaje precyzję, recall i F1 razem; confusion_matrix pokazuje surowe liczby.
  • Wybór między recallem a precyzją to decyzja o kosztach: w badaniach przesiewowych i wykrywaniu oszustw liczy się recall, w rekomendacjach i filtrach spamu — precyzja.
  • Recall zależy od progu; porównuj modele przy ustalonym progu albo metrykami niezależnymi od progu (roc_auc_score, average_precision_score).
  • W wyszukiwaniu i systemach RAG recall@k to odsetek trafnych dokumentów wśród k zwróconych względem wszystkich trafnych.
  • Typowy błąd: maksymalizowanie recallu bez patrzenia na precyzję — model „zawsze tak” ma recall 100%.

Najczęstsze pytania

Czym różni się recall od precyzji?
Recall mówi, ile prawdziwych przykładów klasy model znalazł (TP / wszystkie prawdziwe). Precyzja mówi, ile wskazań modelu było trafnych (TP / wszystkie wskazane). Recall ignoruje fałszywe alarmy, precyzja ignoruje przeoczenia, a poprawa jednej zwykle psuje drugą.
Kiedy recall jest ważniejszy od precyzji?
Gdy przeoczenie kosztuje więcej niż fałszywy alarm: badania przesiewowe, wykrywanie wad produkcyjnych, oszustw, zagrożeń. Wtedy obniża się próg decyzji i akceptuje więcej fałszywych alarmów, które sprawdzi człowiek albo drugi, dokładniejszy model.
Co to jest recall w klasyfikacji wieloklasowej?
Liczy się go osobno dla każdej klasy (jedna klasa przeciw reszcie). Uśrednienie po klasach z równą wagą (macro) daje balanced accuracy; uśrednienie ważone licznością klas (weighted) daje dokładnie zwykłą accuracy.

Źródła

Zobacz też