ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ROC曲线

2019-06-25 11:38:40  阅读:227  来源: 互联网

标签:曲线 雷达兵 ROC 算法 方法 阳性率


参考资料:

  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):

真阴性率(True Negative Rate,TNR),特异度(Specificity):

假阴性率(False Negatice Rate,FNR),漏诊率( = 1 - 灵敏度):

假阳性率(False Positice Rate,FPR),误诊率( = 1 - 特异度):

 

2. ROC曲线图

标签:曲线,雷达兵,ROC,算法,方法,阳性率
来源: https://www.cnblogs.com/zypiner/p/11081824.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有