J'essaie un paramètre de classification multiclass avec 3 classes. La distribution des classes est asymétrique, la plupart des données tombant dans l'une des trois classes. (les étiquettes de classe sont 1, 2, 3, avec 67,28% des données relevant de l'étiquette de classe 1, 11,99% des données de classe 2 et restant en classe 3)
Je forme un classifieur multiclass sur cet ensemble de données et j'obtiens les performances suivantes:
Precision Recall F1-Score
Micro Average 0.731 0.731 0.731
Macro Average 0.679 0.529 0.565
Je ne sais pas pourquoi tous les micro-moy. les performances sont égales et aussi pourquoi les performances moyennes Macro sont si faibles.
multiclass-classification
evaluation
SHASHANK GUPTA
la source
la source
Réponses:
Les moyennes micro et macro (quelle que soit la métrique) calculent des choses légèrement différentes, et donc leur interprétation diffère. Une macro-moyenne calcule la métrique indépendamment pour chaque classe, puis prend la moyenne (donc toutes les classes sont traitées de manière égale), tandis qu'une micro-moyenne agrégera les contributions de toutes les classes pour calculer la métrique moyenne. Dans une configuration de classification à plusieurs classes, la micro-moyenne est préférable si vous suspectez un déséquilibre entre les classes (vous pouvez donc avoir beaucoup plus d'exemples d'une classe que d'autres classes).
Pour illustrer pourquoi, prenons par exemple la précision . Imaginons que vous disposiez d'unsystème de classification multi-classesOne-vs-All(il n'y a qu'une seule sortie de classe correcte par exemple) avec quatre classes et les nombres suivants lors du test:Pr = TP( TP+ FP)
Vous pouvez voir facilement que , alors que P r B = 0,1 .PrUNE= PrC= Prré= 0.5 PrB= 0,1
Ce sont des valeurs assez différentes pour la précision. Intuitivement, dans la moyenne macro-économique, la "bonne" précision (0,5) des classes A, C et D contribue à maintenir une précision globale "décente" (0,4). Bien que cela soit techniquement vrai (précision moyenne de 0,4 pour toutes les classes), cela est un peu trompeur, puisqu'un grand nombre d'exemples ne sont pas correctement classés. Ces exemples correspondent principalement à la classe B, ils ne contribuent donc qu’à un quart de la moyenne malgré qu’ils constituent 94,3% de vos données de test. La micro-moyenne capturera correctement ce déséquilibre de classe et ramènera la moyenne de précision globale à 0,123 (plus conforme à la précision de la classe dominante B (0.1)).
Pour des raisons de calcul, il peut parfois être plus pratique de calculer des moyennes de classe puis de les calculer en moyenne. Si l’on sait que le déséquilibre entre les classes est un problème, il existe plusieurs façons de le contourner. L'une consiste à indiquer non seulement la moyenne macro, mais également son écart type (pour 3 classes ou plus). Une autre consiste à calculer une macro-moyenne pondérée, dans laquelle chaque contribution de classe à la moyenne est pondérée par le nombre relatif d’exemples disponibles. Dans le scénario ci-dessus, nous obtenons:
L’écart type élevé (0,173) nous indique déjà que la moyenne de 0,4 ne découle pas d’une précision uniforme entre les classes, mais il pourrait être simplement plus facile de calculer la moyenne macro pondérée, ce qui est essentiellement une autre façon de calculer la moyenne moyenne. .
la source
Original Post - http://rushdishams.blogspot.in/2011/08/micro-and-macro-average-of-precision.html
Dans la méthode Micro-moyenne, vous résumez les vrais positifs, les faux positifs et les faux négatifs individuels du système pour différents ensembles et vous les appliquez pour obtenir les statistiques.
Difficile, mais j'ai trouvé cela très intéressant. Il existe deux méthodes pour obtenir cette statistique moyenne de récupération et de classification des informations.
1. Méthode micro-moyenne
Dans la méthode Micro-moyenne, vous résumez les vrais positifs, les faux positifs et les faux négatifs individuels du système pour différents ensembles et vous les appliquez pour obtenir les statistiques. Par exemple, pour un ensemble de données, le système
et pour un autre ensemble de données, le système
La précision (P2) et le rappel (R2) seront alors de 68,49 et 84,75.
Maintenant, la précision moyenne et le rappel du système utilisant la méthode micro-moyenne est
Le F-Score de micro-moyenne sera simplement la moyenne harmonique de ces deux figures.
2. Méthode macro-moyenne
La méthode est simple. Il suffit de prendre la moyenne de la précision et le rappel du système sur différents ensembles. Par exemple, la précision macro-moyenne et le rappel du système pour l'exemple donné sont
Le F-Score Macro-moyen sera simplement la moyenne harmonique de ces deux figures.
Adéquation Une méthode de moyenne macro peut être utilisée lorsque vous souhaitez savoir comment le système fonctionne dans l'ensemble des ensembles de données. Vous ne devriez pas arriver à une décision spécifique avec cette moyenne.
D'autre part, la micro-moyenne peut constituer une mesure utile lorsque la taille de votre jeu de données varie.
la source
Dans un environnement à plusieurs classes, la précision et le rappel micro-moyennés sont toujours les mêmes.
D'où P = R. En d'autres termes, chaque fausse prédiction sera un faux positif pour une classe et chaque simple négatif sera un faux négatif pour une classe. Si vous traitez un cas de classification binaire comme une classification bi-classe et calculez la précision micro-moyennée et rappelez-la, elles seront identiques.
La réponse donnée par Rahul concerne la moyenne de la précision binaire et le rappel de plusieurs jeux de données. Dans ce cas, la précision et le rappel micro-moyennés sont différents.
la source
Voilà comment il devrait être. J'ai eu le même résultat pour mes recherches. Cela semblait étrange au début. Mais la précision et le rappel doivent être les mêmes tout en micro-moyennant le résultat du classifieur à une seule étiquette à plusieurs classes. En effet, si vous considérez une erreur de classification c1 = c2 (où c1 et c2 sont deux classes différentes), la classification erronée est un faux positif (fp) en ce qui concerne c2 et un faux négatif (fn) en ce qui concerne c1. Si vous faites la somme de fn et fp pour toutes les classes, vous obtenez le même nombre car vous comptez chaque erreur de classification comme fp pour une classe et fn pour une autre classe.
la source
Je pense que la réponse de pythiest (la classe dominante a de meilleures prévisions et donc l'augmentation de la moyenne micro) explique bien la raison pour laquelle la moyenne macro est inférieure à la moyenne micro.
Mais le fait que la micro moyenne soit égale pour les scores Precision, Recall et F1 est dû au fait que la micro-moyenne de ces métriques donne une précision globale (puisque micro moyenne considère toutes les classes comme positives). Notez que si Précision et Rappel sont égaux, le score F1 équivaut simplement à précision / rappel.
Quant à la question de savoir si la "moyenne macro pondérée" sera toujours égale à la "moyenne micro"? J'ai fait des expériences avec différents non. de déséquilibre de classes et de classes différentes et il s'avère que ce n'est pas nécessairement vrai.
Ces déclarations sont faites en supposant que nous considérons toutes les classes du même ensemble de données (contrairement à la réponse de Rahul Reddy Vemireddy)
la source
L'avantage d'utiliser le score de macro F1 est qu'il donne un poids égal à tous les points de données, par exemple: imaginons-le comme le micro F1 prend la somme de tous les rappels et présessions de différentes étiquettes indépendamment, ce qui signifie que nous avons un déséquilibre de classe. comme T1 = 90%, T2 = 80%, T3 = 5 alors F1 Micro donne un poids égal à toute la classe et n'est pas affecté par les déviations dans la distribution de la classe log la perte de log elle pénalise les petites déviations dans la classe
la source