衡量机器学习模型的三大指标:准确率、精度和召回率。

摘要:
尽管该模型具有近乎完美的精度,但在这个问题上,精度显然不是一个合适的度量标准。也就是说,正确判断的恐怖分子占所有实际恐怖分子的比例。在召回率的例子中,当召回率增加时,精度将降低。同样,将100%的乘客标记为恐怖分子的模型可能不可用。虽然它有近乎完美的准确性,但它的准确性和召回率为零,因为没有TP(真实示例)!换句话说,随着精度的提高,召回率会降低,反之亦然。TPR是召回率,FPR是反例被报告为阳性案例的概率。

       倾向于使用准确率,是因为熟悉它的定义,而不是因为它是评估模型的最佳工具!  精度(查准率)和召回率(查全率)等指标对衡量机器学习的模型性能是非常基本的,特别是在不平衡分布数据集的案例中,在周志华教授的「西瓜书」中就特别详细地介绍了这些概念。

  什么是分布不平衡的数据集?

  倘若某人声称创建了一个能够识别登上飞机的恐怖分子的模型,并且准确率(accuracy)高达 99%。你相信吗?好了,有这么一个模型:将从美国机场起飞的所有乘客简单地标注为非恐怖分子。已知美国全年平均有 8 亿人次的乘客,并且在 2000-2017 年间共发现了 19 名恐怖分子,这个模型达到了接近完美的准确率——99.9999999%。尽管这个模型拥有接近完美的准确率,但是在这个问题中准确率显然不是一个合适的度量指标。

  恐怖分子检测是一个不平衡的分类问题:我们需要鉴别的类别有两个——恐怖分子和非恐怖分子,其中一个类别代表了极大多数的数据点。                                                  

  另一个不平衡分类问题出现在当疾病在公众中的发病率很低时的疾病监测。在这两种情况下,正例类别——疾病或恐怖分子,远远少于负例类别的数量。这种问题是数据科学中比较常见的例子,其中准确率并不是评估模型性能的很好的衡量标准。

  直观地说,我们应该聚焦于正例(恐怖分子)的识别。

一、召回率

  我们应该最大化的是统计学上称为召回率或查全率(recall)的衡量指标,或者是最大化模型找到数据集中所有相关案例的能力。

  召回率=真正例/(真正例+假反例)。也就是正确判为恐怖分子占实际所有恐怖分子的比例。

 衡量机器学习模型的三大指标:准确率、精度和召回率。第1张

你可能注意到了这个等式中的一些细节:如果我们将所有的个体都预测为恐怖分子,那么模型的召回率就是 1.0!因为预测所有人都是恐怖分子,自然包括了恐怖分子。分号上面terrorists correctly identified=全部恐怖分子数。分母terrorists incorrectly labeled as not terrorists=0。

这样我们就得到了一个完美的模型吗?
当然,不是!在我们想要最大化的指标之间存在一个权衡。在召回率的例子中,当召回率增大时,精度会减小。同样,将 100% 的乘客标记为恐怖分子的模型可能是不可用的。                                                   统计学为我们提供了表达直觉的词汇:这个新的模型是低精度(precision)的,或者说较低的仅识别相关数据点的能力。

二、精度 

 精度=真正例/(真正例+假正例):也就是在所有判为恐怖分子中,真正的恐怖分子的比例。

衡量机器学习模型的三大指标:准确率、精度和召回率。第2张

  现在我们可以看到,第一个模型给所有的个体标上了非恐怖分子的标签,这个模型是不能使用的。尽管它有着近乎完美的准确率,但是它的精度和召回率都是零,因为没有 TP(真正例)!
假设我们轻微地修改一下模型,然后将一个个体正确地识别为恐怖分子。现在,精度是 1(没有假正例,FP),但是召回率很低,因为实际上会有很多假反例(FN)。
假设我们走到了另一个极端,将所有的乘客标记为恐怖分子,召回率就会是 1——我们将抓住每一个恐怖分子,但是精度会特别低,我们最终会拘留很多无辜的人。换言之,随着精度的增加,召回率会降低,反之亦然。

三、精度—召回率权衡

1.  结合精度和召回率

在某些情况中,我们也许需要以牺牲另一个指标为代价来最大化精度或者召回率。
例如,在之前的例子中,在对患者进行随访检查的初步疾病筛查中,我们可能希望得到接近于 1 的召回率—我们想找到所有实际患病的患者。
如果随访检查的代价不是很高,我们可以接受较低的精度。然而,如果我们想要找到精度和召回率的最佳组合,我们可以使用 F1 score 来对两者进行结合。

衡量机器学习模型的三大指标:准确率、精度和召回率。第3张

2.  可视化精度和召回率

(1)混淆矩阵(confusion matrix):给定一个模型的预测标签时,它可以被用来快速计算精度和召回率。

二分类的混淆矩阵总共包含四个不同的结果:真正例(TP)、假正例(FP)、真反例(TN),以及假反例(FN)。
列表示真实值,行表示预测值。行和列的交叉点指的就是这四种结果。例如,如果我们将一个数据点预测为正例,但是它实际上是反例,那么这就是一个假正例。

衡量机器学习模型的三大指标:准确率、精度和召回率。第4张

衡量机器学习模型的三大指标:准确率、精度和召回率。第5张

