Micro Media vs Macro media Prestazioni in un'impostazione di classificazione Multiclass


103

Sto provando un'impostazione di classificazione multiclasse con 3 classi. La distribuzione delle classi è distorta e la maggior parte dei dati rientra in 1 delle 3 classi. (le etichette di classe sono 1,2,3, con il 67,28% dei dati che rientrano nell'etichetta di classe 1, i dati dell'11,99% in classe 2 e che rimangono in classe 3)

Sto addestrando un classificatore multiclasse su questo set di dati e sto ottenendo le seguenti prestazioni:

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

Non sono sicuro del motivo per cui tutti i Micro avg. le prestazioni sono uguali e anche il motivo per cui le prestazioni nella macro media sono così basse.


1
non riesci a guardare i singoli veri positivi ecc. prima della media? inoltre, le macro medie tendono ad essere inferiori alle micro medie
oW_

Le misure F Micro e Macro sono specifiche per la classificazione o il recupero del testo, oppure possono essere utilizzate per qualsiasi problema di riconoscimento o classificazione ..... In tal caso, dove possiamo ottenere il significato di ciascuno o di ogni altro riferimento ...
Idrees

2
La Micro Average Precision non è la stessa della precisione di un set di dati? Da quello che ho capito, per Micro Average Precision calcoli la somma di tutti i veri positivi e la dividi per la somma di tutti i veri positivi più la somma di tutti i falsi positivi. Quindi sostanzialmente dividi il numero di previsioni correttamente identificate per il numero totale di previsioni. Dove è diverso dal calcolo dell'accuratezza? Perché abbiamo bisogno di un nuovo termine speciale di precisione che renda le cose più complicate invece di limitarci al valore dell'accuratezza? Per favore, dimostrami che ho torto, così posso dormire sonni tranquilli.
Nico Zettler,

2
@NicoZettler Hai ragione. La precisione micro-media e il richiamo micro-media sono entrambi uguali all'accuratezza quando ciascun punto dati è assegnato esattamente a una classe. Per quanto riguarda la seconda domanda, le metriche a media media sono diverse dalla precisione complessiva quando le classificazioni sono multietichettate (a ciascun punto dati può essere assegnata più di un'etichetta) e / o quando alcune classi sono escluse nel caso multi-classe. Vedi scikit-learn.org/stable/modules/… .
Johnson

Risposte:


146

Le micro e macro medie (per qualsiasi metrica) calcoleranno cose leggermente diverse e quindi la loro interpretazione differisce. Una macro-media calcolerà la metrica in modo indipendente per ogni classe e quindi prenderà la media (quindi trattando tutte le classi allo stesso modo), mentre una micro-media aggregherà i contributi di tutte le classi per calcolare la metrica media. In una configurazione di classificazione multi-classe, la micro-media è preferibile se si sospetta che ci possa essere uno squilibrio di classe (vale a dire che si possono avere molti più esempi di una classe rispetto ad altre).

Per illustrare il motivo, prendiamo ad esempio la precisione . Immaginiamo di avere un sistema di classificazione multi-classe One-vs-All (esiste solo un output di classe corretto per esempio) con quattro classi e i seguenti numeri durante il test:Pr=TP(TP+FP)

  • Classe A: 1 TP e 1 FP
  • Classe B: 10 TP e 90 FP
  • Classe C: 1 TP e 1 FP
  • Classe D: 1 TP e 1 FP

Puoi vedere facilmente che , mentre .PrA=PrC=PrD=0.5PrB=0.1

  • Verrà quindi calcolata una macro-media:Pr=0.5+0.1+0.5+0.54=0.4
  • Una micro-media calcolerà:Pr=1+10+1+12+100+2+2=0.123

