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.
multiclass-classification
evaluation
SHASHANK GUPTA
fonte
fonte
Respostas:
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)
Você pode ver facilmente que , enquanto .PrUMA= PrC= PrD= 0,5 PrB=0.1
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:
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 .
fonte
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
Então a precisão (P1) e o recall (R1) serão e57.14%=TP1TP1+FP1 80%=TP1TP1+FN1
e para um conjunto diferente de dados, o sistema
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 é
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.
fonte
Em um cenário de várias classes, a precisão e recuperação micro-médias são sempre as mesmas.
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.
fonte
É 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.
fonte
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)
fonte
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
fonte