(2)受试者特征曲线(ROC 曲线,Receiver Operating Characteristic curve):

  ROC 曲线展示了当改变在模型中识别为正例的阈值时,召回率和精度的关系会如何变化。
  为了将某个病人标记为患有某种疾病(一个正例标签),我们为每种疾病在这个范围内设置一个阈值,通过改变这个阈值,我们可以尝试实现合适的精度和召回率之间的平衡。如果我们有一个用来识别疾病的模型,我们的模型可能会为每一种疾病输出介于 0 到 1 之间的一个分数,为了将某个病人标记为患有某种疾病(一个正例标签),我们为每种疾病在这个范围内设置一个阈值,通过改变这个阈值,我们可以尝试实现合适的精度和召回率之间的平衡。

  ROC 曲线在 Y 轴上画出了真正例率(TPR),在 X 轴上画出了假正例率 (FPR)。TPR 是召回率,FPR 是反例被报告为正例的概率。这两者都可以通过混淆矩阵计算得到。

衡量机器学习模型的三大指标:准确率、精度和召回率。第6张

衡量机器学习模型的三大指标:准确率、精度和召回率。第7张

1.  选择最佳的诊断界限值。ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少

2.  两种或两种以上不同诊断试验对算法性能的比较。在对同一种算法的两种或两种以上诊断方法进行比较时,可将各试验的ROC曲线绘制到同一坐标中,以直观地鉴别优劣,靠近左上角的ROC曲线所代表的受试者工作最准确。亦可通过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种试验的 AUC最大,则哪一种试验的诊断价值最佳。

  在阈值为 1.0 的情况下,我们将位于图的左下方,因为没有将任何数据点识别为正例,这导致没有真正例,也没有假正例(TPR = FPR = 0)。当降低阈值时,我们将更多的数据点识别为正例,导致更多的真正例,但也有更多的假正例 ( TPR 和 FPR 增加)。最终,在阈值 0.0 处,我们将所有数据点识别为正,并发现位于 ROC 曲线的右上角 ( TPR = FPR = 1.0 )。

举例:

假设我们手上有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 score = 2 * p+r/p*r = 5.5

总结:

对于二分类问题:

  • 真正例(TP):实际上是正例的数据点被标记为正例

  • 假正例(FP):实际上是反例的数据点被标记为正例

  • 真反例(TN):实际上是反例的数据点被标记为反例

  • 假反例(FN):实际上是正例的数据点被标记为反例

召回率和精度衡量指标:

  • 召回率(R):分类模型识别所有相关实例的能力

  • 精度(P):分类模型仅仅返回相关实例的能力

  • F1 score:使用调和平均结合召回率和精度的指标

召回率和精度的可视化:

  • 混淆矩阵:展示分类模型的真实和预测标签的对应结果。

  • 受试者特征曲线(ROC 曲线):画出真正例率(TPR)和假正例率(FPR),并将此作为模型归类正例阈值的函数。

  • 曲线下面积(AUC):基于 ROC 曲线下方的面积,计算分类模型总体性能的指标。

参考:http://mp.weixin.qq.com/s/rXX0Edo8jU3kjUUfJhnyGw

免责声明:文章转载自《衡量机器学习模型的三大指标:准确率、精度和召回率。》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇word邮件合并功能保留指定位数的小数格式HTML页面过渡效果大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【SpringCloud】SpringCloud Alibaba Sentinel实现熔断与限流

SpringCloud Alibaba Sentinel实现熔断与限流 限流与降级 限流 blockHandler 降级 fallback 降级需要运行时出现异常才会触发,而限流一旦触发,你连运行的机会都没有,当然就不会降级。 也就是说,两者如果同时触发,那么一定是限流触发(降级连机会都没有)。 Sentiel 官网 https://github.com/...

【转】 SpringCloudAlibaba之Sentinel流量控制 SpringCloudAlibaba微服务实战教程系列

【转】 SpringCloudAlibaba之Sentinel流量控制 SpringCloudAlibaba微服务实战教程系列 一、认识下Sentinel Sentinel使用流程:微服务会集成Sentinel客户端,从官方下载jar启动作为服务端,在有配置变更和添加的时候Sentinel会发送消息给客户端,进行变更应用。 Sentinel 分为两个部分...

小议WebRTC拥塞控制算法:GCC介绍

网络拥塞是基于IP协议的数据报交换网络中常见的一种网络传输问题,它对网络传输的质量有严重的影响,网络拥塞是导致网络吞吐降低,网络丢包等的主要原因之一,这些问题使得上层应用无法有效的利用网络带宽获得高质量的网络传输效果。特别是在通信领域,网络拥塞导致的丢包,延迟,抖动等问题,严重的影响了通信质量,如果不能很好的解决这些问题,一个通信产品就无法在现实环境中正常...

人脸识别评价算法指标

首先了解相关指标名称 误识率FAR false acceptance rate FAR=NFA/NIRA NIRA是类间测试次数(假冒者尝试的总次数),NFA是错误接收次数 FAR越低,假冒者被接受的可能性越低,系统安全性越高 误拒绿FRR false rejection rate FRR=NFR/NGRA NGRA是类内测试次数(合法用户尝试的总次数),...

机器学习算法中的评价指标(准确率、召回率、F值、ROC、AUC等)

参考链接:https://www.cnblogs.com/Zhi-Z/p/8728168.html 具体更详细的可以查阅周志华的西瓜书第二章,写的非常详细~ 一、机器学习性能评估指标 1.准确率(Accurary) 准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。 准确率确实是一个很...

位姿检索PoseRecognition:LSH算法.p稳定哈希

位姿检索使用了LSH方法,而不使用PNP方法,是有一定的来由的。主要的工作会转移到特征提取和检索的算法上面来,有得必有失。因此,放弃了解析的方法之后,又放弃了优化的方法,最后陷入了检索的汪洋大海。 0:转自wiki:http://en.wikipedia.org/wiki/Locality_sensitive_hashing 以下参考资料仅供参考:LS...