Dlaczego dokładność nie jest najlepszym miernikiem do oceny modeli klasyfikacji?

107

To jest ogólne pytanie, które zostało tutaj zadane pośrednio wiele razy, ale nie ma jednej wiarygodnej odpowiedzi. Byłoby wspaniale mieć szczegółową odpowiedź na to pytanie.

Dokładność , odsetek poprawnych klasyfikacji wśród wszystkich klasyfikacji, jest bardzo prostą i bardzo „intuicyjną” miarą, ale może być słabą miarą w przypadku niezrównoważonych danych . Dlaczego nasza intuicja wprowadza nas w błąd i czy są jakieś inne problemy z tym środkiem?

Tim
źródło

Odpowiedzi:

112

Większość innych odpowiedzi skupia się na przykładzie niezrównoważonych klas. Tak, to jest ważne. Uważam jednak, że dokładność jest problematyczna nawet w przypadku klas zrównoważonych.

Frank Harrell napisał o tym na swoim blogu: Klasyfikacja a przewidywanie i szkody spowodowane dokładnością klasyfikacji i innymi nieciągłymi zasadami niewłaściwej punktacji .

Zasadniczo jego argumentem jest to, że element statystyczny twojego ćwiczenia kończy się, gdy podajesz prawdopodobieństwo dla każdej klasy nowej próbki. Mapowanie tych przewidywanych prawdopodobieństw do klasyfikacji 0-1, wybierając próg, poza którym klasyfikować nową obserwację jako 1 vs 0 nie jest częścią statystyk więcej . Jest to część komponentu decyzyjnego . A tutaj potrzebujesz probabilistycznych danych wyjściowych swojego modelu - ale także rozważań takich jak:(p^,1p^)

  • Jakie są konsekwencje podjęcia decyzji o potraktowaniu nowej obserwacji jako klasy 1 vs. 0? Czy następnie wysyłam tanią pocztę marketingową do wszystkich 1? Czy też stosuję inwazyjne leczenie raka z dużymi skutkami ubocznymi?
  • Jakie są konsekwencje traktowania „prawdziwej” 0 jako 1 i odwrotnie? Czy odznaczę klienta? Poddać kogoś niepotrzebnemu leczeniu?
  • Czy moje „klasy” są naprawdę dyskretne? Czy też istnieje kontinuum (np. Ciśnienie krwi), gdzie progi kliniczne są w rzeczywistości tylko skrótami poznawczymi? Jeśli tak, to jak daleko przekraczam próg w przypadku, gdy „klasyfikuję” teraz?
  • A może małe, ale dodatnie prawdopodobieństwo bycia klasą 1 oznacza „zdobądź więcej danych”, „przeprowadź kolejny test”?

W zależności od konsekwencji swojej decyzji, do podjęcia decyzji zastosujesz inny próg. Jeśli operacja jest zabiegiem inwazyjnym, będziesz potrzebować znacznie większego prawdopodobieństwa, aby zakwalifikować pacjenta jako cierpiącego na coś, niż gdyby działaniem było zalecenie dwóch aspiryny. Lub możesz mieć nawet trzy różne decyzje, chociaż są tylko dwie klasy (chory kontra zdrowy): „idź do domu i nie martw się” vs. „przeprowadź kolejny test, ponieważ ta, którą mamy, jest niejednoznaczna„ kontra ”działać natychmiast” .

Prawidłowy sposób oceny przewidywanych prawdopodobienstwo jest nie do porównania ich do progu, mapę im opiera się na progu, a następnie ocenić przekształcone klasyfikacja. Zamiast tego należy stosować odpowiednie . Są to funkcje strat, które odwzorowują przewidywane prawdopodobieństwa i odpowiadające obserwowane wyniki na wartości strat, które są minimalizowane w oczekiwaniu przez prawdziwe prawdopodobieństwa . Chodzi o to, że bierzemy średnią z reguły punktacji ocenianej na podstawie wielu (najlepiej: wielu) zaobserwowanych wyników i odpowiadających im przewidywanych prawdopodobieństw członkostwa w klasie, jako oszacowanie oczekiwań względem reguły punktacji.(p^,1p^)( 0 , 1 ) ( 0 , 1 ), ( s , 1 - P )(0,1)(0,1)(p,1p)

