在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。业内目前常常采用的评价指标有准确率(Precision)、召回率(Recall)、F值(F-Measure)等,下图是不同机器学习算法的评价指标。下文讲对其中某些指标做简要介绍。
对于一个分类任务的测试集,其本身有正负两类标签,我们对于这个测试集有一个预测标签,也是正负值。对于这些样本,我们的预测是否正确?有可能正样本我们预测成了负样本,负样本我们预测成了正样本,如何用我们的预测结果来评价我们的模型呢?
有如下定义:
TP(True positive):真正例,样本为正,预测为正。
TN(True negative):真负例,样本为负,预测为负。
FP(False positive): 假正例,样本为负,预测为正。
FN(False negative):假负例,样本为正,预测为负。
混淆矩阵
精确率(P)定义为:命中的正样本数比所有的预测为正的样本数,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本,即
**召回率(R)**的定义为:命中的正样本数比所有样本集中的正样本数,召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了,即
其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。
精确率衡量查得多准,召回率衡量查得多全。
需要注意的是精确率(precision)和准确率(accuracy)是不一样的,准确率应该用预测正确的样本数除以样本总数,即
在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc 也有 99% 以上,没有意义。
F-Measure(综合评价指标):查准率P与查全率R是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低,查全率高时,查准率往往偏低。因此人们设计了一些综合考虑查全率、查准率的性能度量。
F-Measure是Precision和Recall加权调和平均:
β>1时查全率有更大影响;β<1时查准率有更大影响。
当β为1时,F-Measure便成了我们所熟知的F1度量
其为查准率与查全率的调和平均
二.举例
假设我们手上有60个正样本,40个负样本,我们要找出所有的正样本,系统查找出50个,其中只有40个是真正的正样本,计算上述各指标。
TP: 将正类预测为正类数 40
FN: 将正类预测为负类数 20
FP: 将负类预测为正类数 10
TN: 将负类预测为负类数 30
准确率(accuracy) = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70%
精确率(precision) = TP/(TP+FP) = 80%
召回率(recall) = TP/(TP+FN) = 2/3
F1=(2PR)/(P+R)=74.67%
参考博文:
https://www.zhihu.com/question/19645541
http://charleshm.github.io/2016/03/Model-Performance/
https://blog.csdn.net/ibelieve8013/article/details/106769234/
https://zhuanlan.zhihu.com/p/26293316
https://blog.csdn.net/quiet_girl/article/details/70830796