Strona głównaArtykułyAnaliza Danych

Macierze Pomyłek, Krzywe ROC i AUC: Interpretacja Klasyfikatora Szczerze

TP, FP, TN, FN, kompromis między precyzją a czułością, dlaczego AUC jest niezależne od progu, oraz sytuacje, w których krzywa ROC cicho wprowadza w błąd, gdy klasa pozytywna występuje rzadko.

mysimulator teamZaktualizowano — czerwiec 2026≈ 8 min czytania▶ Otwórz symulację

Próg decyduje o wyniku

Większość klasyfikatorów binarnych nie generuje twardego "tak" lub "nie" — raczej wydaje ciągłą ocenę (prawdopodobieństwo, odległość, logit), a decyzja pojawia się dopiero po ustaleniu progu: wszystko powyżej tego progu uznawane jest za pozytywne, a wszystko poniżej za negatywne. Przesuwaj ten próg i wszystkie metryki uzależnione od niego ulegają zmianie – nie zmieniasz modelu, tylko definiujesz linię na tle dwóch nakładających się rozkładów prawdopodobieństwa, jednego dla prawdziwie pozytywnych, a drugiego dla prawdziwie negatywnych.

demo na żywo · powiązana symulacja● LIVE

Cztery wyniki

Każde przewidywanie, porównane z rzeczywistymi danymi, mieści się w dokładnie jednej z czterech komórek:

przewidziane pozytywnie przewidziane negatywnie rzeczywiste pozytywy Prawdziwy Pozytywny (TP) Fałszywy Negatywny (FN) rzeczywiste negatywy Fałszywy Pozytywny (FP) Prawdziwy Negatywny (TN)

Wszystkie powszechnie używane metryki klasyfikacji są po prostu proporcją tych czterech liczb. Dokładność = (TP+TN)/całość jest najbardziej oczywista i najmniej przydatna, gdy klasy są niezbalansowane: model, który zawsze przewiduje "negatywnie" na zbiorze danych, w którym 99% wyników to wyniki negatywne, osiąga 99% dokładności, jednocześnie nie wychwytywając żadnych pozytywnych przypadków – co dokładnie motywuje wszystkie inne metryki poniżej.

                  predicted positive     predicted negative
actual positive   True Positive  (TP)    False Negative (FN)
actual negative   False Positive (FP)    True Negative  (TN)

Dokładność, czułość i kompromis między nimi

Dokładność = TP / (TP + FP) "z wszystkich rzeczy, które oznaczyliśmy jako pozytywne, ile z nich było naprawdę?" Czułość = TP / (TP + FN) "z wszystkich rzeczy, które były naprawdę pozytywne, ile z nich udało nam wychwycić?" (czułość to również określenie na współczynnik czystości lub wskaźnik prawdomocnych pozytywnych) F1 = 2 · Dokładność · Czułość / (Dokładność + Czułość) średnia harmoniczna obu wartości Zwiększanie progu sprawia, że klasyfikator jest bardziej ostrożny: mniej elementów oznaczanych jako pozytywne, więc dokładność rośnie (tych, które oznaczamy jako pozytywne, jest bardziej prawdopodobne, że są poprawne), a czułość spada (przez ostrożność pomijasz więcej prawdziwych pozytywnych przypadków). Zmniejszanie progu robi to odwrotnie. Nie jest to błąd do optymalizacji – jest to realny kompromis bez rozwiązania wolnego od progów, a to, która strona tego kompromisu ma znaczenie, zależy od kosztu obu rodzajów błędów, a nie od właściwości modelu: badanie na raka chce bardzo mało pominiętych pozytywnych przypadków (wysoka czułość, tolerując dodatkowe fałszywe alarmy), podczas gdy filtr antyspamowy chce bardzo mało prawdziwych e-maili błędnie klasyfikowanych (wysoka dokładność, tolerując część spamu, który przedostaje się przez filtr).

Precision = TP / (TP + FP)     "of everything I called positive, how much really was?"
Recall    = TP / (TP + FN)     "of everything that really was positive, how much did I catch?"
                                (recall is also called sensitivity or true positive rate)

F1 = 2 · Precision · Recall / (Precision + Recall)     harmonic mean of the two

ROC krzywa i AUC

Krzywa ROC (Receiver Operating Characteristic) przesuwa próg przez wszystkie możliwe wartości i szkicuje wskaźnik czystości prawdy (recall) przeciwko wskaźnikowi fałszywych alarmów (FPR) = FP/(FP+TN) dla każdej z nich – przedstawiając w jednym obrazie cały kompromis zamiast jednej liczby na każdy próg:

