ROC曲线

  • 定义

在信号检测理论中,接收者操作特征曲线receiver operating characteristic curve,或者叫ROC曲线)是一种坐标图式的分析工具,用于
(1) 选择最佳的信号侦测模型、舍弃次佳的模型。
(2) 在同一模型中设定最佳阈值。

这里我们只要记得 ROC曲线 主要是用来确定一个模型的 阈值。

  • 理解
    既然我们想要直白来理解 ROC曲线,那么例子是肯定少不了的:
    假设1:感冒有三种特征,咳嗽,发烧,流鼻涕。
    假设2:如果想确定一个人是否得了感冒,可以根据三种特征来打分,每个特征可以打 0-1 分。打分越高,得感冒概率越高。
    假设3:现在你是一个医生,有100个病人来看病,你需要根据这些人的三个感冒特征给他们打分,得到如下一组数据 (编号,分数)

    (1,2) (2,2.4) (2,0.4)....(100,3)
    

    假设4:我是一个神医,能百分百确定别人是否得了感冒。然后我看了你的报告,并给每个数据都给了确定的答案,所以数据就变成了(编号,是否真感冒,分数)(其中感冒60人,正常40人)

    (1,0,2) (2,1,2.4) (2,0,0.4)....(100,1,3)
    

    好了,现在问题来了,你是给每个病人打分了,病人也知道分数越高得感冒得概率越高,但是,到底得没得感冒却没有一个标准,这个标准就是上面说的 阈值,所以接下来就是要想办法确定这个 阈值或者标准了,那么我们采用办法呢?对于这种 二分类 问题的阈值,就是我们 ROC 曲线大展身手的时候了。

  • ROC 曲线 和 阈值

    • 阈值比较小的时候:
      如果我们认为打 1 分以上的就是感冒患者,那么只要有一点症状就可以确诊为感冒了,这时候100个人,确诊感冒的可能有 80 人,但是实际呢?可能80个人中只有50个是真感冒的,。如下图
    阈值=1 诊断感冒 诊断正常 合计
    真感冒 50 10 60
    真正常 30 10 40
    合计 80 20 100
    • 阈值比较大的时候:
      如果我们认为打 2 分以上的才是感冒患者,这时候100个人,确诊感冒的可能有 20 人,但是实际呢?真正感冒的可是60人,你确诊20个,可能其中还有一个是误诊呢?如下图
    阈值=2 诊断感冒 诊断正常 合计
    真感冒 19 41 60
    真正常 1 39 40
    合计 20 80 100
    • 那么我们期望的是阈值不大不小,换句话理解就是,我们希望得到一个使得 诊断感冒/真感冒 趋于 1(如果你感冒了,我们尽量确诊),诊断感冒/真正常 趋于 0(如果你正常,尽量不误诊)的阈值。在 ROC曲线中我们叫做 真阳率 和 假阳率

    • 所以我们一点点改变阈值,就可以得到一组又一组的 真阳率 和 假阳率 ,将这一组组 真阳率 和 假阳率在坐标轴上表示出来,就是我们要的 ROC曲线,通过图形化,我们就可以很直观的取一个合适的阈值了。(这个图只是随便在网上找的,可不是这个列子的图噢,我们大概看下 ROC曲线的 样子就好了,哈哈)

      roc.png

好了,到这里我们大概就讲了下 ROC曲线 的由来:主要就是为了方便我们直观的求一个合适的 阈值罢了,并没有什么太高深的东西,值得一提的是,ROC 是从 预测为真的角度来看待问题的,所以我们只需要考虑 诊断感冒 这个方面来计算:诊断感冒正确的 / 真感冒诊断感冒错误的 / 真正常

