Jak mierzymy jakość: trafność, macierz pomyłek, precyzja i czułość

🎯 Po co Ci to?

„Sztuczna inteligencja wykrywa raka z 95-procentową skutecznością" — nagłówek, który widziałeś w tej albo bardzo podobnej postaci. Po tej jednostce będziesz umiał w kilka sekund ocenić, czy taka liczba jest imponująca, czy bezwartościowa. Nauczysz się też rzeczy praktycznej poza informatyką: dlaczego przy rzadkich zjawiskach nasza intuicja co do „procentu trafień" jest po prostu błędna — i jak myślą o tym lekarze, sędziowie i banki.

✅ Czego się nauczysz

Po tej lekcji potrafisz:

  • policzyć trafność i wskazać sytuację, w której jest ona miarą mylącą;
  • zbudować i odczytać macierz pomyłek (cztery rodzaje wyników);
  • policzyć precyzję i czułość oraz wyjaśnić różnicę między nimi po ludzku;
  • uzasadnić, dlaczego podniesienie czułości zwykle obniża precyzję;
  • rozstrzygnąć, która miara jest ważniejsza w danym zastosowaniu.

🔁 Przypomnij sobie

Z Jednostki 9.3: jakość mierzymy na danych, których model nie widział. Teraz przyjmujemy, że ten warunek jest spełniony, i pytamy o coś innego: jaką liczbą opisać wynik. Z Jednostki 9.2 przypomnij sobie nierównowagę klas — 990 zdjęć zdrowej skóry i 10 zdjęć czerniaka. Za chwilę okaże się, dlaczego to psuje najbardziej oczywistą miarę.

📘 Wyjaśnienie

Trafność i jej pułapka

Najprostsza miara: trafność (ang. accuracy) to udział poprawnych odpowiedzi we wszystkich odpowiedziach. Model odpowiedział dobrze w 900 z 1000 przypadków — trafność 90%.

Dla zadań zrównoważonych (mniej więcej tyle samo przypadków każdej klasy) to miara sensowna. Dla zadań niezrównoważonych jest myląca aż do absurdu. Weźmy badanie przesiewowe choroby, która występuje u 1 osoby na 100. Napiszmy „model", który zawsze odpowiada „zdrowy" — jedna linijka kodu, zero uczenia, zero danych:

  • trafność: 99%;
  • liczba wykrytych chorych: 0;
  • wartość medyczna: żadna.

To nie sztuczka retoryczna, a codzienna pułapka. Im rzadsze zjawisko, tym wyższą trafność daje bezmyślne „nie ma go" — a więc tym mniej ta liczba mówi.

📐 DEFINICJA — trafność (accuracy): udział poprawnych odpowiedzi modelu we wszystkich rozpatrzonych przypadkach.

Po ludzku: ile procent odpowiedzi było dobrych. Czym to NIE jest: to nie miara przydatności modelu. Przy rzadkich zjawiskach model bezużyteczny osiąga wysoką trafność, a model użyteczny — niższą.

Macierz pomyłek: cztery rodzaje wyników

Żeby zobaczyć, jak model się myli, rozkładamy jego odpowiedzi na cztery przypadki. Ustalamy, którą klasę nazywamy „dodatnią" (zwykle tę, którą chcemy wykryć: choroba, spam, awaria):

model: choroba model: zdrowy
naprawdę choroba prawdziwie dodatni (TP) fałszywie ujemny (FN) — przeoczenie
naprawdę zdrowy fałszywie dodatni (FP) — fałszywy alarm prawdziwie ujemny (TN)

To zestawienie nazywamy macierzą pomyłek. Dwie komórki na przekątnej to sukcesy, dwie pozostałe to dwa zupełnie różne rodzaje porażki:

  • fałszywy alarm (FP) — zdrowy pacjent dostaje skierowanie na niepotrzebną biopsję; ważny e-mail ląduje w spamie;
  • przeoczenie (FN) — chory pacjent wraca do domu z informacją, że wszystko w porządku; oszustwo przechodzi niezauważone.

