Micro Promedio vs Rendimiento promedio macro en un entorno de clasificación multiclase

103

Estoy probando una configuración de clasificación multiclase con 3 clases. La distribución de clases está sesgada con la mayoría de los datos que caen en 1 de las 3 clases. (las etiquetas de clase son 1,2,3, con un 67,28% de los datos en la etiqueta de clase 1, 11,99% de datos en la clase 2 y restantes en la clase 3)

Estoy entrenando a un clasificador multiclase en este conjunto de datos y obtengo el siguiente rendimiento:

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

No estoy seguro de por qué todo Micro avg. los rendimientos son iguales y también por qué los rendimientos promedio macro son tan bajos.

SHASHANK GUPTA
fuente
1
¿No puedes mirar los verdaderos positivos individuales, etc. antes de promediar? también, los macro promedios tienden a ser más bajos que los micro promedios
oW_
Las medidas F micro y macro son específicas para la clasificación o recuperación de texto, o pueden usarse para cualquier problema de reconocimiento o clasificación ... Si es así, dónde podemos obtener la importancia de cada una de las referencias ...
idrees
2
¿No es la Micro Precisión Media lo mismo que la Precisión de un conjunto de datos? Por lo que entiendo, para Micro Average Precision usted calcula la suma de todos los positivos verdaderos y la divide por la suma de todos los positivos verdaderos más la suma de todos los falsos positivos. Básicamente, divide el número de predicciones correctamente identificadas por el número total de predicciones. ¿Dónde es eso diferente del cálculo de precisión? ¿Por qué necesitamos un nuevo término de precisión especial que haga las cosas más complicadas en lugar de limitarse al valor de precisión? Por favor demuéstrame que estoy equivocado para que pueda dormir tranquilo.
Nico Zettler
2
@NicoZettler Tienes razón. La precisión micro-promedio y la recuperación micro-promedio son iguales a la precisión cuando cada punto de datos se asigna exactamente a una clase. En cuanto a su segunda pregunta, las métricas micro promediadas son diferentes de la precisión general cuando las clasificaciones tienen múltiples etiquetas (a cada punto de datos se le puede asignar más de una etiqueta) y / o cuando se excluyen algunas clases en el caso de varias clases. Ver scikit-learn.org/stable/modules/… .
Johnson

Respuestas:

146

Los micro y macro promedios (para cualquier métrica) calcularán cosas ligeramente diferentes y, por lo tanto, su interpretación difiere. Un macro-promedio calculará la métrica independientemente para cada clase y luego tomará el promedio (por lo tanto, tratará a todas las clases por igual), mientras que un micro-promedio agregará las contribuciones de todas las clases para calcular la métrica promedio. En una configuración de clasificación de varias clases, es preferible el micro-promedio si sospecha que puede haber un desequilibrio de clase (es decir, puede tener muchos más ejemplos de una clase que de otras clases).

Para ilustrar por qué, tome por ejemplo la precisión . Imaginemos que tiene un sistema de clasificación de múltiples clases One-vs-All (solo hay una salida de clase correcta por ejemplo) con cuatro clases y los siguientes números cuando se prueba:PAGSr=TPAGS(TPAGS+FPAGS)

  • Clase A: 1 TP y 1 FP
  • Clase B: 10 TP y 90 FP
  • Clase C: 1 TP y 1 FP
  • Clase D: 1 TP y 1 FP

Puede ver fácilmente que , mientras que P r B = 0.1 .PAGSrUNA=PAGSrC=PAGSrre=0,5PAGSrsi=0.1

  • Un macro promedio calculará: PAGSr=0,5+0.1+0,5+0,54 4=0.4 0.4
  • Un micro promedio calculará: PAGSr=1+10+1+12+100+2+2=0.123

Estos son valores bastante diferentes para la precisión. Intuitivamente, en el macro-promedio, la precisión "buena" (0.5) de las clases A, C y D está contribuyendo a mantener una precisión general "decente" (0.4). Si bien esto es técnicamente cierto (en todas las clases, la precisión promedio es 0.4), es un poco engañoso, ya que una gran cantidad de ejemplos no se clasifican adecuadamente. Estos ejemplos corresponden principalmente a la clase B, por lo que solo contribuyen 1/4 hacia el promedio a pesar de constituir el 94.3% de los datos de su prueba. El micro promedio capturará adecuadamente este desequilibrio de clase y reducirá el promedio general de precisión a 0.123 (más en línea con la precisión de la clase dominante B (0.1)).

