Média micro versus média macro Desempenho em uma configuração de classificação Multiclass


102

Estou tentando uma configuração de classificação multiclass com 3 classes. A distribuição de classes é distorcida, com a maioria dos dados caindo em uma das três classes. (os rótulos das classes são 1,2,3, com 67,28% dos dados que caem no rótulo da classe 1, 11,99% dos dados na classe 2 e permanecem na classe 3)

Estou treinando um classificador multiclasse neste conjunto de dados e estou obtendo o seguinte desempenho:

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

Não sei por que todos os Micro avg. desempenhos são iguais e também por que os desempenhos médios Macro são tão baixos.


1
você não pode olhar para os verdadeiros positivos individuais etc. antes da média? Além disso, as médias macro tendem a ser menores que as médias médias
oW_

As medidas Micro e Macro F são específicas para classificação ou recuperação de texto, ou podem ser usadas para qualquer problema de reconhecimento ou classificação ..... Se sim, onde podemos obter o significado de cada uma ou qualquer outra referência ...
idrees

1
A Micro Média de Precisão não é a mesma que a Precisão de um conjunto de dados? Pelo que entendi, para a Micro Average Precision, você calcula a soma de todos os verdadeiros positivos e a divide pela soma de todos os verdadeiros positivos mais a soma de todos os falsos positivos. Então, basicamente, você divide o número de previsões corretamente identificadas pelo número total de previsões. Onde isso é diferente do cálculo da precisão? Por que precisamos de um novo termo especial de precisão que torne as coisas mais complicadas, em vez de simplesmente manter o valor da precisão? Por favor, prove que estou errado para que eu possa dormir em paz.
Nico Zettler

1
@NicoZettler Você está correto. A precisão micro-média e a recuperação micro-média são iguais à precisão quando cada ponto de dados é atribuído a exatamente uma classe. Quanto à sua segunda pergunta, as métricas micro-médias são diferentes da precisão geral quando as classificações são multitabelecidas (cada ponto de dados pode ter mais de um rótulo) e / ou quando algumas classes são excluídas no caso de várias classes. Veja scikit-learn.org/stable/modules/… .
Johnson

Respostas:


144

As micro e macro médias (para qualquer métrica) calcularão coisas ligeiramente diferentes e, portanto, sua interpretação será diferente. Uma macro-média calculará a métrica independentemente para cada classe e, em seguida, obterá a média (portanto tratando todas as classes igualmente), enquanto uma micro-média agregará as contribuições de todas as classes para calcular a métrica média. Em uma configuração de classificação de várias classes, a micro-média é preferível se você suspeitar que possa haver um desequilíbrio de classe (ou seja, você pode ter muitos mais exemplos de uma classe do que de outras classes).

Para ilustrar o motivo, considere, por exemplo, a precisão . Vamos imaginar que você tenha um sistema de classificação multi-classe One-vs-All (existe apenas uma classe correta por exemplo) com quatro classes e os seguintes números quando testados: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

Você pode ver facilmente que , enquanto .PrA=PrC=PrD=0.5PrB=0.1

  • Uma macro-média calculará:Pr=0.5+0.1+0.5+0.54=0.4
  • Uma micro-média calculará:Pr=1+10+1+12+100+2+2=0.123

Esses são valores bastante diferentes para precisão. Intuitivamente, na macro-média, a precisão "boa" (0,5) das classes A, C e D está contribuindo para manter uma precisão geral "decente" (0,4). Embora isso seja tecnicamente verdadeiro (entre as classes, a precisão média é de 0,4), é um pouco enganador, pois um grande número de exemplos não é classificado corretamente. Esses exemplos correspondem predominantemente à classe B, portanto, apenas contribuem com 1/4 da média, apesar de constituírem 94,3% dos seus dados de teste. A micro-média capturará adequadamente esse desequilíbrio de classe e reduzirá a média geral de precisão para 0,123 (mais alinhada com a precisão da classe dominante B (0,1)).

Por razões computacionais, às vezes pode ser mais conveniente calcular médias de classe e depois macro-média. Se o desequilíbrio de classe é conhecido por ser um problema, existem várias maneiras de contorná-lo. Uma é reportar não apenas a macro-média, mas também seu desvio padrão (para 3 ou mais classes). Outra é calcular uma macro-média ponderada, na qual cada contribuição de classe para a média é ponderada pelo número relativo de exemplos disponíveis para ela. No cenário acima, obtemos:

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

O grande desvio padrão (0,173) já nos diz que a média de 0,4 não deriva de uma precisão uniforme entre as classes, mas pode ser mais fácil calcular a macro-média ponderada, que é essencialmente outra maneira de calcular a micro-média .


10
Essa resposta merece mais votos, porque ajuda a entender por que a micro e a macro se comportam de maneira diferente em vez de apenas listar as fórmulas (e é o conteúdo original).
22618 steffen

2
Como isso explica os diferentes valores de macro na pergunta original?
shakedzy

3
Se você inverter o cenário esboçado na resposta, com a classe grande tendo um desempenho melhor do que as pequenas, você esperaria ver uma micro média acima da média macro (que é o comportamento relatado na pergunta). Que os valores macro sejam diferentes é mais ou menos esperado, pois você está medindo coisas diferentes (precisão, recordação ...). Por que as micro médias são todas iguais, acredito que seja a questão.
pythiest 8/18

4
Não concordo com a afirmação de que a micro-média deve ser preferida à macro no caso de conjuntos de dados desequilibrados. De fato, para as pontuações F, a macro é preferida à micro, pois a primeira dá igual importância a cada classe, enquanto a última dá igual importância a cada amostra (o que significa que quanto mais o número de amostras, mais se diz na pontuação final. favorecendo classes majoritárias muito parecidas com precisão). Fontes: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha

