Dlaczego AUC jest wyższy dla klasyfikatora, który jest mniej dokładny niż dla bardziej dokładnego?

29

Mam dwa klasyfikatory

  • Odp .: naiwna sieć bayesowska
  • B: drzewo (pojedynczo połączona) sieć bayesowska

Pod względem dokładności i innych miar A wykonuje się stosunkowo gorzej niż B. Jednak gdy używam pakietów R ROCR i AUC do wykonania analizy ROC, okazuje się, że AUC dla A jest wyższe niż AUC dla B. Dlaczego to jest wydarzenie?

Prawdziwie dodatnia (tp), fałszywie dodatnia (fp), fałszywie ujemna (fn), prawdziwie ujemna (tn), czułość (sen), specyficzność (spec), dodatnia wartość predykcyjna (ppv), ujemna wartość predykcyjna (npv) oraz dokładność (acc) dla A i B są następujące.

+------+---------+---------+
|      |    A    |    B    |
+------+---------+---------+
| tp   | 3601    | 769     |
| fp   | 0       | 0       |
| fn   | 6569    | 5918    |
| tn   | 15655   | 19138   |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv  | 1.00000 | 1.00000 |
| npv  | 0.70442 | 0.76381 |
| acc  | 0.74563 | 0.77084 |
+------+---------+---------+

Z wyjątkiem sens i powiązań (spec i ppv) na marginesach (z wyjątkiem tp, fn, fn i tn), B wydaje się działać lepiej niż A.

Kiedy obliczam AUC dla sens (oś y) vs 1-spec (oś x)

aucroc <- auc(roc(data$prediction,data$labels));

oto porównanie AUC.

+----------------+---------+---------+
|                |    A    |    B    |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec   | 0.70770 | 0.61000 |
+----------------+---------+---------+

Oto moje pytania:

  • Dlaczego AUC dla A jest lepsze niż B, skoro B „wydaje się” przewyższać A pod względem dokładności?
  • Jak więc naprawdę oceniać / porównywać wyniki klasyfikacji A i B? Mam na myśli, czy używam wartości AUC? Czy używam wartości acc, a jeśli tak, to dlaczego?
  • Ponadto, gdy zastosuję odpowiednie reguły punktacji do A i B, B przewyższa A pod względem utraty logów, kwadratowej i sferycznej (p <0,001). Jak wpływają one na ocenę wyników klasyfikacji w odniesieniu do AUC?
  • Wykres ROC dla A wygląda bardzo gładko (jest to łuk łukowy), ale wykres ROC dla B wygląda jak zestaw połączonych linii. Dlaczego to?

Zgodnie z życzeniem, oto wykresy dla modelu A.

model A naiwna siatka Bayesa

Oto wykresy dla modelu B.

model B regularna siatka Bayesa

Oto wykresy histogramów rozkładu prawdopodobieństwa dla A i B. (przerwy są ustawione na 20).

wykres histogramu

Oto wykres rozrzutu prawdopodobieństw B względem A.

wykres punktowy

Jane Wayne
źródło
1
Twoje tabele nie mają sensu: jak wybrałeś punkt, w którym obliczasz te wartości wydajności?
Calimo,
3
Pamiętaj, że AUC mierzy wydajność we wszystkich możliwych progach . Pomógłbyś (również Tobie), gdybyś mógł pokazać krzywe (najlepiej na tym samym wykresie).
Calimo,
@ Calimo przepraszam, zapomniałem podać te informacje, ale próg użyty do utworzenia tej macierzy zamieszania wynosił 50%.
Jane Wayne,
Masz na myśli 0,5? Przewidywane wartości A i B wyglądają wyraźnie inaczej, a jeśli jeszcze nie masz podpowiedzi, zdecydowanie powinieneś wykreślić histogramy obok siebie ...
Calimo
@ Calimo, czy możesz wyjaśnić, histogramy, które obok siebie?
Jane Wayne,

Odpowiedzi:

27

dorexy