Por razones computacionales, a veces puede ser más conveniente calcular promedios de clase y luego hacer un promedio macro. Si se sabe que el desequilibrio de clase es un problema, hay varias formas de evitarlo. Una es informar no solo el macro-promedio, sino también su desviación estándar (para 3 o más clases). Otra es calcular un macro-promedio ponderado, en el que cada contribución de clase al promedio se pondera por el número relativo de ejemplos disponibles para él. En el escenario anterior, obtenemos:

PAGSrmetrounaCro-metromiunanorte=0.25·0,5+0.25·0.1+0.25·0,5+0.25·0,5=0.4 0.4 PAGSrmetrounaCro-stremiv=0,173

PAGSrmetrounaCro-wmiyosolhtmire=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 gran desviación estándar (0.173) ya nos dice que el promedio 0.4 no se deriva de una precisión uniforme entre las clases, pero podría ser más fácil calcular el macro promedio ponderado, que en esencia es otra forma de calcular el micro promedio .

Pythiest
fuente
10
Esta respuesta merece más votos a favor, porque ayuda a comprender por qué el micro y el macro se comportan de manera diferente en lugar de solo enumerar las fórmulas (y es el contenido original).
steffen
2
¿Cómo explica esto los diferentes valores macro en la pregunta original?
shakedzy
3
Si voltea el escenario esbozado en la respuesta, con la clase grande funcionando mejor que las pequeñas, esperaría ver un micro promedio más alto que el macro promedio (que es el comportamiento reportado en la pregunta). Es más o menos de esperar que los valores de macro sean diferentes, ya que está midiendo cosas diferentes (precisión, recuperación ...). Por qué los micro promedios son todos iguales, creo que es la pregunta.
Pythiest
44
No estoy de acuerdo con la afirmación de que se debería preferir el micro promedio sobre el macro en caso de conjuntos de datos desequilibrados. De hecho, para los puntajes F, se prefiere el macro sobre el micro, ya que el primero le da la misma importancia a cada clase, mientras que el segundo le da la misma importancia a cada muestra (lo que significa que cuanto mayor sea el número de muestras, más se dice que tiene en el puntaje final) favoreciendo las clases mayoritarias como la precisión). Fuentes: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha
3
¿El "macro-promedio ponderado" siempre será igual al micro promedio? En Scikit-Learn, la definición de "ponderado" es ligeramente diferente: "Calcule las métricas para cada etiqueta, y encuentre su promedio, ponderado por soporte (el número de instancias verdaderas para cada etiqueta)". De los documentos para F1 Score.
willk
20

Publicación original: http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html


En el método Micro-average, usted resume los verdaderos positivos, falsos positivos y falsos negativos individuales del sistema para diferentes conjuntos y los aplica para obtener las estadísticas.

Difícil, pero esto me pareció muy interesante. Hay dos métodos por los cuales puede obtener una estadística promedio de recuperación y clasificación de información.

1. Método de micro-promedio

En el método Micro-average, usted resume los verdaderos positivos, falsos positivos y falsos negativos individuales del sistema para diferentes conjuntos y los aplica para obtener las estadísticas. Por ejemplo, para un conjunto de datos, el sistema

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

57,14%=TPAGS1TPAGS1+FPAGS180%=TPAGS1TPAGS1+Fnorte1

y para un conjunto diferente de datos, el sistema

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

Entonces la precisión (P2) y la recuperación (R2) serán 68.49 y 84.75

Ahora, la precisión promedio y la recuperación del sistema usando el método Micro-average es

Micro-promedio de precisión=TPAGS1+TPAGS2TPAGS1+TPAGS2+FPAGS1+FPAGS2=12+5012+50+9 9+23=65,96

Micro-promedio de retiro=TPAGS1+TPAGS2TPAGS1+TPAGS2+Fnorte1+Fnorte2=12+5012+50+3+9 9=83,78

El puntaje F micro-promedio será simplemente la media armónica de estas dos figuras.

2. Método macro promedio

El método es sencillo. Simplemente tome el promedio de la precisión y recuperación del sistema en diferentes conjuntos. Por ejemplo, la precisión y recuperación del promedio macro del sistema para el ejemplo dado es

Precisión macro-promedio=PAGS1+PAGS22=57,14+68,492=62,82 Retiro macro-promedio=R1+R22=80+84,752=82.25

