模型評(píng)估指標(biāo)micro avg、macro avg和weighted avg的計(jì)算方式及區(qū)別
??在機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型評(píng)估結(jié)果中,我們經(jīng)常會(huì)遇到micro avg、macro avg和weighted avg。本文將會(huì)介紹這三種模型評(píng)估指標(biāo)的計(jì)算方式以及它們之間的區(qū)別。
??我們以sklearn.metrics.classification_report的輸出結(jié)果作為展示,示例模型評(píng)估結(jié)果如下:

??maro avg的中文名稱為宏平均,其計(jì)算方式為每個(gè)類型的P、R的算術(shù)平均,我們以F1的macro avg為例,上述輸出結(jié)果中的macro avg F1值的計(jì)算方式為:
macro avg F1 = (0.90+0.73)/2=0.815
??weighted avg的計(jì)算方式與micro avg很相似,只不過(guò)weighted avg是用每一個(gè)類別樣本數(shù)量在所有類別的樣本總數(shù)的占比作為權(quán)重,因此weighted avg的計(jì)算方式為:
weighted avg = 0.90*1207/1756+0.73*549/1756=0.8468
??micro avg的中文名稱為微平均,是對(duì)數(shù)據(jù)集中的每一個(gè)示例不分類別進(jìn)行統(tǒng)計(jì)建立全局混淆矩陣,然后計(jì)算相應(yīng)的指標(biāo)。在微平均評(píng)估指標(biāo)中,樣本數(shù)多的類別主導(dǎo)著樣本數(shù)少的類,其計(jì)算公式如下:

其中TP為被正確地劃分為正例的個(gè)數(shù),即實(shí)際為正例且被分類器劃分為正例的樣本數(shù),F(xiàn)P為被錯(cuò)誤地劃分為正例的個(gè)數(shù),即實(shí)際為負(fù)例但被分類器劃分為正例的樣本數(shù)。
??以下面的代碼為例:
# -*- coding: utf-8 -*-
from sklearn.metrics import confusion_matrix, precision_score
y_true = ["A", "A", "A", "A", "B", "B", "C", "C", "C", "C", "C"]
y_pred = ["A", "B", "A", "A", "B", "A", "B", "C", "C", "C", "C"]
print(confusion_matrix(y_true, y_pred))
print(precision_score(y_true, y_pred, average='micro'))
輸出的混淆矩陣和micro avg precision為:
[[3 1 0]
[1 1 0]
[0 1 4]]
0.7272727272727273
對(duì)于類別A,它的TP=3, FP=1;對(duì)于類別B,它的TP=1, FP=1;對(duì)于類別C,它的TP=4,F(xiàn)P=1,因此micro avg precision為:
(3+1+4)/(3+1+1+1+4+1)=0.7273
??本文的目的在于簡(jiǎn)單介紹模型評(píng)估指標(biāo)micro avg、macro avg和weighted avg的區(qū)別以及它們的計(jì)算方式,網(wǎng)上有很多文章存在錯(cuò)誤,應(yīng)該引起重視。后面有機(jī)會(huì)再詳細(xì)介紹。
??本文到此結(jié)束,感謝閱讀~
