Średnia średnia vs Średnia średnia w ustawieniu klasyfikacji wieloklasowej

102

Próbuję ustawienia klasyfikacji wieloklasowej z 3 klasami. Rozkład klas jest wypaczony, a większość danych należy do jednej z 3 klas. (etykiety klas to 1,2,3, przy 67,28% danych należących do klasy 1, 11,99% danych w klasie 2 i pozostałe w klasie 3)

Uczę klasyfikatora wieloklasowego w tym zestawie danych i uzyskuję następującą wydajność:

                    Precision           Recall           F1-Score
Micro Average       0.731               0.731            0.731
Macro Average       0.679               0.529            0.565

Nie jestem pewien, dlaczego wszystkie Śr. Micro. wyniki są równe, a także dlaczego wyniki średniej makro są tak niskie.

SHASHANK GUPTA
źródło
1
nie możesz spojrzeć na poszczególne prawdziwe pozytywy itp. przed uśrednieniem? również średnie makro są zwykle niższe niż mikro średnie
oW_
Czy miary F i mikro są specyficzne dla klasyfikacji lub wyszukiwania tekstu, czy mogą być wykorzystane do dowolnego rozpoznania lub problemu z klasyfikacją ... Jeśli tak, to gdzie możemy uzyskać znaczenie każdego lub każdego innego
odwołania
1
Czy mikroprecyzyjna precyzja nie jest tym samym co dokładność zbioru danych? Z tego, co rozumiem, dla Micro Average Precision obliczasz sumę wszystkich wartości prawdziwie dodatnich i dzielisz ją przez sumę wszystkich wartości prawdziwie dodatnich plus sumę wszystkich wyników fałszywie dodatnich. Zasadniczo dzielisz liczbę poprawnie zidentyfikowanych prognoz przez całkowitą liczbę prognoz. Gdzie to się różni od obliczeń dokładności? Dlaczego potrzebujemy nowego specjalnego terminu na precyzję, który komplikuje sprawy zamiast po prostu trzymać się wartości dokładności? Proszę, udowodnij, że się mylę, bym mogła spać spokojnie.
Nico Zettler,
1
@NicoZettler Masz rację. Dokładność mikro uśredniona i przywoływanie mikro uśrednione są równe dokładności, gdy każdy punkt danych jest przypisany do dokładnie jednej klasy. Jeśli chodzi o twoje drugie pytanie, mierniki mikro uśrednione różnią się od ogólnej dokładności, gdy klasyfikacje są oznaczone wieloma etykietami (do każdego punktu danych można przypisać więcej niż jedną etykietę) i / lub gdy niektóre klasy są wykluczone w przypadku wielu klas. Zobacz scikit-learn.org/stable/modules/… .
Johnson

Odpowiedzi:

144

Średnie mikro i makro (dla dowolnej metryki) obliczą nieco inne rzeczy, a zatem ich interpretacja jest różna. Makrośrednia obliczy metrykę niezależnie dla każdej klasy, a następnie weźmie średnią (stąd równe traktowanie wszystkich klas), podczas gdy mikro-średnia zsumuje udziały wszystkich klas w celu obliczenia średniej metryki. W konfiguracji klasyfikacji wieloklasowej preferowana jest mikro-średnia, jeśli podejrzewasz, że może wystąpić nierównowaga klas (tzn. Możesz mieć o wiele więcej przykładów jednej klasy niż innych klas).

Aby zilustrować dlaczego, weźmy na przykład precyzję . Wyobraźmy sobie, że masz system klasyfikacji jeden do wszystkich (na przykład jest tylko jedna poprawna klasa wyjściowa) wieloklasowy system klasyfikacji z czterema klasami i następującymi liczbami podczas testowania:Pr=TP(TP+FP)

  • Klasa A: 1 TP i 1 FP
  • Klasa B: 10 TP i 90 FP
  • Klasa C: 1 TP i 1 FP
  • Klasa D: 1 TP i 1 FP

Łatwo można zauważyć, że , podczas gdy .PrA=PrC=PrD=0.5PrB=0.1

  • Następnie oblicza się średnią makro:Pr=0.5+0.1+0.5+0.54=0.4
  • Obliczona zostanie mikro-średnia:Pr=1+10+1+12+100+2+2=0.123

Są to zupełnie inne wartości precyzji. Intuicyjnie, w makro-średniej „dobra” precyzja (0,5) klas A, C i D przyczynia się do utrzymania „przyzwoitej” ogólnej precyzji (0,4). Choć technicznie jest to prawdą (dla wszystkich klas, średnia precyzja wynosi 0,4), jest to nieco mylące, ponieważ duża liczba przykładów nie jest odpowiednio sklasyfikowana. Przykłady te w przeważającej części odpowiadają klasie B, więc stanowią jedynie 1/4 wartości średniej, mimo że stanowią 94,3% danych testowych. Mikro-średnia odpowiednio wychwyci nierównowagę tej klasy i obniży ogólną średnią precyzji do 0,123 (więcej w stosunku do precyzji dominującej klasy B (0,1)).

