map(macro average precision) 与 F1score

来源:互联网 发布:unix环境高级编程笔记 编辑:程序博客网 时间:2024/06/06 06:38

之前写过关于准确率和召回率: 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!

原创粉丝点击