Czułość (ang. recall, zamiennie sensitivity albo true positive rate) to odsetek rzeczywistych przypadków pozytywnych, które model zaklasyfikował poprawnie. Mówiąc po ludzku: spośród wszystkich obiektów, które naprawdę były „na tak”, ile model faktycznie wyłapał. Liczysz ją prosto: recall = TP / (TP + FN), gdzie TP to trafione pozytywy, a FN to fałszywe negatywy, czyli te, które model przeoczył. Wynik 0,9 oznacza, że jeden na dziesięć realnych pozytywów uciekł modelowi bokiem.
Do czego to służy
Czułość pilnuje jednej rzeczy: żeby nie pomijać tego, co ważne. Jest kluczowa wszędzie tam, gdzie przeoczenie pozytywu kosztuje znacznie więcej niż fałszywy alarm — w diagnostyce medycznej, wykrywaniu fraudów, filtrach bezpieczeństwa czy detekcji awarii. Lepiej, żeby system o jeden raz za dużo krzyknął „uwaga”, niż żeby przepuścił prawdziwe zagrożenie.
Sama czułość nie wystarczy do oceny modelu, bo zawsze gra w parze z precyzją (precision). Czułość mówi „ilu prawdziwych pozytywów nie przegapiłem”, a precyzja „ile z moich alarmów było trafionych”. Podnosząc próg decyzyjny w dół, łatwo wykręcić recall bliski 1,0 — wystarczy, żeby model wszystko uznał za pozytyw. Tyle że precyzja wtedy leci na łeb. Dlatego patrzysz na oba naraz, zwykle przez metrykę F1-score.
Przykład z praktyki
Trenujesz klasyfikator wykrywający spam. Masz 100 realnych spamów, model złapał 80, a 20 wpuścił do skrzynki. Czułość to 80 / (80 + 20) = 0,8. W scikit-learn nie liczysz tego ręcznie:
from sklearn.metrics import recall_scorerecall_score(y_true, y_pred)— zwróci wartość dla klasy pozytywnej,classification_report(y_true, y_pred)— pokaże recall, precision i F1 dla każdej klasy naraz.
Przy wielu klasach kontroluj parametr average (macro, micro, weighted) — przy niezbalansowanych danych potrafi mocno zmienić wynik.
Częste błędy
Najpopularniejsza pułapka to ocenianie modelu samą dokładnością (accuracy) przy niezbalansowanych klasach. Jeśli 1% transakcji to fraudy, model mówiący „wszystko czyste” ma 99% accuracy i czułość równą zero — czyli jest bezużyteczny. Druga pułapka: gonienie za recall = 1,0 bez patrzenia na precyzję. Trzecia: mylenie kierunku — czułość karze za FN, a nie za FP. Jak chcesz ograniczyć fałszywe alarmy, to robota dla precyzji, nie czułości.
Pojęcia powiązane: precision (precyzja), F1-score, confusion matrix, true positive rate, krzywa ROC i AUC, próg decyzyjny, accuracy.