Micro Average vs Macro Average Performance in einer Klassifizierungseinstellung für mehrere Klassen

102

Ich probiere eine Klassifizierungseinstellung für mehrere Klassen mit 3 Klassen aus. Die Klassenverteilung ist verzerrt, wobei die meisten Daten in eine der drei Klassen fallen. (Klassenbeschriftungen sind 1,2,3, wobei 67,28% der Daten in Klassenbeschriftung 1 fallen, 11,99% in Klasse 2 und in Klasse 3 verbleiben)

Ich trainiere einen Klassifikator für mehrere Klassen mit diesem Datensatz und erhalte die folgende Leistung:

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

Ich bin mir nicht sicher, warum alle Micro Avg. Leistungen sind gleich und auch, warum Macro durchschnittliche Leistungen so niedrig sind.

SHASHANK GUPTA
quelle
1
Können Sie nicht die einzelnen wahren Positiven usw. vor der Mittelwertbildung betrachten? Außerdem sind die Makro-Durchschnittswerte in der Regel niedriger als die Mikro-Durchschnittswerte
oW_
Gibt es Mikro- und Makro-F-Kennzahlen, die spezifisch für die Klassifizierung oder das Abrufen von Text sind, oder die für jedes Erkennungs- oder Klassifizierungsproblem verwendet werden können ... Wenn ja, wo können wir die Bedeutung jeder oder jeder anderen Referenz ermitteln ...
IDRES
1
Ist die Micro Average Precision nicht gleich der Genauigkeit eines Datensatzes? Soweit ich weiß, berechnen Sie für Micro Average Precision die Summe aller wahren Positiven und dividieren sie durch die Summe aller wahren Positiven plus der Summe aller falschen Positiven. Im Grunde dividieren Sie die Anzahl der korrekt identifizierten Vorhersagen durch die Gesamtzahl der Vorhersagen. Wo unterscheidet sich das von der Genauigkeitsberechnung? Warum brauchen wir einen neuen speziellen Präzisionsbegriff, der die Dinge komplizierter macht, anstatt nur an dem Genauigkeitswert festzuhalten? Bitte beweise mir das Gegenteil, damit ich ruhig schlafen kann.
Nico Zettler
1
@NicoZettler Du bist richtig. Die mikro-gemittelte Genauigkeit und der mikro-gemittelte Abruf entsprechen der Genauigkeit, wenn jeder Datenpunkt genau einer Klasse zugeordnet ist. Was Ihre zweite Frage betrifft, unterscheiden sich mikro-gemittelte Metriken von der Gesamtgenauigkeit, wenn die Klassifizierungen mehrfach beschriftet sind (jeder Datenpunkt kann mehr als eine Beschriftung haben) und / oder wenn einige Klassen im Mehrklassenfall ausgeschlossen sind. Siehe scikit-learn.org/stable/modules/… .
Johnson

Antworten:

144

Mikro- und Makrodurchschnitte (für welche Metrik auch immer) berechnen leicht unterschiedliche Dinge, und daher ist ihre Interpretation unterschiedlich. Ein Makro-Durchschnitt berechnet die Metrik unabhängig für jede Klasse und nimmt dann den Durchschnitt (wodurch alle Klassen gleich behandelt werden), während ein Mikro-Durchschnitt die Beiträge aller Klassen aggregiert, um die durchschnittliche Metrik zu berechnen. In einem Klassifikationsaufbau mit mehreren Klassen ist der Mikromittelwert vorzuziehen, wenn Sie vermuten, dass ein Klassenungleichgewicht vorliegt (dh Sie haben möglicherweise viel mehr Beispiele für eine Klasse als für andere Klassen).

Um zu veranschaulichen, warum, nehmen wir zum Beispiel die Genauigkeit . Stellen wir uns vor, Sie haben einEin-gegen-Alles-Klassifizierungssystem (es gibt nur eine korrekte Klassenausgabe pro Beispiel) mit vier Klassen und den folgenden Zahlen, wenn Sie getestet werden:Pr=TP(TP+FP)

  • Klasse A: 1 TP und 1 FP
  • Klasse B: 10 TP und 90 FP
  • Klasse C: 1 TP und 1 FP
  • Klasse D: 1 TP und 1 FP