El puntaje F promedio macro será simplemente la media armónica de estas dos figuras.

Idoneidad El método de promedio macro se puede usar cuando desea saber cómo funciona el sistema en general en los conjuntos de datos. No debe llegar a ninguna decisión específica con este promedio.

Por otro lado, el micro promedio puede ser una medida útil cuando el conjunto de datos varía en tamaño.

Rahul Reddy Vemireddy
fuente
21
¿Deberías darle crédito a esta publicación de blog ?
xiaohan2012
3
Sí @ xiaohan2012, acaba de copiar la respuesta.
Manuel G
Esta fue mi primera respuesta en el desbordamiento de pila, no estaba muy seguro de cómo hacerlo. ¿Puedes sugerir una edición? Lo aceptaré Gracias
Rahul Reddy Vemireddy
Vale la pena señalar que el puntaje F1 aquí no es necesariamente el mismo que el puntaje F1 promedio macro utilizado comúnmente (como se implementa en scikit o se describe en este documento ). Por lo general, el puntaje F1 se calcula para cada clase / conjunto por separado y luego el promedio se calcula a partir de los diferentes puntajes F1 (aquí, se hace de la manera opuesta: primero calculando la precisión / recuperación promedio macro y luego el puntaje F1 )
Milania
11

En un entorno de múltiples clases, la precisión y recuperación micro-promedio son siempre las mismas.

PAGS=CTPAGSCCTPAGSC+CFPAGSCR=CTPAGSCCTPAGSC+CFnorteC

CFPAGSC=CFnorteC

Por lo tanto, P = R. En otras palabras, cada predicción falsa será un falso positivo para una clase, y cada negativo será un falso negativo para una clase. Si trata un caso de clasificación binaria como una clasificación bi-clase y calcula la precisión micro-promediada y recuerda que serán las mismas.

La respuesta dada por Rahul es en el caso de promediar la precisión binaria y la recuperación de múltiples conjuntos de datos. En cuyo caso, la precisión y recuperación micro-promedio son diferentes.

David Makovoz
fuente
2

Así es como debería ser. Tuve el mismo resultado para mi investigación. Parecía extraño al principio. Pero la precisión y la recuperación deberían ser las mismas mientras se hace un promedio del resultado del clasificador de etiqueta única multiclase. Esto se debe a que si considera una clasificación errónea c1 = c2 (donde c1 y c2 son 2 clases diferentes), la clasificación errónea es un falso positivo (fp) con respecto a c2 y falso negativo (fn) con respecto a c1. Si sumas fn y fp para todas las clases, obtienes el mismo número porque estás contando cada clasificación errónea como fp con respecto a una clase y fn con respecto a otra clase.

Saghan Mudbhari
fuente
0

Creo que la razón por la cual el promedio macro es menor que el promedio micro está bien explicada por la respuesta de Pythiest (la clase dominante tiene mejores predicciones y, por lo tanto, el aumento promedio micro).

Pero el hecho de que el promedio micro sea igual para la puntuación de precisión, recuperación y F1 se debe a que el promedio micro de estas métricas da como resultado una precisión general (ya que el promedio micro considera todas las clases como positivas). Tenga en cuenta que si la precisión y la recuperación son iguales, la puntuación F1 es igual a la precisión / recuperación.

¿En cuanto a la pregunta de si el "promedio macro ponderado" siempre va a ser igual al "promedio micro"? Hice algunos experimentos con diferentes no. de clases y diferentes desequilibrios de clase y resulta que esto no es necesariamente cierto.

Estas declaraciones se hacen asumiendo que estamos considerando todas las clases del mismo conjunto de datos (en contraste con la respuesta de Rahul Reddy Vemireddy)

goyuiitv
fuente
0

La ventaja de usar el Macro F1 Score es que otorga el mismo peso a todos los puntos de datos, por ejemplo: pensemos en ello como el F1 micro toma la suma de todas las llamadas y la recuperación de diferentes etiquetas de forma independiente, por lo que cuando tenemos un desequilibrio de clase como T1 = 90%, T2 = 80%, T3 = 5, entonces F1 Micro otorga el mismo peso a toda la clase y no se ve afectado por las desviaciones en la distribución del registro de la clase, la pérdida de registro penaliza pequeñas desviaciones en la clase

Sujit Jena
fuente