Questi sono valori abbastanza diversi per la precisione. Intuitivamente, nella macro-media la precisione "buona" (0,5) delle classi A, C e D contribuisce a mantenere una precisione generale "decente" (0,4). Sebbene questo sia tecnicamente vero (tra le classi, la precisione media è 0,4), è un po 'fuorviante, poiché un gran numero di esempi non sono classificati correttamente. Questi esempi corrispondono principalmente alla classe B, quindi contribuiscono solo 1/4 alla media nonostante costituiscano il 94,3% dei dati del test. La micro-media acquisirà adeguatamente questo squilibrio di classe e ridurrà la media di precisione complessiva a 0,123 (più in linea con la precisione della classe dominante B (0,1)).

Per motivi computazionali, a volte può essere più conveniente calcolare le medie di classe e quindi macronutolarle. Se lo squilibrio di classe è noto per essere un problema, ci sono diversi modi per aggirare. Uno è quello di segnalare non solo la macro-media, ma anche la sua deviazione standard (per 3 o più classi). Un altro è calcolare una macro-media ponderata, in cui ogni contributo di classe alla media è ponderato dal numero relativo di esempi disponibili per essa. Nello scenario sopra riportato, otteniamo:

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

La grande deviazione standard (0.173) ci dice già che la media 0.4 non deriva da una precisione uniforme tra le classi, ma potrebbe essere solo più semplice calcolare la media media ponderata, che in sostanza è un altro modo di calcolare la micro-media .


10
Questa risposta merita più voti, perché aiuta a capire perché micro e macro si comportano in modo diverso invece di elencare le formule (ed è il contenuto originale).
Steffen,

2
In che modo questo spiega i diversi valori di macro nella domanda originale?
shakedzy

3
Se capovolgi lo scenario delineato nella risposta, con la classe grande che funziona meglio di quella piccola, ti aspetteresti di vedere una micro media superiore alla media macro (che è il comportamento riportato nella domanda). Che i valori delle macro siano diversi è più o meno prevedibile, poiché si stanno misurando cose diverse (precisione, richiamo ...). Perché le micro medie sono tutte uguali, credo sia la domanda.
pitone

4
Non sono d'accordo con l'affermazione secondo cui la micro media dovrebbe essere preferita alla macro in caso di set di dati squilibrati. Infatti, per i punteggi F, la macro è preferita rispetto alla micro poiché la prima dà uguale importanza a ciascuna classe mentre la successiva dà uguale importanza a ciascun campione (il che significa che più è il numero di campioni, più dice che ha quindi nel punteggio finale favorire le classi di maggioranza come la precisione). Fonti: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha

3
La "media media ponderata" sarà sempre uguale alla micro media? In Scikit-Learn, la definizione di "ponderata" è leggermente diversa: "Calcola le metriche per ciascuna etichetta e trova la loro media, ponderata dal supporto (il numero di istanze vere per ciascuna etichetta)." Dai documenti per il punteggio F1.
Willk

20

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


Nel metodo Micro-media, si sommano i singoli positivi positivi, falsi positivi e falsi negativi del sistema per diversi set e li si applica per ottenere le statistiche.

Ingannevole, ma l'ho trovato molto interessante. Esistono due metodi con i quali è possibile ottenere statistiche così medie sul recupero e sulla classificazione delle informazioni.

1. Metodo micro-medio

Nel metodo Micro-media, si sommano i singoli positivi positivi, falsi positivi e falsi negativi del sistema per diversi set e li si applica per ottenere le statistiche. Ad esempio, per un set di dati, il sistema

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

Quindi precisione (P1) e richiamo (R1) saranno e57.14%=TP1TP1+FP180%=TP1TP1+FN1

e per un diverso insieme di dati, il sistema

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

Quindi precisione (P2) e richiamo (R2) saranno 68.49 e 84.75

Ora, la precisione media e il richiamo del sistema usando il metodo Micro-media è

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

Il punteggio F micro-medio sarà semplicemente la media armonica di queste due figure.

2. Metodo macro-medio

Il metodo è semplice. Basta prendere la media della precisione e il richiamo del sistema su diversi set. Ad esempio, la precisione macro-media e il richiamo del sistema per l'esempio dato è

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

Il punteggio F macro-medio sarà semplicemente la media armonica di queste due figure.