Zwróć uwagę, że „właściwe” ma tutaj dokładnie określone znaczenie - istnieją niewłaściwe reguły punktacji, a także właściwe reguły punktacji i ostatecznie ściśle właściwe reguły punktacji . Reguły punktacji jako takie są funkcjami utraty gęstości predykcyjnych i wyników. Prawidłowe reguły punktacji to reguły punktacji, które są minimalizowane w oczekiwaniu, jeśli gęstość predykcyjna jest gęstością prawdziwą. Ściśle odpowiednie zasady punktacji są reguły punktacji, które są jedynie zminimalizowane w oczekiwaniu, gdy gęstość predykcyjna jest prawdziwa gęstość.

Jak zauważa Frank Harrell , dokładność jest niewłaściwą zasadą punktacji. (Dokładniej mówiąc, dokładność wcale nie jest regułą punktacji : patrz moja odpowiedź na Czy dokładność jest niewłaściwą regułą punktacji w ustawieniach klasyfikacji binarnej? ) Można to zaobserwować np. Jeśli nie mamy żadnych predyktorów i po prostu nieuczciwa moneta z prawdopodobieństwami . Dokładność jest zmaksymalizowana, jeśli sklasyfikujemy wszystko jako pierwszą klasę i całkowicie zignorujemy 40% prawdopodobieństwo, że dowolny wynik może być w drugiej klasie. (Tutaj widzimy, że dokładność jest problematyczna nawet dla klas zrównoważonych). Właściwe będą preferowały niż(0.6,0.4)( 0,6 ; 0,4 ) ( 1 , 0 )(0.6,0.4)(1,0) jeden w oczekiwaniu. W szczególności dokładność jest nieciągła w progu: nieznaczne przesunięcie progu może sprawić, że jedna (lub wiele) prognoz zmieni klasę i zmieni całą dokładność o dyskretną wartość. To nie ma sensu.

Więcej informacji można znaleźć na dwóch postach na blogu Franka, do których prowadzi link powyżej, a także w rozdziale 10 strategii modelowania regresji Franka Harrella .

(Jest to bezwstydnie skopiowane z mojej wcześniejszej odpowiedzi ).


EDYTOWAĆ. Moja odpowiedź na przykład, kiedy użycie dokładności jako miary wyniku doprowadzi do błędnego wniosku, daje nadzieję, że ilustruje przykład, w którym maksymalizacja dokładności może prowadzić do błędnych decyzji nawet dla zrównoważonych klas .

Stephan Kolassa
źródło
6
@ Tymczasowy punkt Franka (który omawiał w wielu odpowiedziach na naszej stronie i gdzie indziej), jak rozumiem, jest taki, że jeśli algorytm klasyfikacji nie zwraca prawdopodobieństwa, to jest śmieciem i nie powinien być używany. Szczerze mówiąc, większość powszechnie używanych algorytmów zwraca prawdopodobieństwo.
ameba
6
Powiedziałbym, że algorytm uwzględniający wcześniejsze obserwacje i generujący tylko klasyfikacje bez uwzględnienia powyższych punktów (np. Koszty błędnych decyzji) łączy aspekt statystyczny i decyzyjny. To tak, jakby ktoś polecił ci konkretny samochód bez uprzedniego pytania, czy chcesz przewieźć małą drużynę baseballową, kilka materiałów budowlanych, czy tylko siebie. Powiedziałbym też, że takim algorytmem byłoby śmieci.
Stephan Kolassa
8
Chciałem napisać odpowiedź, ale nie musiałem. Brawo. Omawiam to z moimi uczniami jako „rozdzielenie obaw” między modelowaniem statystycznym a podejmowaniem decyzji. Ten rodzaj koncepcji jest bardzo głęboko zakorzeniony w kulturze inżynieryjnej.
Matthew Drury,
8
@ łańcuchD: jeśli twój klasyfikator (pamiętaj, że jest to ten z najwyższą dokładnością ) mówi, że „wszyscy w tej próbce są zdrowi”, to jaki lekarz lub analityk uważa, że ​​w tej historii jest coś więcej? Zgadzam się, że ostatecznie wezwanie analityka jest do zrobienia, ale „każdy jest zdrowy” jest dla analityka znacznie mniej pomocny niż coś, co zwraca uwagę na niepewność resztkową, taką jak prognoza 95% / 5%.
Stephan Kolassa
11
Odpowiedzi i komentarze @StephanKolassa są znakomite. Ktoś inny komentarz sugerował, że istnieje różnica w tym, jak to jest postrzegane, w zależności od kultury, której jesteś częścią. Tak nie jest w rzeczywistości; po prostu niektóre dziedziny starały się zrozumieć literaturę, a inne nie. Na przykład prognozy pogody zajmują czołowe miejsce i stosują odpowiednie reguły punktacji do oceny dokładności prognozy od co najmniej 1951 r.
Frank Harrell,
78