Ze względów obliczeniowych czasem wygodniej jest obliczyć średnie klasowe, a następnie je makro-średnie. Jeśli wiadomo, że nierównowaga klas jest problemem, istnieje kilka sposobów jej rozwiązania. Jednym z nich jest zgłoszenie nie tylko średniej makro, ale także jej odchylenia standardowego (dla 3 lub więcej klas). Innym jest obliczenie ważonej makro-średniej, w której każdy udział klasy w średniej jest ważony przez względną liczbę dostępnych dla niego przykładów. W powyższym scenariuszu uzyskujemy:

Prmacromean=0.25·0.5+0.25·0.1+0.25·0.5+0.25·0.5=0.4 Prmacrostdev=0.173

Prmacroweighted=0.0189·0.5+0.943·0.1+0.0189·0.5+0.0189·0.5=0.009+0.094+0.009+0.009=0.123

Duże odchylenie standardowe (0,173) mówi nam już, że średnia 0,4 nie wynika z jednolitej precyzji między klasami, ale może być po prostu łatwiej obliczyć ważoną makro-średnią, co w gruncie rzeczy jest innym sposobem obliczania mikro-średniej .

pythiest
źródło
10
Ta odpowiedź zasługuje na więcej głosów pozytywnych, ponieważ pomaga zrozumieć, dlaczego mikro i makro zachowują się inaczej, zamiast tylko wymieniać formuły (i jest to oryginalna treść).
steffen
2
Jak to wyjaśnia różne wartości makr w pierwotnym pytaniu?
shakedzy
3
Jeśli przerzucisz scenariusz naszkicowany w odpowiedzi, a duża klasa osiąga lepsze wyniki niż małe, możesz spodziewać się, że średnia mikro będzie wyższa niż średnia makro (co jest zachowaniem opisanym w pytaniu). To, że wartości makr są różne, jest mniej lub bardziej spodziewane, ponieważ mierzysz różne rzeczy (precyzja, przypominanie ...). Pytanie, dlaczego mikro średnie są takie same.
pythiest
4
Nie zgadzam się ze stwierdzeniem, że w przypadku niezrównoważonych zestawów danych mikroprzeciętność powinna być lepsza niż makro. W rzeczywistości, dla wyników F, makro jest lepsze niż mikro, ponieważ pierwsze daje równe znaczenie każdej klasie, podczas gdy drugie daje równe znaczenie każdej próbce (co oznacza, że ​​im większa liczba próbek, tym więcej mówi, że ma to wynik końcowy faworyzowanie większości klas, podobnie jak dokładność). Źródła: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha
3
Czy „ważona makro-średnia” zawsze będzie równa mikro średniej? W Scikit-Learn definicja „ważonej” jest nieco inna: „Oblicz metryki dla każdej etykiety i znajdź ich średnią ważoną według wsparcia (liczba prawdziwych wystąpień dla każdej etykiety)”. Z dokumentacji wyników F1.
willk
20

Oryginalny post - http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html


W metodzie mikro-średniej sumuje się poszczególne prawdziwe pozytywy, fałszywie dodatnie i fałszywe negatywy systemu dla różnych zbiorów i stosuje się je, aby uzyskać statystyki.

Podstępne, ale uważam to za bardzo interesujące. Istnieją dwie metody uzyskiwania takiej średniej statystyki wyszukiwania i klasyfikacji informacji.

1. Metoda mikro-średnia

W metodzie mikro-średniej sumuje się poszczególne prawdziwe pozytywy, fałszywie dodatnie i fałszywe negatywy systemu dla różnych zbiorów i stosuje się je, aby uzyskać statystyki. Na przykład dla zestawu danych system

True positive (TP1)  = 12
False positive (FP1) = 9
False negative (FN1) = 3

Wtedy precyzja (P1) i przywołanie (R1) będą wynosić i57.14%=TP1TP1+FP180%=TP1TP1+FN1

i dla innego zestawu danych, systemu

True positive (TP2)  = 50
False positive (FP2) = 23
False negative (FN2) = 9

Wtedy precyzja (P2) i wycofanie (R2) będą wynosić 68,49 i 84,75

Teraz średnia precyzja i przywracanie systemu za pomocą metody mikro-średniej wynosi

Micro-average of precision=TP1+TP2TP1+TP2+FP1+FP2=12+5012+50+9+23=65.96

Micro-average of recall=TP1+TP2TP1+TP2+FN1+FN2=12+5012+50+3+9=83.78

Mikro-średnia F-score będzie po prostu średnią harmoniczną tych dwóch liczb.

2. Metoda makro-średnia

Metoda jest prosta. Wystarczy wziąć średnią precyzji i przywołać system w różnych zestawach. Na przykład makro-średnia precyzja i przywołanie systemu dla podanego przykładu wynosi

Macro-average precision=P1+P22=57.14+68.492=62.82 Macro-average recall=R1+R22=80+84.752=82.25

