[筆記] macro, micro 與 binary 不同版本的 acc., precision, recall, fscore 計算方法
這篇舉例說明頗清楚:
https://blog.csdn.net/jmh1996/article/details/114935105
我也來舉個例子:
Notations
- gt: ground truth
- pred: predict result
- 檢測陽性,正樣本 + : label 為 1
- 檢測陰性,負樣本 - : label 為 0
看表格解釋
d1 | d2 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | d10 | |
---|---|---|---|---|---|---|---|---|---|---|
gt | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
pred | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
對於+ | TN | FP | TN | TP | FN | TN | TN | FP | TN | TP |
對於- | TP | FN | TP | TN | FP | TP | TP | FN | TP | TN |
統計一下
對於+ 當中
對於- 當中
可根據定義計算 precision, recall 與 F1-score:
binary avg. of precision, recall
在 sklearn.metrics 的 precision_recall_fscore_support 裡所謂的 binary average 模式
就是只看對於+(陽性樣本)的 precision, recall, fscore 值
計算出來得到
F1 值為這兩個值的加權平均,在此就不贅述
macro avg. of precision, recall
macro 就是把對於正樣本(+) 的結果與對於負樣本(-) 的結果分別算出來後,做平均
正樣本的結果已經在上一段落算完,因此我們還需要計算
對於-(陰性樣本)的precision, recall, fscore 值計算如下
接著就可以計算 macro average 版本的 precision, recall, fscroe 值計算如下
micro avg. of precision, recall
micro avg 是把上述的
- 對於 + 當中
- 對於 - 當中
把以上兩個分類觀點觀察到的 TP, FP, TN, FN 都做加總之後再做計算:
再根據定義計算出 micro average 版本的 precision, recall, fscore 值計算如下
報告完畢
留言
張貼留言