Sie können leicht erkennen, dass , während P r B = 0,1 ist .PrEIN=PrC=PrD=0,5PrB=0,1

  • Ein Makrodurchschnitt berechnet dann: Pr=0,5+0,1+0,5+0,54=0,4
  • Ein Mikromittelwert berechnet: Pr=1+10+1+12+100+2+2=0,123

Dies sind ganz andere Werte für die Präzision. Intuitiv trägt im Makro-Durchschnitt die "gute" Genauigkeit (0,5) der Klassen A, C und D dazu bei, eine "anständige" Gesamtgenauigkeit (0,4) aufrechtzuerhalten. Dies ist zwar technisch richtig (klassenübergreifend liegt die durchschnittliche Genauigkeit bei 0,4), aber etwas irreführend, da eine große Anzahl von Beispielen nicht richtig klassifiziert ist. Diese Beispiele entsprechen überwiegend der Klasse B, tragen also nur zu einem Viertel zum Durchschnitt bei, obwohl sie 94,3% Ihrer Testdaten ausmachen. Der Mikro-Durchschnitt wird dieses Klassenungleichgewicht angemessen erfassen und den Gesamtpräzisionsdurchschnitt auf 0,123 senken (mehr in Übereinstimmung mit der Präzision der dominierenden Klasse B (0,1)).

Aus rechnerischen Gründen kann es manchmal praktischer sein, Klassenmittelwerte zu berechnen und diese dann mit Hilfe von Makros zu mitteln. Wenn das Klassenungleichgewicht bekanntermaßen ein Problem darstellt, gibt es mehrere Möglichkeiten, es zu umgehen. Eine besteht darin, nicht nur den Makro-Durchschnitt, sondern auch seine Standardabweichung (für 3 oder mehr Klassen) zu melden. Zum anderen wird ein gewichteter Makrodurchschnitt berechnet, bei dem jeder Klassenbeitrag zum Durchschnitt mit der relativen Anzahl der dafür verfügbaren Beispiele gewichtet wird. Im obigen Szenario erhalten wir:

PrmeincrO-meeinn=0,25·0,5+0,25·0,1+0,25·0,5+0,25·0,5=0,4 PrmeincrO-stdev=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

Die große Standardabweichung (0,173) zeigt bereits, dass der Durchschnitt von 0,4 nicht auf einer einheitlichen Genauigkeit zwischen Klassen beruht, sondern dass es möglicherweise einfacher ist, den gewichteten Makrodurchschnitt zu berechnen, der im Wesentlichen eine andere Methode zur Berechnung des Mikrodurchschnitts darstellt .

pythiest
quelle
10
Diese Antwort verdient mehr Gegenstimmen, da sie hilft, ein Verständnis dafür zu entwickeln, warum sich Mikro und Makro unterschiedlich verhalten, anstatt nur die Formeln aufzulisten (und es handelt sich um Originalinhalte).
Steffen
2
Wie erklärt dies die verschiedenen Makrowerte in der ursprünglichen Frage?
Shakedzy
3
Wenn Sie das in der Antwort skizzierte Szenario umdrehen und die große Klasse eine bessere Leistung als die kleine Klasse erzielen, erwarten Sie, dass der Mikrodurchschnitt über dem Makrodurchschnitt liegt (das ist das in der Frage angegebene Verhalten). Dass die Makro-Werte unterschiedlich sind, ist mehr oder weniger zu erwarten, da Sie verschiedene Dinge messen (Präzision, Rückruf ...). Warum die Mikrodurchschnitte alle gleich sind, glaube ich, ist die Frage.
pythiest
4
Ich bin mit der Aussage nicht einverstanden, dass bei unausgeglichenen Datensätzen der Mikro-Durchschnitt dem Makro vorgezogen werden sollte. Tatsächlich wird für F-Scores Makro gegenüber Mikro bevorzugt, da das erstere jeder Klasse die gleiche Wichtigkeit verleiht, während das spätere jeder Stichprobe die gleiche Wichtigkeit verleiht (was bedeutet, je mehr Stichproben vorhanden sind, desto mehr Aussagen hat es in der Endnote Bevorzugung von Mehrheitsklassen ähnlich wie Genauigkeit). Quellen: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha
3
Wird der "gewichtete Makrodurchschnitt" immer dem Mikrodurchschnitt entsprechen? In Scikit-Learn unterscheidet sich die Definition von "gewichtet" geringfügig: "Berechnen Sie Metriken für jedes Etikett und ermitteln Sie deren Durchschnitt, gewichtet nach Unterstützung (die Anzahl der wahren Instanzen für jedes Etikett)." Aus den Dokumenten für F1 Score.
Willk
20

