原文链接

精度(查准率)和召回率(查全率)是衡量机器学习模型性能的重要指标,特别是数据集分布不平衡的案例中。

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

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

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

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

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

一、召回率

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

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

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

这个模型依旧不行,我们想要最大化的指标之间存在一个权衡。在召回率的例子中,当召回率增大时,精度会减小。

二、精度

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

随着精度增加,召回率会降低,反之亦然。

三、精度—召回率权衡

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 是反例被报告为正例的概率。这两者都可以通过混淆矩阵计算得到。

对于二分类问题:

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

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

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

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

召回率和精度衡量指标:

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

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

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

准确率、精度和召回率相关推荐

  1. 分类器MNIST交叉验证准确率、混淆矩阵、精度和召回率(PR曲线)、ROC曲线、多类别分类器、多标签分类、多输出分类

    本博客是在Jupyter Notebook下进行的编译. 目录 MNIST 训练一个二分类器 使用交叉验证测量精度 混淆矩阵 精度和召回率 精度/召回率权衡 ROC曲线 多类别分类器 错误分析 多标签 ...

  2. 精度、召回率、准确率、F1、ROC、AUC的理解

    1. 错误率.精度 精度(accuracy) 分类正确的样本数占总样本数的比例 错误率(error rate) 分类错误的样本数占总样本数的比例 通常来说精度(accuracy)不是一个好的性能指标, ...

  3. 准确率 召回率_机器学习中F值(F-Measure)、准确率(Precision)、召回率(Recall)

    在机器学习.数据挖掘.推荐系统完成建模之后,需要对模型的效果做评价. 业内目前常常采用的评价指标有准确率(Precision).召回率(Recall).F值(F-Measure)等,下图是不同机器学习 ...

  4. 机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)

    转载自:https://www.cnblogs.com/Zhi-Z/p/8728168.html 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召回率(Recall) ...

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

    在信息检索.分类体系中,有一系列的指标,搞清楚这些指标对于评价检索和分类性能非常重要,因此最近根据网友的博客做了一个汇总. 准确率.召回率.F1 信息检索.分类.识别.翻译等领域两个最基本指标是召回率 ...

  6. 机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

    增注:虽然当时看这篇文章的时候感觉很不错,但是还是写在前面,想要了解关于机器学习度量的几个尺度,建议大家直接看周志华老师的西瓜书的第2章:模型评估与选择,写的是真的很好!! 以下第一部分内容转载自:机 ...

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

     下面简单列举几种常用的推荐系统评测指标: 1.准确率与召回率(Precision & Recall) 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量.其 ...

  8. 自然语言处理:分词评测指标——准确率(Precision)、召回率(Recall)、F值(F-Measure)

    下面简单列举几种常用的推荐系统评测指标: 1.准确率与召回率(Precision & Recall) 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量.其中精度 ...

  9. 机器学习深度学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

    增注:虽然当时看这篇文章的时候感觉很不错,但是还是写在前面,想要了解关于机器学习度量的几个尺度,建议大家直接看周志华老师的西瓜书的第2章:模型评估与选择,写的是真的很好!! 以下第一部分内容转载自:机 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(三十五) - SLAM - 基于网格的FastSLAM
  2. Java编程笔试时输入问题:如何输入固定长度、不定长度的一维数组?如何输入固定长度、不定长度的二维数组?
  3. oracle 9i 在安装到Oracle Database Configuration assistant....的时候
  4. Linux基础知识(一)
  5. 1.3. PostgreSQL 官方 YUM 源安装
  6. LVS+Keepalive 实现负载均衡高可用集群
  7. 浅谈Scala 2.8的包对象(package object)
  8. 七牛切片视频php,音视频切片(HLS)
  9. 全国高校计算机能力挑战赛C语言组真题
  10. async And await异步编程活用基础
  11. VB--Adodc控件
  12. PID参数整定具体方法-圆周倒立摆
  13. python33个保留字基本含义_Python保留字总结
  14. postman测试上传文件(上传图片)
  15. 对比 GA 、PSO 、DE三种算法 求解连续优化问题的性能
  16. 无觅科技分析:小红书海外版云手机,养号增粉点赞利器
  17. 与已安装应用签名不同
  18. Could not load the Qt platform plugin “xcb“ 问题解决
  19. 计算机视觉python--基础矩阵和极点极线
  20. mplfinance蜡烛图 均线成交量

热门文章

  1. Apache shiro 官方API (中文版)(承蒙大佬们看重 小弟整理了下 无需积分 编辑的不好 希望帮到你们)
  2. 讲讲一条MySQL更新语句是怎么执行的?
  3. android自定义键盘遮挡,android中键盘遮挡了dialog里的内容怎么处理
  4. 神经网络类型介绍 ANN FNN RNN LSTM GAN DQN
  5. java三角形边长_利用java解决三角形角度问题
  6. Centos7安装使用libvirt
  7. binlog实时同步
  8. Android-内存泄露知识详解
  9. DOTween的一些基本用法
  10. AndroidInputSystem