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.
multiclass-classification
evaluation
SHASHANK GUPTA
quelle
quelle
Antworten:
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)
Sie können leicht erkennen, dass , während P r B = 0,1 ist .PrEIN= PrC= PrD= 0,5 PrB= 0,1
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:
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 .
quelle
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
und für einen anderen Datensatz das System
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
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
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.
quelle
In einer Multiklasseneinstellung sind mikro-gemittelte Präzision und Abruf immer gleich.
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.
quelle
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.
quelle
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).
quelle
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
quelle