Kiedy używamy dokładności, przypisujemy jednakowy koszt fałszywym pozytywom i fałszywym negatywom. Gdy ten zestaw danych jest niezrównoważony - powiedzmy, że ma 99% instancji w jednej klasie i tylko 1% w drugiej - istnieje świetny sposób na obniżenie kosztów. Przewiduj, że każda instancja należy do klasy większości, uzyskaj dokładność 99% i wróć do domu wcześniej.

Problem zaczyna się, gdy rzeczywiste koszty, które przypisujemy do każdego błędu, nie są równe. Jeśli mamy do czynienia z rzadką, ale śmiertelną chorobą, koszt nie zdiagnozowania choroby chorego jest znacznie wyższy niż koszt wysłania zdrowej osoby na więcej badań.

Zasadniczo nie ma ogólnie najlepszej miary. Najlepsza miara wynika z twoich potrzeb. W pewnym sensie nie jest to pytanie dotyczące uczenia maszynowego, ale pytanie biznesowe. Często dwie osoby korzystają z tego samego zestawu danych, ale wybierają różne dane ze względu na różne cele.

Dokładność to świetny wskaźnik. W rzeczywistości większość wskaźników jest świetna i lubię oceniać wiele wskaźników. Jednak w pewnym momencie będziesz musiał zdecydować się na użycie modelu A lub B. Tam powinieneś użyć jednej metryki, która najlepiej odpowiada Twoim potrzebom.

Aby uzyskać dodatkowy kredyt, wybierz tę metrykę przed analizą, aby nie rozpraszać się przy podejmowaniu decyzji.

DaL
źródło
3
Świetna odpowiedź - zaproponowałem kilka zmian, aby spróbować wyjaśnić początkującym w uczeniu maszynowym (do kogo skierowane jest to pytanie).
nekomatic
1
Nie zgadzam się, że nie jest to problem uczenia maszynowego. Ale zajęcie się tym wymagałoby uczenia maszynowego meta problemu i wymagałoby, aby maszyna miała dostęp do pewnego rodzaju danych wykraczających poza podstawowe informacje klasyfikacyjne.
Shufflepants
3
Nie uważam tego za funkcję tylko danych, ponieważ różne cele mogą prowadzić do różnych kosztów / modelu / wydajności / wskaźników. Zgadzam się, że ogólnie kwestię kosztów można rozwiązać matematycznie. Jednak pytania takie jak koszty leczenia pacjentów opierają się na zupełnie innych informacjach. Te informacje potrzebne do metadanych zwykle nie są odpowiednie dla metodologii uczenia maszynowego, więc przez większość czasu są przetwarzane różnymi metodami.
DaL
2
Przez „misdiagnosing osoby z chorobą”, masz na myśli „misdiagnosing osobę , która ma chorobę (jako nie mający chorobę)”, prawda? Ponieważ to zdanie można interpretować w obu kierunkach.
Tanner Swett
Masz rację Tanner. Zmieniłem test, aby był bardziej przejrzysty.
DaL
20

Problem z dokładnością