Idoneità Il metodo macro-medio può essere utilizzato quando si desidera sapere come il sistema si comporta in modo globale tra le serie di dati. Non dovresti prendere alcuna decisione specifica con questa media.

D'altra parte, la micro-media può essere una misura utile quando il set di dati varia di dimensioni.


21
dovresti dare credito a questo post sul blog ?
xiaohan2012,

3
Sì @ xiaohan2012, ha appena copiato la risposta.
Manuel G,

Questa è stata la mia prima risposta su Stack Overflow, non ero abbastanza sicuro di come farlo. Puoi suggerire una modifica. Lo accetterò. Grazie
Rahul Reddy Vemireddy il

Potrebbe valere la pena notare che il punteggio F1 qui non è necessariamente lo stesso del punteggio F1 a media macro comunemente usato (come implementato in scikit o descritto in questo documento ). Di solito, il punteggio F1 viene calcolato per ogni classe / set separatamente e quindi la media viene calcolata dai diversi punteggi F1 (qui, viene fatto in modo opposto: prima calcolare la precisione / richiamo della media macro e poi il punteggio F1 ).
Milania,

11

In un'impostazione multi-classe precisione e richiamo micro-media sono sempre gli stessi.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc
dove c è l'etichetta della classe.

Poiché in un'impostazione multi-classe si contano tutte le false istanze si scopre che

cFPc=cFNc

Quindi P = R. In altre parole, ogni singola False Prediction sarà un Falso Positivo per una classe, e ogni singolo Negativo sarà un Falso Negativo per una classe. Se si considera un caso di classificazione binaria come una classificazione di due classi e si calcola la precisione micro-media e si ricorda che saranno uguali.

La risposta data da Rahul è nel caso della media della precisione binaria e del richiamo da più set di dati. Nel qual caso la precisione e il richiamo micro-media sono diversi.


2

Ecco come dovrebbe essere. Ho avuto lo stesso risultato per la mia ricerca. All'inizio sembrava strano. Ma precisione e richiamo dovrebbero essere gli stessi durante la micro-media del risultato del classificatore multi-classe a etichetta singola. Questo perché se si considera una classificazione errata c1 = c2 (dove c1 e c2 sono 2 classi diverse), la classificazione errata è un falso positivo (fp) rispetto a c2 e falso negativo (fn) rispetto a c1. Se sommi fn e fp per tutte le classi, otterrai lo stesso numero perché stai contando ogni classificazione errata come fp rispetto a una classe e fn rispetto a un'altra classe.


0

Penso che il motivo per cui la macro media sia inferiore alla micro media è ben spiegato dalla risposta di pythiest (la classe dominante ha previsioni migliori e quindi l'aumento della micro media).

Ma il fatto che la micro media sia uguale per il punteggio di precisione, richiamo e F1 è dovuto al fatto che la micro media di queste metriche determina l'accuratezza complessiva (poiché la micro avg considera tutte le classi come positive). Se Precisione e Richiamo sono uguali, il punteggio F1 è uguale a Precisione / Richiamo.

Quanto alla domanda se la "media media ponderata" sarà sempre uguale alla "media media"? Ho fatto alcuni esperimenti con diversi no. di classi e diversi squilibri di classe e si scopre che questo non è necessario vero.

Queste affermazioni sono fatte supponendo che stiamo prendendo in considerazione tutte le classi dello stesso set di dati (in contrasto con la risposta di Rahul Reddy Vemireddy)


0

il vantaggio di usare il Macro Macro Score è che dà lo stesso peso a tutti i punti dati, per esempio: pensiamo a come il micro F1 prende la somma di tutti i richiami e le presenze di etichette diverse in modo indipendente, quindi quando abbiamo uno squilibrio di classe come T1 = 90%, T2 = 80%, T3 = 5, quindi F1 Micro attribuisce lo stesso peso a tutta la classe e non è influenzato dalle deviazioni nella distribuzione del registro di classe, la perdita di registro penalizza piccole deviazioni nella classe

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.