談談評價指標中的宏平均和微平均
今天在閱讀周志華老師的《機器學習》一書時,看到性能度量這一小節,里面講到了宏平均和微平均的計算方法,這也是我一直沒有很清晰的一個概念,於是在看了之后又查閱了一些資料,但是還是存在一些問題,想和大家分享一下。
(1)召回率、准確率、F值
對於二分類問題,可將樣例根據其真實類別和分類器預測類別划分為:
-
真正例(True Positive,TP):真實類別為正例,預測類別為正例。
-
假正例(False Positive,FP):真實類別為負例,預測類別為正例。
-
假負例(False Negative,FN):真實類別為正例,預測類別為負例。
-
真負例(True Negative,TN):真實類別為負例,預測類別為負例。
然后可以構建混淆矩陣(Confusion Matrix)如下表所示。
真實類別 |
預測類別 |
|
正例 |
負例 |
|
正例 |
TP |
FN |
負例 |
FP |
TN |
准確率,又稱查准率(Precision,P):
(1)
召回率,又稱查全率(Recall,R):
(2)
F1值:
(3)
F1的一般形式:
(4)
如果只有一個二分類混淆矩陣,那么用以上的指標就可以進行評價,沒有什么爭議,但是當我們在n個二分類混淆矩陣上要綜合考察評價指標的時候就會用到宏平均和微平均。
(2)宏平均(Macro-averaging)和微平均(Micro-averaging)
宏平均(Macro-averaging),是先對每一個類統計指標值,然后在對所有類求算術平均值。
(5)
(6)
(7)
(8)
微平均(Micro-averaging),是對數據集中的每一個實例不分類別進行統計建立全局混淆矩陣,然后計算相應指標。
(9)
(10)
(11)
從上面的公式我們可以看到微平均並沒有什么疑問,但是在計算宏平均F值時我給出了兩個公式分別為公式(7)和(8)。這兩個公式就是我疑惑的地方,因為我在不同的論文中看到了不同的宏平均F值的計算方法,例如在參考資料的[3][4]。於是我試圖查閱宏平均和微平均提出的初始論文。但是可能由於時間比較久遠還是某些原因,我並沒有找到最早提出的論文,而大多數論文使用它們的時候引用比較多的是(Yang 1999)的這篇論文,論文中也未明確給出宏平均F值的計算公式,但是根據其描述:
"For evaluating performance average across categories, there are two conventional methods, namely macro-averaging and micro-averaging. Macro-averaged performance scores are computed by first computing the scores for the per-category contingency tables and then averaging these per-category scores to compute the global means. Micro-averaged performance scores are computed by first creating a global contingency table whose cell values are the sums of the corresponding cells in the per-category contingency tables, and then use this global contingency table to compute the micro-averaged performance scores"
可以看到論文里的宏平均F值應該按照公式(7)計算。但是在不少論文中我也看到了公式(8)的計算方法,所以在這可能並沒有一個定論,我也比較困惑。
在參加評測中,評價指標計算都是由主辦方制定並進行計算,一般會有明確的計算公式,我在這里想說的是在不少論文中使用宏平均F值時並未給出明確的計算公式,可能會存在兩種不同的算法,在論文進行結果比較時,可能會有所差異。
參考資料:
1. 周志華. 機器學習.清華大學出版社
2. Yang Y. An evaluation of statistical approaches to text categorization[J]. Information retrieval, 1999, 1(1-2): 69-90.
3. 楊傑明. 文本分類中文本表示模型和特征選擇算法研究. 吉林大學博士論文.
4. 廖一星. 文本分類及其特征降維研究. 浙江大學博士論文.