Standardowa dokładność jest zdefiniowana jako stosunek poprawnych klasyfikacji do liczby dokonanych klasyfikacji.

accuracy:=correct classificationsnumber of classifications

Jest to zatem ogólna miara dla wszystkich klas i jak wkrótce zobaczymy, nie jest dobrą miarą powiedzieć wyrocznię oprócz rzeczywistego przydatnego testu. Wyrocznia to funkcja klasyfikacji, która zwraca losowe przypuszczenie dla każdej próbki. Podobnie, chcemy być w stanie ocenić wydajność klasyfikacyjną naszej funkcji klasyfikacyjnej. Dokładność \ textit {może} być użyteczną miarą, jeśli mamy taką samą liczbę próbek na klasę, ale jeśli mamy niezrównoważony zestaw dokładności próbek, wcale nie jest przydatny. Co więcej, test może mieć wysoką dokładność, ale w rzeczywistości działa gorzej niż test o niższej dokładności.

ABC0.9

classify(sample):={Aif 

classify

classify(sample):=guess{Awith p =0.96Bwith p =0.02Cwith p =0.02

0.960.9+0.020.052=0.866Aclassify

Dokładność według klasy

accuracy:=correct/(correct+incorrect)A1.00A0.331.000.00>0.5AABA

Czułość i swoistość

W testach medycznych czułość definiuje się jako stosunek osób prawidłowo zidentyfikowanych jako cierpiące na chorobę do liczby osób faktycznie chorujących. Swoistość definiuje się jako stosunek osób prawidłowo zidentyfikowanych jako zdrowe do liczby osób, które są faktycznie zdrowe. Liczba osób faktycznie cierpiących na tę chorobę to liczba prawdziwie pozytywnych wyników testu plus liczba wyników fałszywie ujemnych. Liczba faktycznie zdrowych osób to liczba wyników prawdziwie ujemnych plus liczba wyników fałszywie dodatnich.

Klasyfikacja binarna

PNTnnFnn

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ

sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ

sensitivityα=specificityβspecificityα=sensitivityβ. Oznacza to, że jeśli mamy tylko dwie klasy, nie potrzebujemy czułości i specyficzności na klasę.

Klasyfikacja N-Ary

Czułość i specyficzność na klasę nie jest przydatna, jeśli mamy tylko dwie klasy, ale możemy rozszerzyć ją na wiele klas. Czułość i swoistość definiuje się jako:

sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives

Tni(Fn,i)i(Fi,n)ni(Ti)T(n)nni(k(Fi,k))nni(Fn,i)ni(Fi,n)i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n). Podsumowując, mamy:

true positives:=Tntrue negatives:=i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)false positives:=i(Fi,n)false negatives:=i(Fn,i)

sensitivity(n):=TnTn+i(Fn,i)specificity(n):=i(Ti)Tn+i(k(Fi,k))i(Fn,i)i(Fi,n)i(Ti)Tn+i(k(Fi,k))i(Fn,i)

Wprowadzenie zaufania

confidenceTn+i(Fi,n)nTn

confidence(n):=TnTn+i(Fi,n)

confidencenn

i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)

confidence(n)=i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)i(k(Fi,k))i(Fi,n)+i(Ti)Tn

mroman
źródło
Czy możesz podać przykład obliczenia średniej dokładności przy użyciu macierzy pomyłek?
Aadnan Farooq A
Bardziej szczegółowy opis z przykładami można znaleźć tutaj: mroman.ch/guides/sensspec.html
mroman
Czytając go ponownie, wystąpił błąd w definicji ufności. Dziwię się, że nikt tego nie zauważył. Naprawię to za kilka dni.
mroman
8

Niezrównoważone klasy w zbiorze danych

Krótko mówiąc: wyobraź sobie, że 99% jednej klasy (powiedzmy jabłek) i 1% innej klasy znajduje się w twoim zestawie danych (powiedzmy banany). Mój algorytm superduperingu uzyskuje zadziwiającą 99% dokładność dla tego zestawu danych, sprawdź to:

return "it's an apple"

