作者:Charles Xiao
链接:https://www.zhihu.com/question/19645541/answer/91694636
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
精确率(precision)和准确率(accuracy)是不一样的,主要精确率与召回率之间的差别
一.定义辨析
刚开始接触这两个概念的时候总搞混,时间一长就记不清了。
实际上非常简单, 精确率是针对我们 预测结果而言的,它表示的是 预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),也就是
![]()
而 召回率是针对我们原来的 样本而言的,它表示的是 样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。
![]()
其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。
在信息检索领域,精确率和召回率又被称为查准率和查全率,
查准率=检索出的相关信息量 / 检索出的信息总量(预测为证的样本)
查全率=检索出的相关信息量 / 系统中的相关信息总量(样本中的正例)
二.举个栗子
假设我们手上有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
除此之外,还有ROC曲线,PR曲线,AUC等评价指标,可以参见我的博客:机器学习性能评估指标
在二分问题的情况下(非对即错,非0即1):
查准率(Precision)就是你认为是对的样例中(预测的为正),到底有多少真是对的。
查全率(Recall)就是所有对的样例(总样本中为正的样本),你找出了多少,或者说你判断对了多少
一个班有50人,在某场考试中有40人及格,10人不及格。
现在需要根据一些特征预测出所有及格的学生。
某一模型执行下来,给出了39人,其中37人确实及格了,剩下2人实际上不及格。
Accuracy(准确率)
分类正确的样本数 与 样本总数之比。即:(TP + TN) / ( ALL )
.
在本例中,正确分类了45人(及格37 + 不及格8),所以 Accuracy = 45 / 50 = 90%
.
Precision(精确率、查准率)
被正确检索的样本数 与 被检索到样本总数之比。即:TP / (TP + FP)
.
在本例中,正确检索到了37人,总共检索到39人,所以 Precision = 37 / 39 = 94.9%
.
Recall (召回率、查全率)
被正确检索的样本数 与 应当被检索到的样本数之比。即:TP / (TP + FN)
.
在本例中,正确检索到了37人,应当检索到40人,所以 Recall = 37 / 40 = 92.5%
.
为什么要不同的指标
根据上边公式的不同,可以借此理解不同指标的意义。
准确率是最常用的指标,可以总体上衡量一个预测的性能。但是某些情况下,我们也许会更偏向于其他两种情况。
「宁愿漏掉,不可错杀」
在识别垃圾邮件的场景中可能偏向这一种思路,因为我们不希望很多的正常邮件被误杀,这样会造成严重的困扰。
因此,Precision 将是一个被侧重关心的指标。
「宁愿错杀,不可漏掉」
在金融风控领域大多偏向这种思路,我们希望系统能够筛选出所有有风险的行为或用户,然后交给人工鉴别,漏掉一个可能造成灾难性后果。
因此,Recall 将是一个被侧重关心的指标。
综合评价 (F-Score)
更多时候,我们希望能够同时参考 Precision 与 Recall,但又不是像 Accuracy 那样只是泛泛地计算准确率,此时便引入一个新指标 F-Score
,用来综合考虑 Precision 与 Recall.
其中 β 用于调整权重,当 β=1
时两者权重相同,简称为 F1-Score
.
若认为 Precision 更重要,则减小 β,若认为 Recall 更重要,则增大 β.
作者:0晨鹤0
链接:https://www.jianshu.com/p/8b7324b0f307
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。