Makro-średnia F-score będzie po prostu średnią harmoniczną tych dwóch liczb.

Przydatność Można zastosować metodę średniej makro, jeśli chcesz wiedzieć, jak system ogólnie działa na wszystkich zestawach danych. Przy tej średniej nie powinieneś podejmować żadnej konkretnej decyzji.

Z drugiej strony mikro-średnia może być użyteczną miarą, gdy zestaw danych różni się rozmiarem.

Rahul Reddy Vemireddy
źródło
21
czy zasługujesz na uznanie tego posta na blogu ?
xiaohan2012
3
Tak @ xiaohan2012, właśnie skopiował odpowiedź.
Manuel G
To była moja pierwsza odpowiedź na temat przepełnienia stosu, nie byłem całkiem pewien, jak to zrobić. Czy możesz zasugerować edycję. Zaakceptuję to. Dzięki
Rahul Reddy Vemireddy
Warto zauważyć, że wynik F1 niekoniecznie jest taki sam, jak powszechnie stosowany średni wynik F1 (taki jak zaimplementowany w scikit lub opisany w tym artykule ). Zazwyczaj wynik F1 jest obliczany dla każdej klasy / zestawu osobno, a następnie średnia jest obliczana na podstawie różnych wyników F1 (w tym przypadku odbywa się to w odwrotny sposób: najpierw oblicza się średnią / precyzję makrofotograficzną, a następnie wynik F1 ).
Milania,
11

W ustawieniach wieloklasowych precyzja i uśrednianie mikro zawsze są takie same.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc
gdzie c jest etykietą klasy.

Ponieważ w ustawieniach wielu klas zliczasz wszystkie fałszywe instancje, okazuje się, że

cFPc=cFNc

Stąd P = R. Innymi słowy, każda pojedyncza Fałszywa Prognoza będzie Fałszywym Pozytywem dla klasy, a każdy Pojedynczy Negatyw będzie Fałszywym Negatywem dla klasy. Jeśli potraktujesz przypadek klasyfikacji binarnej jako klasyfikację dwuklasową i obliczysz mikro-uśrednioną precyzję i przypomnisz sobie, że będą takie same.

Odpowiedź udzielona przez Rahula dotyczy uśrednienia binarnej precyzji i przywołania z wielu zestawów danych. W takim przypadku precyzja mikro i uśrednianie są różne.

David Makovoz
źródło
2

Tak powinno być. Miałem taki sam wynik dla moich badań. Z początku wydawało się to dziwne. Jednak precyzja i przywołanie powinny być takie same, a mikro-uśrednianie wyniku klasyfikatora z pojedynczą etykietą. Dzieje się tak, ponieważ jeśli weźmiesz pod uwagę błędną klasyfikację c1 = c2 (gdzie c1 i c2 to 2 różne klasy), błędna klasyfikacja jest fałszywie dodatnia (fp) w odniesieniu do c2 i fałszywie ujemna (fn) w odniesieniu do c1. Jeśli zsumujesz fn i fp dla wszystkich klas, otrzymasz ten sam numer, ponieważ liczysz każde błędne klasyfikowanie jako fp w odniesieniu do jednej klasy i fn w odniesieniu do innej klasy.

Saghan Mudbhari
źródło
0

Myślę, że powód, dla którego średnia makro jest niższa niż mikro średnia, jest dobrze wyjaśniony odpowiedzią pytającego (klasa dominująca ma lepsze przewidywania, a więc wzrost mikro średniej).

Ale fakt, że mikro średnia jest równa w przypadku Precyzji, Wycofania i F1, wynika z tego, że mikro uśrednianie tych wskaźników daje ogólną Dokładność (ponieważ mikro śr. Uznaje wszystkie klasy za dodatnie). Pamiętaj, że jeśli Precyzja i Przywołanie są równe, wynik F1 jest po prostu równy precyzji / przywołaniu.

Co do pytania, czy „ważona makro-średnia” zawsze będzie równa „mikro-średniej”? Zrobiłem kilka eksperymentów z innym nie. klas i różnych nierównowag klasowych i okazuje się, że nie jest to konieczne, prawda.

Stwierdzenia te zostały przyjęte przy założeniu, że rozważamy wszystkie klasy tego samego zestawu danych (w przeciwieństwie do odpowiedzi Rahula Reddy'ego Vemireddy'ego)

goyuiitv
źródło
0

zaletą korzystania z oceny makro F1 jest to, że nadaje ona jednakową wagę wszystkim punktom danych, na przykład: pomyślmy o tym, ponieważ mikrofon F1 pobiera sumę wszystkich wywołań i precesji różnych etykiet niezależnie, więc gdy mamy nierównowagę klas jak T1 = 90%, T2 = 80%, T3 = 5, a następnie F1 Micro przypisuje jednakową wagę całej klasie i nie ma na nią wpływu odchylenie w rozkładzie dziennika klasy, utrata logu powoduje karę za małe odchylenia w klasie

Sujit Jena
źródło