map(macro average precision) 與 F1score

之前寫過關於準確率和召回率: http://blog.csdn.net/zjm750617105/article/details/54914184

MAP (注意大小寫,mAP 是mean average precision), macro average precision, 宏平均準確率:

其實就是 各個類別的準確率的平均值, 每個類別的準確率計算參考上面的鏈接。

具體例子:
[[ 7 28 0 0 0 0 0 93]
[ 5 28 0 0 0 0 1 85]
[ 2 18 0 0 0 0 0 47]
[ 2 4 0 0 0 0 0 15]
[ 2 8 0 0 0 0 0 15]
[ 2 18 0 0 0 1 1 59]
[ 0 13 0 0 0 0 0 53]
[ 2 18 0 0 0 0 0 180]]
這是一個8*8混淆矩陣,下面計算一個map的值:
p1 = 7/(第1列的和22)
p2 = 28/(第2列的和135)
p3 = 0/(第3列的和0)
p4 = 0/(第4列的和0)
p5 = 0/(第5列的和0)
p6 = 1/(第6列的和1)
p7 = 0/(第7列的和0)
p8 = 180/(第8列的和547)
map = (p1+..+p8)/8 = 23.18%

這個只注重每個類別的準確率,不注重召回率,注意使用條件!

補充一下 F1 score 的計算:
F1 score (平衡F分數):兼顧分類模型的準確率和召回率,被定義爲準確率和召回率的調和平均數。
上面我們計算了每個類別的 precision, 然後我們需要計算每個類別的召回率,然後這裏寫一個比較簡單的F1(precison的權重 beta 爲1的情況)的計算公式:
F1_i = (2*precision*recall)/(precision + recall)
F1 = (F1_1+..+F1_8)/8

Done!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章