Wskaźnik czystości prawdy (recall) = TP / (TP + FN) Oś Y Wskaźnik fałszywych alarmów (FPR) = FP / (FP + TN) Oś X Diagonalny wskaźnik czystości prawdy = wskaźnik fałszywych alarmów Klasyfikator z zerową informacją – co odpowiada losowemu zgadywaniu. Krzywa powyżej diagonalnej = rzeczywiste zdolności dyskryminacyjne Punkt górno-lewy (0, 1) = niezrealizowane idealne rozwiązanie: wskaźnik czystości prawdy = 1, wskaźnik fałszywych alarmów = 0. AUC (Area Under the ROC Curve) kondensuje całą krzywą w jedną liczbę pomiędzy 0.5 (nie lepsze niż losowe) a 1.0 (idealne rozróżnienie), a ma czysto probabilistyczne odczytanie, które warto zapamiętać, ponieważ jest to powód, dla którego AUC jest niezależne od progu – AUC równa się prawdopodobieństwu, że losowo wybrany prawdziwy pozytywny otrzymuje wyższy wynik niż losowo wybrany prawdziwy negatywny. To właśnie dlatego AUC nie obchodzi, gdzie ostatecznie ustalisz próg – mierzy, jak dobrze rozdzielone są dwa rozkłady wyników na samym początku, zanim zostanie podjęta decyzja o ustaleniu progu.

TPR (recall)  = TP / (TP + FN)      y-axis
FPR           = FP / (FP + TN)      x-axis

diagonal TPR = FPR                  a classifier with zero information —
                                     equivalent to guessing at random
curve above the diagonal            genuine discriminative ability
top-left corner (0, 1)              the unreachable ideal: TPR=1, FPR=0

Kiedy ROC wprowadza w błąd: krzywa precyzji i czułości

ROC normalizuje się przez liczbę prawdziwych negatyw, TN, co staje się problemem, gdy liczba negatyw znacznie przewyższa liczbę pozytywnych – nawet duża liczba fałszywie pozytywnych może stanowić niewielki procent ogromnej klasy negatywowej, więc FPR w zasadzie nie zmienia się, a krzywa ROC wydaje się kusząco dobra, mimo że precyzja, znormalizowana przez znacznie mniejszą liczbę przewidywanych pozytywów, upada. Krzywa precyzji i czułości przedstawia precyzję w odniesieniu do czułości bezpośrednio i jest standardową alternatywą, gdy klasa pozytywna jest rzadka – np. wykrywanie oszustw, badania przesiewowe na choroby lub wykrywanie rzadkich zdarzeń – dokładnie tam, gdzie optymizm krzywej ROC jest najbardziej mylący.

Wybór progu, który nie jest domyślnie 0.5

Nic nie czyni 0.5 prawidłowym progiem poza przywyczajeniem; jest on optymalny tylko wtedy, gdy koszty fałszywych pozytywów i fałszywych negatyw są dokładnie takie same oraz klasy są zrównoważone, co rzadko zdarza się w praktyce. Statystyka Youdena, J = TPR − FPR = TPR + TNR − 1, wybiera próg, który maksymalizuje pionową odległość od krzywej ROC od linii prostej — rozsądny domyślny ustawienie, gdy oba rodzaje błędów mają równą wagę — ale uczciwym sposobem wyboru progu jest przypisanie konkretnej wartości kosztu fałszywego pozytywu i fałszywego negatywu oraz wybranie tego progu, który minimalizuje oczekiwany całkowity koszt, co dokładnie pokazuje się poprzez przesuwanie progu wzdłuż dwóch rozkładów wyników w interaktywnym trybie demonstracyjnym, komórka po komórce, zamiast przez pojedynczą krzywą podsumowującą.

Często zadawane pytania

Dlaczego dokładność jest złą miarą dla klas niezbalansowanych?

Ponieważ dokładność równomiernie waży wszystkie poprawne przewidywania, niezależnie od wielkości klasy. W zbiorze danych, w którym 99% próbek to klasy negatywnej, klasyfikator, który zawsze przewiduje negatywne wyniki z 99% dokładnością, a jednocześnie nie wykrywa żadnych prawdziwych pozytywnych przypadków – jest to całkowicie bezużyteczny model pod względem praktycznym. Precyzja, czułość i krzywa precyzji-czułości są znacznie bardziej informatywne w tej sytuacji, ponieważ uwzględniają wrażliwość na sposób obsługi rzadkiej klasy pozytywnej.

Co oznacza AUC w prostych słowach?

AUC to prawdopodobieństwo, że klasyfikator przypisuje losowo wybranemu przykładowi pozytywnemu wyższy wynik niż losowo wybranemu przykładowi negatywnemu. Wartość AUC równa 0,5 oznacza, że model nie rozróżnia tych dwóch klas lepiej niż rzut monetą; wartość AUC równa 1,0 oznacza, że wszystkie wyniki pozytywne są wyższe niż wszystkie wyniki negatywne, co wskazuje na istnienie progu, który klasyfikuje wszystko idealnie.

Dlaczego krzywa ROC wygląda dobrze, nawet gdy model słabo radzi sobie z mniejszością?

Ponieważ fałszywy współczynnik pozytywny na osi x krzywej ROC jest normalizowany przez całkowitą liczbę prawdziwych negatywów, która może być ogromna, gdy klasa pozytywna jest rzadka – duża absolutna liczba fałszywych pozytywów nadal stanowi niewielki procent tej ogromnej puli negatywnych. Precyzja, z kolei, jest normalizowana przez liczbę przewidzianych pozytywów, co ujawnia te same fałszywe pozytywy jako znacznie większa i bardziej uczciwa część. Dlatego krzywa precyzji-czułości jest preferowana, gdy klasa pozytywna jest rzadka.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Confusion Matrix Explorer i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Confusion Matrix Explorer

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)