Będzie miał rację w 99% przypadków i dlatego uzyska 99% dokładności. Czy mogę sprzedać ci mój algorytm?

Rozwiązanie: nie używaj miary bezwzględnej (dokładności), ale miary odnoszącej się do każdej klasy (istnieje wiele takich czynników, jak ROC AUC)

Mayou36
źródło
Nie, AUC również nie jest odpowiednie dla niezrównoważonego zestawu danych.
SiXUlm
@SiXUlm, możesz to rozwinąć?
Mayou36,
P(D)/P(DC)P(T|D)P(F|DC)
Bardziej przejrzystą ilustrację można znaleźć tutaj: quora.com/… . Zobacz odpowiedź Jerry'ego Ma.
SiXUlm
Nadal nie rozumiem twojego zdania. Czy nie to (w tym Quora) to, co mówię w rozwiązaniu i dokładnie wspiera moją odpowiedź? Chodzi o to, że priorytety nie powinny wpływać na metrykę mierzącą wydajność sieci. To, co jest właściwe, zależy całkowicie od twojego problemu, np. Najlepiej jest zoptymalizować dla każdego możliwego cięcia . Daj mi więc znać: a) skoro jest niezmienny w stosunku do priorów, ale wrażliwy na wydajność, dlaczego jest to nieodpowiednie? b) co jeszcze można by pomyśleć, jest właściwe lub których charakterystyka jest wymagana?
Mayou36,
2

Odpowiedź DaL jest właśnie taka. Zilustruję to bardzo prostym przykładem na temat ... sprzedaży jaj.

21

21

Jeśli twój klasyfikator nie pomyli się, otrzymasz maksymalny przychód, jakiego możesz oczekiwać. Jeśli nie jest idealny, to:

  • 1
  • 1

Zatem dokładność twojego klasyfikatora jest dokładnie, jak blisko jesteś maksymalnych przychodów. To idealna miara.

a

  • a
  • 2a

a=0.00120.001

Jeśli na przykład klasyfikator dotyczy znalezienia odpowiednich dokumentów w bazie danych, możesz porównać „ile” marnowania czasu na czytanie nieistotnego dokumentu w porównaniu do znalezienia odpowiedniego dokumentu.

Benoit Sanchez
źródło
1

Dokładność klasyfikacji to liczba poprawnych prognoz podzielona przez całkowitą liczbę prognoz.

Dokładność może wprowadzać w błąd. Na przykład w przypadku problemu, w którym występuje duża nierównowaga klasy, model może przewidzieć wartość klasy większości dla wszystkich prognoz i osiągnąć wysoką dokładność klasyfikacji. Potrzebne są więc dalsze miary wydajności, takie jak wynik F1 i wynik Briera.

jeza
źródło
-3

R2

R2

Jak zauważyli inni, innym problemem z dokładnością jest ukryta obojętność na cenę niepowodzenia - tj. Założenie, że wszystkie błędne klasyfikacje są równe. W praktyce tak nie jest, a koszty uzyskania niewłaściwej klasyfikacji zależą w dużym stopniu od podmiotu i możesz preferować minimalizację określonego rodzaju pomyłki niż maksymalizację dokładności.

James
źródło
2
Szum. (1) Chciałbym założyć, że oceniając trafność lub inny metryczny out-of-sample byłoby zrozumiałe, tak naprawdę nie zobaczyć, jak dokładność ma bardziej konkretnego problemu nadmiernego dopasowania . (2) jeśli zastosujesz model wyszkolony w populacji A do innej populacji B, wówczas porównasz jabłka z pomarańczami, a ja tak naprawdę nie rozumiem, w jaki sposób jest to konkretny problem z dokładnością .
Stephan Kolassa
(1) Niemniej jednak jest to problem z dokładnością, a pytanie dotyczy wykorzystania dokładności jako złotego standardu. (2) Celem zbudowania klasyfikatora jest użycie go na pomarańczach, a nie tylko na jabłkach. Powinien być na tyle ogólny, aby przechwytywać niezbędne sygnały w danych (takie, że one istnieją), a nie być katechizmem dla danych treningowych.
James