AUC

  • 定义

    1. ROC曲线 与 横轴 围城的曲边形的面积
    2. 将所有样本根据算法模型预测的打分进行升序排列,随机挑选一正一负两个样本,负样本排在正样本前面的概率
      只是看文字好像不是很好理解,可以结合上面那个例子来看一看就好理解了,我们跟所有来看病的人都有打分,按照打分给他们排个序,然后随机挑选一个真得感冒 和 一个 真正常的人,看一下是不是真正常的人排在前面,如果是,那么计数为1,进行 N 次实验,所有计数的累计和 为 n,那么 n/N 就是AUC的值了,顺便提一下,最理想的情况就是 n = N了,也意味着我们的打分已经完美

定义有两种,但是他们应该如何进行理解互通呢?笔者目前也不是很清楚,尝试推理了下,也不是很明白,这里就不敢班门弄斧了,如果有大佬理解,请不吝赐教!!!非常感谢!!!这里如果有感谢兴趣的朋友,也可以查看下 这篇博客,应该是我找到的比较有深度的 auc 的计算了

  • 为什么需要 AUC
    前面我们说了 ROC曲线 可以用来给一个模型确定阈值,那么 AUC 则是来评判一个 二分类的 模型的优劣。
    如果 AUC = 1:完美预测,基本不会存在的情况。
    如果 0.5 < AUC < 1:除了完美预测,那就乘这个区间的最有价值了。
    如果 AUC = 0.5:因为是二分类,随机猜测也就是这个概率了,完全就没有价值
    如果 AUC < 0.5:比随机猜测的概率还低!!!但是反过来说,非黑即白,如果取个反呢?

总的来说,不考虑最后一种情况,AUC当然是越大 越好,如果是最后一致情况,那当然是越小越好,因为我一旦取反,那么就和第一种情况一样啦。

  • AUC 计算
    首先还是这篇博客。

    其次,我想说的是,写AUC的博客那么多,为什么没人将工作中的计算方法说上来呢?所以这里我就贴一个工作中计算方式:
    1.首先我们计算AUC肯定得有一份打完分了的数据,假设数据auc.text,内容如下:

    -1    0.12
    -1    0.13
    -1    0.16
    1     0.2
    -1    0.21
    -1    0.23
    1     0.3
    -1    0.32
    -1    0.35
    1     0.4
    -1    0.42
    -1    0.46
    1     0.5
    -1    0.51
    -1    0.53
    1     0.7
    1     1.1
    1     1.2
    1     1.2
    
    1. 计算方法
      cat auc.text |sort -k2n|awk '($1==-1){++x;a+=y}($1==1){++y}END{print 1.0-a/(x*y)}'
      通过一个简单的 awk 就可以得出来了,至于这个公式得原理,也很简单,就是完全遵循我们定义中的第二种方式得来的,详细的过程我就不啰嗦了,如果有疑问,欢迎留言咨询

好了,本文到此就结束啦!谢谢你的阅读!!!

