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

连接来源:http://mp.weixin.qq.com/s/rXX0Edo8jU3kjUUfJhnyGw

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

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

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

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

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

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

一、召回率

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

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

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

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

二、精度 

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

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

三、精度—召回率权衡

1.  结合精度和召回率

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

2.  可视化精度和召回率

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

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

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

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

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

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

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

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

总结:

对于二分类问题:

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

召回率和精度衡量指标:

  • 召回率(R):分类模型识别所有相关实例的能力
  • 精度(P):分类模型仅仅返回相关实例的能力
  • F1 score:使用调和平均结合召回率和精度的指标

召回率和精度的可视化:

  • 混淆矩阵:展示分类模型的真实和预测标签的对应结果。
  • 受试者特征曲线(ROC 曲线):画出真正例率(TPR)和假正例率(FPR),并将此作为模型归类正例阈值的函数。
  • 曲线下面积(AUC):基于 ROC 曲线下方的面积,计算分类模型总体性能的指标。

原文地址:https://www.cnblogs.com/xuexuefirst/p/8858274.html

时间: 2024-10-21 16:29:40

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

推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)

下面简单列举几种常用的推荐系统评测指标: 1.准确率与召回率(Precision & Recall) 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量.其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率:召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率. 一般来说,Precision就是检索出来的条目(比如:文档.网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了. 正确率.召回

系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)

转自:http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/ 1.准确率与召回率(Precision & Recall) 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量.其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率:召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率. 一般来说,Precision就是检索出来的条目(

【转】推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)

原文链接 http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/ 下面简单列举几种常用的推荐系统评测指标: 1.准确率与召回率(Precision & Recall) 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量.其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率:召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率. 一

评估指标:准确率(Precision)、召回率(Recall)以及F值(F-Measure)

为了能够更好的评价IR系统的性能,IR有一套完整的评价体系,通过评价体系可以了解不同信息系统的优劣,不同检索模型的特点,不同因素对信息检索的影响,从而对信息检索进一步优化. 由于IR的目标是在较短时间内返回较全面和准确的信息,所以信息检索的评价指标通常从三个方面考虑:效率.效果和其他如数据规模. 下面简单介绍几种常用的信息检索评价指标: 1.准确率与召回率(Precision & Recall)        精度和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量.其中精

针对二元分类机器学习模型中的准确率(Precision)、召回率(Recall)、F值(F-Measure)的学习

一.首先了解混淆矩阵中的四个值对应的意思: True Positive(真正,TP):将正类预测为正类数  True Negative(真负,TN):将负类预测为负类数  False Positive(假正,FP):将负类预测为正类数误报 (Type I error)  False Negative(假负,FN):将正类预测为负类数漏报 (Type II error) 如下图所示: 二.评价指标的意义 1.准确率(Accuracy) 注:准确率是我们最常见的评价指标,而且很容易理解,就是被分对的

准确率(Precision)、召回率(Recall)以及F值(F-Measure)

转载自:http://blog.csdn.net/yechaodechuntian/article/details/37394967 https://www.zhihu.com/question/19645541 http://peghoty.blog.163.com/blog/static/49346409201302595935709/

分类指标准确率(Precision)和正确率(Accuracy)的区别

http://www.cnblogs.com/fengfenggirl/p/classification_evaluate.html 一.引言 分类算法有很多,不同分类算法又用很多不同的变种.不同的分类算法有不同的特定,在不同的数据集上表现的效果也不同,我们需要根据特定的任务进行算法的选择,如何选择分类,如何评价一个分类算法的好坏,前面关于决策树的介绍,我们主要用的正确率(accuracy)来评价分类算法. 正确率确实是一个很好很直观的评价指标,但是有时候正确率高并不能代表一个算法就好.比如某个

机器学习模型性能评估方法笔记

模型性能评估综述 对于模型性能的评估,我们通常分为一下三步: 1. 对数据集进行划分,分为训练集和测试集两部分: 2. 对模型在测试集上面的泛化性能进行度量: 3. 基于测试集上面的泛化性能,依据假设检验来推广到全部数据集上面的泛化性能 数据集的划分 对于模型来说,其在训练集上面的误差我们称之为"训练误差"或者"经验误差",而在测试集上的误差称之为"测试误差".因为测试集是用来测试学习期对于新样本的学习能力的,因此我们可以把测试误差作为泛化误差的

准确率,召回率,F值,ROC,AUC

度量表 1.准确率 (presion) p=TPTP+FP 理解为你预测对的正例数占你预测正例总量的比率,假设实际有90个正例,10个负例,你预测80(75+,5-)个正例,20(15+,5-)个负例 实际上你的准确率为75/80=0.9375,但这个评价指标有什么问题呢,想想就知道,这里你并没有用到实际的正例数,那么仅仅靠你猜中的正例作为分母,你并不知道实际的正例有多少,你看召回率为75/90=0.83,就是说你的猜测局限于预测范围 2.召回率 (recall)r=TPTP+FN 理解为你预测