Zwijanie obu do jednej liczby („model pomylił się 100 razy") gubi najważniejszą informację, bo koszt tych dwóch pomyłek prawie nigdy nie jest taki sam.

Precyzja i czułość

Dwie miary, które patrzą na macierz pomyłek z dwóch różnych stron.

Czułość (ang. recall, w medycynie sensitivity) — jaką część rzeczywistych przypadków model wychwycił:

czułość = TP / (TP + FN)

Precyzja (ang. precision) — jaka część alarmów modelu była prawdziwa:

precyzja = TP / (TP + FP)

Po ludzku, w postaci dwóch pytań:

  • czułość odpowiada na pytanie: „Czy nic mi nie umknęło?"
  • precyzja odpowiada na pytanie: „Czy mogę wierzyć, gdy model bije na alarm?"

Bywa potrzebna jedna liczba łącząca obie — wtedy używa się miary F1, czyli ich średniej harmonicznej: F1 = 2 · precyzja · czułość / (precyzja + czułość). Średnia harmoniczna jest tu ważna, bo mocno karze skrajności: model o czułości 100% i precyzji 5% ma F1 poniżej 10%, choć zwykła średnia dałaby „przyzwoite" 52%.

📐 DEFINICJA — precyzja i czułość:

  • Czułość = udział wykrytych przypadków dodatnich wśród wszystkich rzeczywiście dodatnich.
  • Precyzja = udział trafnych alarmów wśród wszystkich alarmów modelu.

Po ludzku: czułość mówi „ile z chorych znalazłem", precyzja — „ilu z tych, których wskazałem, było naprawdę chorych". Czym to NIE jest: to nie dwie nazwy tej samej rzeczy i nie da się ich maksymalizować niezależnie od siebie.

Dlaczego nie da się mieć obu naraz

Model uczący się nie zwraca decyzji, tylko stopień pewności — liczbę z przedziału od 0 do 1 (przypomnij sobie tabelę z rozkładem prawdopodobieństw z Jednostki 9.1; formalnie zajmiemy się nią przy funkcji softmax w Jednostce 10.3). Decyzję podejmujemy my, ustalając próg: „jeśli pewność przekracza 0,5 — uznajemy, że choroba".

I tu robi się ciekawie, bo próg to pokrętło wymieniające jedną miarę na drugą:

próg 0,9  →  model alarmuje tylko przy wielkiej pewności
             mało fałszywych alarmów (wysoka PRECYZJA)
             ale część chorych przeoczona (niska CZUŁOŚĆ)

próg 0,1  →  model alarmuje przy najmniejszym podejrzeniu
             prawie nikogo nie przeoczy (wysoka CZUŁOŚĆ)
             ale masa fałszywych alarmów (niska PRECYZJA)

Nie ma tu rozwiązania „matematycznie najlepszego" — wybór progu jest decyzją o tym, który błąd wolimy popełniać. To rozstrzygnięcie etyczne i organizacyjne, nie techniczne, i dlatego nie powinien go podejmować sam programista.

  • Badanie przesiewowe (czerniak, rak piersi): ważniejsza czułość. Fałszywy alarm oznacza dodatkowe badanie i stres; przeoczenie może oznaczać śmierć. Dlatego przesiew ustawia się „nadwrażliwie", a jego wyniki weryfikuje dokładniejszym badaniem.
  • Filtr spamu: ważniejsza precyzja. Spam w skrzynce to irytacja; list od pracodawcy wyrzucony do spamu to realna strata.
  • Wykrywanie oszustw na kartach: kompromis zależny od kosztów — blokada uczciwej transakcji zniechęca klienta, przeoczone oszustwo kosztuje bank.

Kiedy model przewiduje liczbę

Wszystko powyżej dotyczy klasyfikacji, czyli wyboru z listy możliwości. Jeśli model przewiduje liczbę (cena mieszkania, temperatura, czas dostawy), to nie ma „trafień" — jest tylko odległość od prawdy. Używamy wtedy miar błędu:

  • średni błąd bezwzględny (MAE) — przeciętna różnica między przewidywaniem a rzeczywistością, w tych samych jednostkach co etykieta (np. „model myli się przeciętnie o 47 tys. zł"). Miara czytelna dla człowieka;
  • średni błąd kwadratowy (MSE) i jego pierwiastek (RMSE) — podnoszą różnice do kwadratu, więc mocniej karzą duże pomyłki. Wygodne matematycznie i dlatego często używane jako funkcja straty w treningu (Jednostka 11.1).

„Na poziomie specjalisty" — co to naprawdę znaczy

Nagłówki o AI dorównującej lekarzom pochodzą z konkretnych badań. Ich schemat jest zawsze podobny: zbiera się zbiór opisanych przypadków z potwierdzoną diagnozą, mierzy się czułość i precyzję modelu, a potem prosi się grupę specjalistów o ocenę tych samych przypadków i porównuje wyniki.

Czytając takie doniesienia, warto pytać: na ilu przypadkach? z ilu ośrodków? czy specjaliści mieli dostęp do wywiadu z pacjentem, czy tylko do zdjęcia (bo lekarz w gabinecie ma dużo więcej informacji niż piksele)? i czy sprawdzono model na danych z innego szpitala niż ten, z którego pochodził trening? Bez odpowiedzi na te pytania „na poziomie specjalisty" jest zdaniem marketingowym, nie naukowym. Do samych zastosowań medycznych i ich granic wrócimy w Jednostce 12.5.

💭 Pomyśl: Model do wykrywania oszustw finansowych ma czułość 99% i precyzję 2%. Bank przetwarza milion transakcji dziennie, z czego oszustwem jest 100. Ile alarmów wygeneruje model w ciągu dnia? Czy taki model da się wdrożyć?

Sprawdź odpowiedź

Czułość 99% znaczy, że model wykryje 99 z 100 oszustw. Precyzja 2% znaczy, że te 99 trafień stanowi 2% wszystkich alarmów — więc alarmów jest łącznie około 99 / 0,02 ≈ 4950 dziennie, z czego ponad 4850 to fałszywe alarmy.

Czy da się wdrożyć? Jako automatyczna blokada — nie: blokowanie 4850 uczciwych transakcji dziennie byłoby katastrofą. Jako pierwsze sito przed weryfikacją — czasem tak, o ile bank ma zdolność sprawdzenia 5000 zgłoszeń dziennie (co przy zespole ludzi jest kosztowne, ale realne, jeśli straty z oszustw są większe). To dobra ilustracja zasady: „dobra" wartość miary zależy od tego, co dzieje się z alarmem dalej, a nie od samej liczby.

⚠️ Uwaga, pułapka

Największa pułapka tej jednostki nie jest matematyczna, a językowa: słowo „skuteczność" nie ma definicji. Gdy je widzisz, nie wiesz, czy chodzi o trafność, czułość, precyzję, F1, czy o coś zmyślonego na potrzeby komunikatu prasowego. A różnica jest ogromna: ten sam model przy jednym progu decyzyjnym daje „96% skuteczności" (trafność), a przy tym samym progu „31% skuteczności" (precyzja) — obie liczby są prawdziwe i obie opisują ten sam model. Pytanie brzmi więc nie „ile procent?", ale: którą miarę podajesz, na jakich danych i przy jakim progu?

🕰️ Oś czasu — modele „na poziomie specjalisty"

  • 2017 — model konwolucyjny rozpoznaje zmiany skórne (w tym czerniaka) z dokładnością porównywalną z doświadczonymi dermatologami; praca opublikowana w Nature.
  • 2017 — model wykrywa zapalenie płuc na zdjęciach rentgenowskich klatki piersiowej, w badaniu przewyższając radiologów (CheXNet).
  • 2019 — model diagnozuje retinopatię cukrzycową ze zdjęć dna oka z dokładnością porównywalną z konsylium okulistów.
  • 2020 — model określa zaawansowanie raka wątrobowokomórkowego na cyfrowych preparatach tkankowych na poziomie patologów.

📐 Definicje tej lekcji

  • Trafność (accuracy) — udział poprawnych odpowiedzi we wszystkich.
  • Macierz pomyłek — zestawienie czterech możliwych wyników: TP, FP, FN, TN.
  • Fałszywie dodatni (FP) — fałszywy alarm.
  • Fałszywie ujemny (FN) — przeoczenie.
  • Czułość (recall) — udział wykrytych przypadków wśród wszystkich rzeczywistych.
  • Precyzja (precision) — udział trafnych alarmów wśród wszystkich alarmów.
  • Miara F1 — średnia harmoniczna precyzji i czułości.
  • Próg decyzyjny — wartość pewności, od której model uznaje przypadek za dodatni.
  • MAE / RMSE — miary błędu dla zadań przewidywania liczby.

📌 Najważniejsze w pigułce

  • Trafność myli przy rzadkich zjawiskach: „zawsze zdrowy" daje 99% i zero wartości.
  • Model myli się na dwa różne sposoby: fałszywy alarm i przeoczenie. Ich koszty są różne.
  • Czułość = „ile z chorych znalazłem". Precyzja = „ilu ze wskazanych było chorych".
  • Precyzję i czułość wymieniamy jedną na drugą, przesuwając próg decyzyjny — to decyzja etyczna, nie techniczna.
  • Przesiew potrzebuje czułości, filtr spamu — precyzji.
  • Słowo „skuteczność" bez podania miary, danych i progu nie znaczy nic.

🎒 Zadania

Zadanie 9.4.1. Model badał 1000 zdjęć zmian skórnych, wśród których było 50 czerniaków. Wykrył 40 z nich, a przy okazji zaalarmował przy 90 zdjęciach zmian łagodnych. (a) Zbuduj macierz pomyłek. (b) Policz trafność, czułość i precyzję. (c) Policz trafność „modelu", który zawsze odpowiada „zmiana łagodna". (d) Który model jest lepszy i dlaczego?

Pokaż rozwiązanie

(a) TP = 40 (wykryte czerniaki), FN = 50 − 40 = 10 (przeoczone czerniaki), FP = 90 (fałszywe alarmy), TN = 950 − 90 = 860.

model: czerniak model: łagodna
naprawdę czerniak 40 10
naprawdę łagodna 90 860

(b) Trafność = (40 + 860) / 1000 = 90%. Czułość = 40 / 50 = 80%. Precyzja = 40 / 130 ≈ 30,8%.

(c) Model „zawsze łagodna": poprawnie rozpozna wszystkie 950 zmian łagodnych i przeoczy wszystkie 50 czerniaków, więc trafność = 950 / 1000 = 95%.

(d) Model z punktu (b) jest bez porównania lepszy, choć ma niższą trafność (90% < 95%). Bo wykrywa 4 na 5 czerniaków, a model „zawsze łagodna" nie wykrywa żadnego — jego czułość to 0%. To najważniejszy wniosek tej jednostki: przy rzadkich zjawiskach trafność potrafi wskazać jako lepszy model całkowicie bezużyteczny.

Zadanie 9.4.2. Dla modelu z zadania 9.4.1 policz miarę F1. Następnie wyjaśnij, dlaczego zamiast zwykłej średniej arytmetycznej precyzji i czułości używa się średniej harmonicznej.

Pokaż rozwiązanie

Precyzja ≈ 0,308, czułość = 0,8. F1 = 2 · 0,308 · 0,8 / (0,308 + 0,8) = 0,4928 / 1,108 ≈ 0,445, czyli około 44,5%.

Średnia arytmetyczna dałaby (0,308 + 0,8) / 2 = 0,554, czyli 55,4% — wyraźnie więcej. Powód, dla którego wolimy średnią harmoniczną: karze skrajności. Model, który alarmuje przy każdym przypadku, ma czułość 100% i precyzję równą częstości choroby (tu 5%). Średnia arytmetyczna dałaby mu 52,5% — wynik pozornie przyzwoity dla modelu, który nie robi nic sensownego. F1 dałaby 2 · 1 · 0,05 / 1,05 ≈ 9,5%, czyli odzwierciedla rzeczywistą bezużyteczność. Średnia harmoniczna jest wysoka tylko wtedy, gdy obie składowe są wysokie.

Zadanie 9.4.3. Dla każdego zastosowania rozstrzygnij, czy ważniejsza jest precyzja, czy czułość, i uzasadnij, wskazując konkretny koszt każdego z dwóch rodzajów błędu: (a) system wykrywający broń w bagażu na lotnisku; (b) model podpowiadający lekarzowi diagnozy rzadkich chorób genetycznych; (c) automatyczne usuwanie treści naruszających prawo z serwisu społecznościowego.

Pokaż rozwiązanie

(a) Czułość — przeoczenie broni może kosztować życie wielu osób, a fałszywy alarm to dodatkowa kontrola bagażu (kilka minut i drobna niedogodność). Dlatego bramki na lotniskach są ustawione skrajnie nadwrażliwie i praktycznie każdy alarm weryfikuje człowiek.

(b) Czułość, ale z zastrzeżeniem: model ma podpowiadać, a decyzję podejmuje lekarz, więc fałszywy alarm jest tani (lekarz go odrzuci), a przeoczenie rzadkiej choroby oznacza często lata bez rozpoznania. Warunkiem jest jednak, by liczba podpowiedzi nie była tak duża, że lekarz przestanie je czytać — miara jakości musi uwzględniać realne obciążenie człowieka.

(c) Precyzja — usunięcie legalnej wypowiedzi jest ingerencją w wolność wypowiedzi i pomyłką trudną do naprawienia (materiał już zniknął, autor często nie ma skutecznej ścieżki odwołania), więc automatycznie usuwamy tylko przy bardzo wysokiej pewności, a przypadki wątpliwe kierujemy do oceny człowieka. To zresztą przykład, w którym o wyborze progu decyduje nie inżynier, a prawo i regulamin serwisu — wątek, który wraca w Jednostce 20.3.

🔍 Sprawdź, czy umiesz

  • [ ] Policzyć trafność i wskazać, kiedy jest miarą myląca.
  • [ ] Zbudować macierz pomyłek i nazwać cztery jej komórki.
  • [ ] Policzyć precyzję i czułość z macierzy pomyłek.
  • [ ] Wyjaśnić, jak próg decyzyjny wymienia precyzję na czułość.
  • [ ] Wskazać, która miara jest ważniejsza w przesiewie medycznym, a która w filtrze spamu.
  • [ ] Zadać trzy pytania kontrolne wobec nagłówka „AI ze skutecznością 95%".

Ucz się tej jednostki z asystentem