3
A "macro-média ponderada" sempre será igual à micro-média? No Scikit-Learn, a definição de "ponderada" é um pouco diferente: "Calcule métricas para cada rótulo e encontre sua média ponderada pelo suporte (o número de instâncias verdadeiras para cada rótulo)." Dos documentos para a Pontuação F1.
Willk6 /

20

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


No método Micro-média, você resume os verdadeiros positivos individuais, falsos positivos e falsos negativos do sistema para conjuntos diferentes e os aplica para obter as estatísticas.

Tricky, mas achei isso muito interessante. Existem dois métodos pelos quais você pode obter essa estatística média de recuperação e classificação de informações.

1. Método micro-médio

No método Micro-média, você resume os verdadeiros positivos individuais, falsos positivos e falsos negativos do sistema para conjuntos diferentes e os aplica para obter as estatísticas. Por exemplo, para um conjunto de dados, o sistema

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

Então a precisão (P1) e o recall (R1) serão e57.14%=TP1TP1+FP180%=TP1TP1+FN1

e para um conjunto diferente de dados, o sistema

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

Então a precisão (P2) e a recuperação (R2) serão 68,49 e 84,75

Agora, a precisão e recuperação média do sistema usando o método Micro-Average é

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

O F-Score micro-médio será simplesmente a média harmônica desses dois números.

2. Método macro-médio

O método é direto. Basta levar a média da precisão e recuperação do sistema em diferentes conjuntos. Por exemplo, a precisão macro-média e a recuperação do sistema para o exemplo dado são

macro-média=R1+R2Macro-average precision=P1+P22=57.14+68.492=62.82 Macro-average recall=R1+R22=80+84.752=82.25

O F-Score macro-médio será simplesmente a média harmônica desses dois números.

Adequação O método de média macro pode ser usado quando você deseja saber como o sistema funciona de maneira geral nos conjuntos de dados. Você não deve tomar nenhuma decisão específica com essa média.

Por outro lado, a micro-média pode ser uma medida útil quando o conjunto de dados varia de tamanho.


21
você deve dar crédito a este post do blog ?
xiaohan2012

3
Sim @ xiaohan2012, ele apenas copypasted a resposta.
Manuel G

Esta foi a minha primeira resposta no estouro de pilha, eu não tinha muita certeza de como fazer isso. Você pode sugerir uma edição. Eu aceito. Obrigado
Rahul Reddy Vemireddy -

Pode ser interessante notar que a pontuação F1 aqui não é necessariamente a mesma que a pontuação F1 média macro comumente usada (como implementada no scikit ou descrita neste artigo ). Normalmente, o escore F1 é calculado para cada classe / conjunto separadamente e, em seguida, a média é calculada a partir dos diferentes escores F1 (aqui, é feita da maneira oposta: primeiro calculando a precisão / recuperação macro-média e, em seguida, o escore F1 )
Milania

11

Em um cenário de várias classes, a precisão e recuperação micro-médias são sempre as mesmas.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc

cFPc=cFNc

Portanto, P = R. Em outras palavras, toda previsão falsa será um falso positivo para uma classe, e todo negativo único será um falso negativo para uma classe. Se você tratar um caso de classificação binária como uma classificação de duas classes e calcular a precisão micro-média e lembrar, elas serão as mesmas.

A resposta dada por Rahul é no caso da média da precisão binária e da recuperação de vários conjuntos de dados. Nesse caso, a precisão e recuperação micro-médias são diferentes.


2

É assim que deve ser. Eu tive o mesmo resultado para minha pesquisa. Pareceu estranho no começo. Porém, precisão e recall devem ser os mesmos, enquanto calcula em média o resultado do classificador de rótulo único de várias classes. Isso ocorre porque se você considerar uma classificação incorreta c1 = c2 (onde c1 e c2 são 2 classes diferentes), a classificação incorreta será um falso positivo (fp) em relação a c2 e falso negativo (fn) em relação a c1. Se você somar fn e fp para todas as classes, obtém o mesmo número porque está contando cada classificação incorreta como fp em relação a uma classe e fn em relação a outra classe.


0

Penso que a razão pela qual a média macro é menor que a média micro é bem explicada pela resposta de pythiest (a classe dominante tem melhores previsões e, portanto, a micro média aumenta).

Mas o fato de que a média micro é igual para as pontuações Precision, Recall e F1 é porque a média da micro dessas métricas resulta em Precisão geral (como a micro avg considera todas as classes como positivas). Observe que, se Precisão e Recuperação forem iguais, a pontuação F1 será igual à precisão / recuperação.

Quanto à questão de saber se a "macro-média ponderada" sempre será igual à "micro-média"? Eu fiz algumas experiências com diferentes não. de classes e desequilíbrio de classe diferente e verifica-se que isso não é necessário verdade.

Essas declarações são feitas com a premissa de que estamos considerando todas as classes do mesmo conjunto de dados (em contraste com a resposta de Rahul Reddy Vemireddy)


0

a vantagem de usar o Macro F1 Score é que ele dá peso igual a todos os pontos de dados, por exemplo: vamos pensar nisso como o micro F1 recebe a soma de todas as recordações e presenças de diferentes rótulos de forma independente; portanto, quando temos desequilíbrio de classe como T1 = 90%, T2 = 80%, T3 = 5, em seguida, F1 Micro atribui peso igual a toda a classe e não é afetado pelos desvios na distribuição da classe log a perda de log penaliza pequenos desvios na classe

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.