Frank Harrell
źródło
6
dodo
1
@alto, 0,5 jest niezwykle arbitralne, co pokrywa się z najbardziej niezwykłą funkcją użyteczności / straty / kosztu, w której dwa rodzaje błędów są równie złe. Rzadko tak jest. Myśląc probabilistycznie, w taki właśnie sposób wierzę w sposób, w jaki działa natura, nie ma czegoś takiego jak „błąd”, ale raczej stopień zła w przewidywaniu ryzyka. Na przykład przewidywanie prawdopodobieństwa na poziomie 0,6, a następnie obserwowanie zdarzenia jest gorsze niż przewidywanie prawdopodobieństwa na poziomie 0,9, a następnie obserwowanie zdarzenia. Ale żadna prognoza nie jest „błędna”. Możesz użyć wyników dokładności prawdopodobieństwa, które nie wymagają progów.
Frank Harrell,
3
Nieograniczony model, taki jak logistyka, nie prowadzi do większego przeregulowania niż jakiekolwiek inne podejście. Transformacja logistyczna zapewnia prawidłowe zachowanie oszacowań prawdopodobieństwa. Jedynym minusem logarytmicznej reguły punktacji jest to, że jeśli przewidujesz prawdopodobieństwo bardzo bliskie 0 lub 1 i jesteś „w błędzie”. To prawda, że ​​ostatecznie podejmuje się decyzję, ale wcale nie wynika z tego, że analityk powinien podjąć decyzję, stosując próg. Decyzja powinna zostać odroczona do osoby podejmującej decyzję. Książka Nate Silver „Sygnał i hałas” dokumentuje wielkie zalety myślenia probabilistycznego.
Frank Harrell
1
@FrankHarrell, frustrujące jest to, że ciągle błędnie interpretujesz moją opinię. Nigdy nie opowiadałem się za podejściem czarnej skrzynki. Po prostu uważam, że twoje stwierdzenie „x jest bezużyteczne, tylko użyj y” jest zbyt mocne.
alt
4
@alto, który jest spostrzegawczy. Myślę, że rozpoznawanie wzorców w czasie rzeczywistym nie ma czasu na narzędzia. To nie jest świat, w którym pracuję. Ale wciąż zdarzają się przypadki, w których wolisz, aby czarna skrzynka powiedziała ci „niepewne” niż wymuszać wybór między „to jest czołg zbliżający się do ciebie” a „to” Samochód osobowy".
Frank Harrell
16
  1. Dlaczego AUC dla A jest lepsze niż B, skoro B „wydaje się” przewyższać A pod względem dokładności?

    Dokładność jest obliczana przy wartości progowej 0,5. Podczas gdy AUC jest obliczane przez dodanie wszystkich „dokładności” obliczonych dla wszystkich możliwych wartości progowych. ROC można postrzegać jako średnią (wartość oczekiwaną) tych dokładności, gdy są one obliczane dla wszystkich wartości progowych.

  2. Jak więc naprawdę oceniać / porównywać wyniki klasyfikacji A i B? Mam na myśli, czy używam wartości AUC? czy używam wartości acc? i dlaczego?

    To zależy. Krzywe ROC mówią coś o tym, jak dobrze twój model rozdziela dwie klasy, bez względu na to, gdzie znajduje się wartość progowa. Dokładność jest miarą, która działa dobrze, gdy klasy zachowują tę samą równowagę na zestawach pociągów i testów, a wyniki są naprawdę prawdopodobieństwem. ROC daje więcej wskazówek na temat zachowania modelu w przypadku naruszenia tego założenia (jest to jednak tylko pomysł).

  3. ponadto, gdy zastosuję odpowiednie reguły punktacji do A i B, B przewyższa A pod względem utraty logu, straty kwadratowej i straty sferycznej (p <0,001). jak wpływają one na ocenę wyników klasyfikacji w odniesieniu do AUC?

    Nie wiem. Musisz lepiej zrozumieć, o czym są twoje dane. Co każdy model jest w stanie zrozumieć na podstawie twoich danych. I zdecyduj później, który kompromis jest najlepszy. Dzieje się tak dlatego, że nie ma uniwersalnych wskaźników dotyczących wydajności klasyfikatora.

  4. Wykres ROC dla A wygląda bardzo gładko (jest to łuk łukowy), ale wykres ROC dla B wygląda jak zestaw połączonych linii. dlaczego to?

    Jest tak prawdopodobnie dlatego, że model bayesowski zapewnia płynne przejścia między tymi dwiema klasami. Przekłada się to na wiele wartości progowych. Co oznacza wiele punktów na krzywej ROC. Drugi model prawdopodobnie generuje mniej wartości ze względu na przewidywanie o tej samej wartości w większych obszarach przestrzeni wejściowej. Zasadniczo również pierwsza krzywa ROC jest tworzona przez linie, jedyną różnicą jest to, że istnieje tak wiele sąsiadujących małych linii, że widzisz ją jako krzywą.