ROC曲线 和 AUC 直白详解相关推荐

  1. 机器学习基础:ROC曲线与AUC计算详解

    AUC & ROC AUC是一个模型评价指标,只能用于二分类模型的评价,对于二分类模型,还有损失函数(logloss),正确率(accuracy),准确率(precision),但相比之下AU ...

  2. 详解机器学习中 ROC曲线、AUC值、正确率、召回率

    文章目录 前言简介 医学图像识别二分类问题 ROC 曲线 如何画ROC曲线 AUC 前言简介 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分的样例比例 ...

  3. sklearn下的ROC与AUC原理详解

    ROC全称Receiver operating characteristic. 定义 TPR:true positive rate,正样本中分类正确的比率,即TP/(TP+FN),一般希望它越大越好 ...

  4. 分类模型-评估指标(2):ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】【AUC的计算方式:统计所有正负样本对中的正序对】

    评价二值分类器的指标很多,比如precision.recall.F1 score.P-R曲线等.但这些指标或多或少只能反映模型在某一方面的性能.相比而言,ROC曲线则有很多优点,经常作为评估二值分类器 ...

  5. auc计算公式_图解机器学习的准确率、精准率、召回率、F1、ROC曲线、AUC曲线

    机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准确率.精准率.召回率.F1.ROC曲线. ...

  6. AUC值越大_模型评价——准确率、精确率与召回率与F值、宏平均与微平均、ROC曲线与AUC值...

    在上一篇文章中(baiziyu:模型评价--训练误差与测试误差.过拟合与欠拟合.混淆矩阵)主要介绍了模型评价涉及的基本概念,本节给出一些常用的评价指标.这些指标大致可以分为三类,第一大类是普通的准确率 ...

  7. 整理最近学习的算法:SVM支持向量机(简单)、kappa值、ROC曲线和AUC值

    整理最近学习的算法:kappa值.ROC曲线和AUC值.SVM支持向量机(简单) 1.分类精度的检验 (1)kappa系数检验一致性和分类效果 下面给出公式: 其中,p0是每一类正确分类的样本数量之和 ...

  8. 机器学习(16)ROC曲线与AUC指标(癌症分类的模型检测--AUC指标)

    目录 一.基础理论 0.引言 1.TPR与FPR 1.TPR(召回率) 2.FPR 2.ROC曲线 3.AUC指标 二.癌症分类的模型检测(AUC指标) 1.正反例转1.0 2.计算AUC指标 总代码 ...

  9. 为多模型寻找模型最优参数、多模型交叉验证、可视化、指标计算、多模型对比可视化(系数图、误差图、混淆矩阵、校正曲线、ROC曲线、AUC、Accuracy、特异度、灵敏度、PPV、NPV)、结果数据保存

    使用randomsearchcv为多个模型寻找模型最优参数.多模型交叉验证.可视化.指标计算.多模型对比可视化(系数图.误差图.classification_report.混淆矩阵.校正曲线.ROC曲 ...

  10. 分类模型的ROC曲线、AUC值、GINI系数、Lift、Gain、KS指标分别是什么?计算公式是什么?有什么意义?

    分类模型的ROC曲线.AUC值.GINI系数.Lift.Gain.KS指标分别是什么?计算公式是什么?有什么意义? 目录

最新文章

  1. iOS 导航栏实现总结
  2. dma访问主存时_DMA导致Cache数据一致性问题的原因及其解决方式(理论篇)
  3. hadoop入门小知识点
  4. PHP算法之冒泡排序
  5. html 甘特图_Rplotly|交互式甘特图(Gantt chart)项目管理/学习计划
  6. Linux系统编程---14(回收子线程,回收多个子线程,线程分离,杀死线程)
  7. 【Python】TensorBoard的启动问题
  8. color-loss pytorch实现
  9. java 音频 api_Java中的接口
  10. linux crontab 每5分钟执行一次_第十一章:走进Linux世界——源码包管理and任务计划。...
  11. 单线程与线程池的性能对比
  12. ubuntu16.04下笔记本自带摄像头编译运行PTAM
  13. 利用python分析微信聊天记录
  14. 原生JS实现图片爆炸特效
  15. 这样写的文案可以激起欲望
  16. mysql概念模型中的3种基本联系_在概念模型中,通常用实体联系图表示数据的结构,其 3 个要的元素是( )、( )和( )。_学小易找答案...
  17. IP地址192.168.48.10,掩码为255 255.255.128,其所在的子网为(),广播地址为),有效的主机IP地址范围从()到().
  18. R语言获取GEO表达数据
  19. 华为设备静态路由配置
  20. 摩托车无钥匙启动解决方案设计

热门文章

  1. 金融级别的人脸识别支付?
  2. css button 的四种状态 focus 伪类
  3. SOEM 源码解析 ecx_ARMW
  4. 大胆预测,未来技术走向以及行业的进化论
  5. hadoop和hive配置kerbros安全认证
  6. centos7修改用户密码
  7. node自定义模块与npm包基础知识笔记1.2
  8. Python - 字符串模板的安全替换(safe_substitute) 详解
  9. 【DP】LISLCS
  10. MySQL数据库的javaJDBC存储过程;