热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ROC曲线

参考资料:csdn:https:blog.csdn.netu012374174articledetails52885583https:blog.51cto.com142155292

参考资料:

  csdn:https://blog.csdn.net/u012374174/article/details/52885583

  https://blog.51cto.com/14215529/2371128

  作者:zhwhong    链接:https://www.jianshu.com/p/c61ae11cc5f6  来源:简书

  wiki

 

  ROC(Receiver Operating Characteristic)曲线,反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。

 

  做过图像识别、机器学习或者信息检索相关研究的人都知道,论文的实验部分都要和别人的算法比一比。可怎么比,人多嘴杂,我说我的方法好,你说你的方法好,各做各的总是不行——没规矩不成方圆。于是慢慢的大家就形成了一种约定,用ROC曲线和PR曲线来衡量算法的优劣。

 

  ROC曲线最初来源于雷达兵的业绩考核。雷达兵的任务是检测雷达信号,区分雷达信号是敌人还是飞鸟,然后发出警报。兵长想知道雷达兵报告的信号中有多少是敌人(真阳性率),有多少是飞鸟(假阳性率)。每个雷达兵的判断标准(阀值)不同,所以该雷达兵发出警报中敌人和飞鸟的数目就不同。将所有雷达兵的结果汇总,就得到一条ROC曲线。每个点代表一个雷达兵(即一个点代表一个判断标准,或参数)检测信号的真阳性率和假阳性率。

  应用:给定一个模型/算法和其阈值(阀值即雷达兵的判断标准,有多个标准,即ROC曲线中的每个点),对一个数据集进行预测,计算和汇总在每个阀值下的预测值与实际值的关系。

  详细应用举例:

    1. 给定100个人,每个都有一个综合素质的指标,即达标/未达标。目的:想选一种方法,或者方法已经选好,但是参数不知道。那么问题是想选一种方法或者参数,用该方法能把这100个人中综合素质达标的人选出来。假定采用文化课考试(即模型/算法)的方法,超过60分(阀值)的人,认为达标,否则,不达标。那么,这样画出的ROC曲线的含义为:每个点代表一个阀值(即规定的达标分数),在该阀值下选出来的达标/未达标人数与已知的达标/未达标人数的比较结果(比较结果用真阳性率和假阳性率来衡量)。这样得到的ROC曲线图中只有一条曲线。

    2. 有一个检测CpG岛的新算法,想比较该算法和其他算法的优劣。首先,这个算法会有参数(即阀值),在不同的参数下检测出来的CpG岛的数量是不同,计算检测出来的CpG岛的情况与真实的CpG岛的情况(这里说的情况,仍然是用真阳性率和假阳性率来衡量),比如说:真实存在20个CpG岛,新算法能把其中的17个检测出来,TP=17,再根据计算TPR,FPR的公式得到比率即可。此处着重说原理,不详细说计算公式。在一个图中,展示不同算法的结果,就得到ROC曲线图中的多条不同颜色的曲线。

 

  为什么要用ROC曲线作为衡量不同算法的标准呢?

  因为每个算法都有自己的参数,参数不同,算法得到的结果也不同。如果A算法用自己最优参数的结果,与B算法非最优参数的结果比较,那么,A算法肯定是优于B算法的。但是,这样比较不准确,应该与B算法最优参数的结果比较。而ROC曲线就避免了这个问题。比较多个算法的结果,同时将每个算法在各种参数下的结果都展示出来。那么,孰优孰劣的算法就显而易见了。

 

  ROC曲线的缺点呢?

  ROC曲线更注重这个模型/诊断方法/算法的检出正确率,而忽略了假阴性率。在疾病诊断模型中,这种考量是合理的,因为就是想打到更高的疾病诊断率。但是,在体检模型中(即正常人体检),需要考量的是真阴性率和假阴性率。即:100个健康人体检,如果一个方法能把所有的病人都检测出来(TPR高,0.9),但是,也容易把健康人当做病人(TNR低,0.7),那么这个方法不适合用于体检模型;如果一个方法虽然不能把所有的病人都检测出来,但是,所有的健康人都没有被误诊为病人,那么这个方法是适合体检模型的。此处以后还需详细了解。

  鉴于此,即:有的方法敏感性好,特异性不好;有的方法敏感性不好,特异性好,那么如何评价不同的方法呢?通过计算ROC曲线的面积来评估算法的优劣。

 

  ROC曲线图如何看呢?

  曲线趋于平滑的点越靠近左上角,说明模型/诊断方法/算法越好。

 

  总结:ROC曲线上每一个点表示在模型/算法(或诊断方法)在该阀值下进行分类的真阳性率假阳性率值。纵坐标是真阳性率(敏感性),横坐标是假阳性率(特异性)。即:每个点是一个分类器的结果,只不过分类器的参数不同而已。

 

附录:

1. 计算公式

真阳性率(True Positive Rate,TPR),灵敏度(Sensitivity),召回率(Recall):

2. ROC曲线图


推荐阅读
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 基于深度学习的遥感应用
    文章目录深度学习的发展过程深度学习在遥感中的应用基于深度学习的遥感样例库建设基于深度学习的遥感影像目标及场景检索基于深度学习的建筑物提取基于深度学习的密集建筑物自动检测基于深度学习 ... [详细]
  • 开源真香 离线识别率高 Python 人脸识别系统
    本文主要介绍关于python,人工智能,计算机视觉的知识点,对【开源真香离线识别率高Python人脸识别系统】和【】有兴趣的朋友可以看下由【000X000】投稿的技术文章,希望该技术和经验能帮到 ... [详细]
  • 老电影和图片变清晰的秘密!分辨率提升400%的AI算法
    老电影和图片变清晰的秘密!分辨率提升400%的AI算法-如上图,从100x133pix→400x532pix,除了肉眼可见的清晰,拥有可以将分辨率提升400%的技术到底意味着什么 ... [详细]
  • 脑机接口和卷积神经网络的初学指南(一)
    脑机接口和卷积神经网络的初学指南(一) ... [详细]
  • 分类与聚类
    一:分类1:定义分类其实是从特定的数据中挖掘模式,做出判断的过程。分类是在一群已经知道类别标号的样本中,训练一种分类器 ... [详细]
  • 20180717不要人工智能,用SQL就够了BP神经网络与模糊神经网络在空气质量评价中的应用如何用Tensorflow.js部署简单的AI图像识别应用2018 ... [详细]
  • 快过HugeCTR:用OneFlow轻松实现大型推荐系统引擎
    一、简介Wide&DeepLearning(以下简称WDL)是解决点击率预估(CTRPrediction) ... [详细]
  • 图灵测试是什么?为什么AlphaGo那么牛却过不了?
    导读:本文将介绍人工智能的检测手段——图灵测试。作者:杜振东涂铭来源:大数据DT(ID:hzdashuju&# ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了算法工程师(机器学习)面试题目4---深度学习算法相关的知识,希望对你有一定的参考价值。基础问题 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
author-avatar
赵庭洪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有