rapaio
źródło
1
Dokładność można obliczyć przy wartościach progowych innych niż 0,5.
Calimo,
Oczywiście masz rację. Dlatego użyłem „dokładności” w następnej propozycji. Jednak, gdy mówi się o dokładności, bez innych informacji kontekstowych, najlepszym odgadnięciem wartości progowej jest 0,5.
rapaio
2
Łatwo zauważyć, jak arbitralny jest taki proces. Niewiele estymatorów w statystykach wymagających binowania lub arbitralnych wyborów przetrwało bez ostrej krytyki. I nigdy nie nazwałbym proporcji sklasyfikowanej jako „dokładność”.
Frank Harrell,
@unreasonablelearner masz rację na swoim założeniu .. powyższa macierz nieporozumień została obliczona na progu 0,5. czy jest jakaś przewaga nad innym progiem?
Jane Wayne,
1
@JaneWayne Formuła rzeczywiście dotyczy proporcji sklasyfikowanych poprawnych. Dokładność jest tu najczęściej używanym terminem. Jednak dokładność oznacza o wiele więcej i w świetle tego, co powiedział Frank Harrell, myślę, że dokładność nie jest zdecydowanie najlepszym terminem na to. Teraz myślę, że jego użycie może zaszkodzić, nawet jeśli jest popularne. Tak się myliłem.
rapaio
4

Dlaczego AUC dla A jest lepsze niż B, skoro B „wydaje się” przewyższać A pod względem dokładności?

Po pierwsze, chociaż wartość graniczna (0,5) jest taka sama, nie jest w ogóle porównywalna między A i B. W rzeczywistości wygląda całkiem inaczej niż na histogramach! Spójrz na B: wszystkie twoje prognozy wynoszą <0,5.

Po drugie, dlaczego B jest tak dokładne? Z powodu braku równowagi klas. W teście B masz 19138 negatywnych przykładów i 6687 pozytywów (dlaczego liczby są różne w A, nie są dla mnie jasne: może brakujące wartości?). Oznacza to, że po prostu mówiąc, że wszystko jest negatywne, mogę już osiągnąć całkiem dobrą dokładność: dokładnie 19138 / (19138 + 6687) = 74%. Zauważ, że nie wymaga to absolutnie żadnej wiedzy poza tym, że istnieje nierównowaga między klasami: nawet najgłupszy model może to zrobić!

I dokładnie to robi test B na progu 0,5 ... otrzymujesz (prawie) tylko negatywne prognozy.

A jest bardziej mieszaną torbą. Chociaż ma nieco niższą dokładność, należy pamiętać, że jego czułość jest znacznie wyższa w tym punkcie odcięcia ...

Wreszcie, nie można porównać dokładności (wydajność na jednym progu) z AUC (średnia wydajność na wszystkich możliwych progach). Ponieważ te wskaźniki mierzą różne rzeczy, nic dziwnego, że są one różne.

Jak więc naprawdę oceniać / porównywać wyniki klasyfikacji A i B? mam na myśli, czy używam wartości AUC? czy używam wartości acc? i dlaczego?

Ponadto, gdy zastosuję odpowiednie reguły punktacji do A i B, B przewyższa A pod względem utraty logów, kwadratowej i sferycznej (p <0,001). Jak wpływają one na ocenę wyników klasyfikacji w odniesieniu do AUC?

Musisz pomyśleć: co naprawdę chcesz zrobić? Co jest ważne? Ostatecznie tylko Ty możesz odpowiedzieć na to pytanie w oparciu o swoją wiedzę na temat pytania. Może AUC ma sens (rzadko kiedy tak naprawdę się nad tym zastanawiasz, z wyjątkiem sytuacji, gdy nie chcesz sam podejmować decyzji, ale pozwól innym to zrobić - najprawdopodobniej tworzysz narzędzie, z którego inni mogą korzystać), może dokładność (jeśli potrzebujesz odpowiedzi binarnej, nie idź), ale może na różnych progach, może jakieś inne ciągłe miary, może jedna z miar sugerowanych przez Franka Harrella ... jak już wspomniano, nie ma uniwersalnego pytania tutaj.

Wykres ROC dla A wygląda bardzo gładko (jest to łuk łukowy), ale wykres ROC dla B wygląda jak zestaw połączonych linii. Dlaczego to?

Wróć do prognoz, które pokazałeś na histogramach. A daje ci ciągłą lub prawie ciągłą prognozę. Przeciwnie, B zwraca głównie tylko kilka różnych wartości (jak widać na histogramie „kolczastym”).

Na krzywej ROC każdy punkt odpowiada progowi. W A masz wiele progów (ponieważ prognozy są ciągłe), więc krzywa jest gładka. W B masz tylko kilka progów, więc krzywa wygląda „przeskakuje” od SN / SP do drugiego.

Widoczne są skoki pionowe, gdy zmienia się tylko czułość (próg powoduje różnice tylko w przypadkach dodatnich), skoki poziome, gdy zmienia się tylko specyficzność (próg powoduje różnice tylko w przykładach negatywnych), i skoki ukośne, gdy zmiana progu wpływa na obie klasy.

Calimo
źródło
+1, jednak nie jest tak, że AUC dotyczy tylko „gdy nie chcesz sam podejmować decyzji, ale pozwól innym to zrobić”. Zobacz: Jak ręcznie obliczyć powierzchnię pod krzywą (AUC) lub statystykę c .
gung - Przywróć Monikę