Ursprünglicher Beitrag - http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html


Bei der Mikrodurchschnittsmethode addieren Sie die einzelnen wahren, falschen und falschen Positiven des Systems für verschiedene Mengen und wenden sie an, um die Statistiken zu erhalten.

Tricky, aber ich fand das sehr interessant. Es gibt zwei Methoden, mit denen Sie eine solche Durchschnittsstatistik für das Abrufen und Klassifizieren von Informationen erhalten können.

1. Mikrodurchschnittsmethode

Bei der Mikrodurchschnittsmethode addieren Sie die einzelnen wahren, falschen und falschen Positiven des Systems für verschiedene Mengen und wenden sie an, um die Statistiken zu erhalten. Zum Beispiel für einen Datensatz das System

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

57.14%=TP1TP1+FP180%=TP1TP1+FN1

und für einen anderen Datensatz das System

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

Dann sind Präzision (P2) und Rückruf (R2) 68,49 und 84,75

Nun ist die durchschnittliche Genauigkeit und der Abruf des Systems unter Verwendung der Mikro-Durchschnittsmethode

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

Mikrodurchschnitt des Rückrufs=TP1+TP2TP1+TP2+FN1+FN2=12+5012+50+3+9=83,78

Der mikro-durchschnittliche F-Score ist einfach das harmonische Mittel dieser beiden Zahlen.

2. Makrodurchschnittsmethode

Die Methode ist einfach. Nehmen Sie einfach den Durchschnitt der Präzision und des Abrufs des Systems an verschiedenen Sets. Zum Beispiel ist die makrodurchschnittliche Genauigkeit und der Abruf des Systems für das gegebene Beispiel

Makrodurchschnittliche Präzision=P1+P22=57,14+68,492=62,82 Makro-durchschnittlicher Rückruf=R1+R22=80+84,752=82,25

Der makrodurchschnittliche F-Score ist einfach das harmonische Mittel dieser beiden Zahlen.

Eignung Die Makrodurchschnittsmethode kann verwendet werden, wenn Sie wissen möchten, wie sich das System über alle Datensätze hinweg insgesamt verhält. Sie sollten mit diesem Durchschnitt keine konkrete Entscheidung treffen.

Auf der anderen Seite kann der Mikrodurchschnitt ein nützliches Maß sein, wenn Ihr Datensatz in der Größe variiert.

Rahul Reddy Vemireddy
quelle
21
Solltest du diesem Blog-Beitrag etwas Gutes tun ?
xiaohan2012
3
Yeah @ xiaohan2012, er hat die Antwort einfach kopiert.
Manuel G
Dies war meine erste Antwort zum Thema Stapelüberlauf. Ich war mir nicht sicher, wie ich das machen sollte. Kannst du eine Änderung vorschlagen? Ich werde es akzeptieren. Vielen Dank
Rahul Reddy Vemireddy
Es könnte erwähnenswert, dass die F1-Score hier nicht notwendigerweise die gleiche ist wie der Makro gemittelt F1 - Score häufig verwendete (wie in implementiert scikit oder in diesem beschriebenen Papier ). Normalerweise wird die F1-Punktzahl für jede Klasse / jeden Satz separat berechnet und dann der Durchschnitt aus den verschiedenen F1-Punkten berechnet (hier wird in umgekehrter Reihenfolge vorgegangen: zuerst die makrogemittelte Genauigkeit / Rückruf und dann die F1-Punktzahl ).
Milania
11

In einer Multiklasseneinstellung sind mikro-gemittelte Präzision und Abruf immer gleich.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc

cFPc=cFNc

Daher ist P = R. Mit anderen Worten, jede einzelne falsche Vorhersage ist ein falsches Positiv für eine Klasse, und jedes einzelne Negativ ist ein falsches Negativ für eine Klasse. Wenn Sie einen Binärklassifizierungsfall als Zweiklassenklassifizierung behandeln und die mikro-gemittelte Genauigkeit berechnen und zurückrufen, sind sie gleich.

Die Antwort von Rahul ist im Fall der Mittelung der binären Genauigkeit und des Rückrufs aus mehreren Datensätzen. In diesem Fall unterscheiden sich die mikro-gemittelte Genauigkeit und der Abruf.

David Makovoz
quelle
2

Das ist wie es sein sollte. Ich hatte das gleiche Ergebnis für meine Forschung. Anfangs wirkte es komisch. Bei der Mikro-Mittelung des Ergebnisses eines Mehrklassen-Einzeletiketten-Klassifikators sollten jedoch Präzision und Abruf gleich sein. Wenn Sie eine Fehlklassifizierung c1 = c2 betrachten (wobei c1 und c2 zwei verschiedene Klassen sind), ist die Fehlklassifizierung in Bezug auf c2 falsch positiv (fp) und in Bezug auf c1 falsch negativ (fn). Wenn Sie fn und fp für alle Klassen summieren, erhalten Sie die gleiche Zahl, da Sie jede Fehlklassifizierung für eine Klasse als fp und für eine andere Klasse als fn zählen.

Saghan Mudbhari
quelle
0

Ich denke, der Grund, warum der Makrodurchschnitt unter dem Mikrodurchschnitt liegt, lässt sich gut durch die Antwort von Pythiest erklären (die dominierende Klasse hat bessere Vorhersagen und daher steigt der Mikrodurchschnitt).

Die Tatsache, dass der Mikrodurchschnitt für Präzision, Rückruf und F1-Punktzahl gleich ist, ist darauf zurückzuführen, dass die Mikrodurchschnittsberechnung dieser Metriken zu einer Gesamtgenauigkeit führt (da der Mikrodurchschnitt alle Klassen als positiv betrachtet). Beachten Sie, dass wenn Präzision und Wiederaufruf gleich sind, die F1-Punktzahl genau der Präzision / Wiederaufruf entspricht.

Was die Frage betrifft, ob der "gewichtete Makro-Durchschnitt" immer gleich dem "Mikro-Durchschnitt" sein wird? Ich habe einige Experimente mit verschiedenen Nr. Gemacht. von Klassen und verschiedenen Klassenungleichgewichten und es stellt sich heraus, dass dies nicht unbedingt wahr ist.

Diese Aussagen beruhen auf der Annahme, dass wir alle Klassen desselben Datensatzes berücksichtigen (im Gegensatz zu Rahul Reddy Vemireddys Antwort).

goyuiitv
quelle
0

Der Vorteil der Verwendung des Makro-F1-Scores besteht darin, dass alle Datenpunkte gleich gewichtet werden. Denken wir beispielsweise daran, dass das F1-Mikro die Summe aller Rückrufe und Unterdrückungen verschiedener Labels unabhängig voneinander berechnet, wenn also ein Klassenungleichgewicht vorliegt Wie T1 = 90%, T2 = 80%, T3 = 5, dann gibt F1 Micro der gesamten Klasse das gleiche Gewicht und ist nicht von den Abweichungen in der Verteilung des Klassenprotokolls betroffen. Der Protokollverlust bestraft kleine Abweichungen in der Klasse

Sujit Jena
quelle