在机器学习中,ROC(Receiver Operator Characteristic)曲线被广泛应用于二分类问题中来评估分类器的可信度,但是当处理一些高度不均衡的数据集时,PR曲线能表现出更多的信息,发现更多的问题。

1.ROC曲线和PR曲线是如何画出来的?

在二分类问题中,分类器将一个实例的分类标记为是或否,这可以用一个混淆矩阵来表示。混淆矩阵有四个分类,如下表:

actual positive actual negative
predicted positive TP FP
predicted negative FN TN

其中,列对应于实例实际所属的类别,行表示分类预测的类别。

  • TP(True Positive):指正确分类的正样本数,即预测为正样本,实际也是正样本。
  • FP(False Positive):指被错误的标记为正样本的负样本数,即实际为负样本而被预测为正样本,所以是False。
  • TN(True Negative):指正确分类的负样本数,即预测为负样本,实际也是负样本。
  • FN(False Negative):指被错误的标记为负样本的正样本数,即实际为正样本而被预测为负样本,所以是False。
  • TP+FP+TN+FN:样本总数。
  • TP+FN:实际正样本数。
  • TP+FP:预测结果为正样本的总数,包括预测正确的和错误的。
  • FP+TN:实际负样本数。
  • TN+FN:预测结果为负样本的总数,包括预测正确的和错误的。

这里面的概念有些绕,需要慢慢理解,/(ㄒoㄒ)/~~。以这四个基本指标可以衍生出多个分类器评价指标,如下图:

在ROC曲线中,以FPR为x轴,TPR为y轴。FPR指实际负样本中被错误预测为正样本的概率。TPR指实际正样本中被预测正确的概率。如下图:

在PR曲线中,以Recall(貌似翻译为召回率或者查全率)为x轴,Precision为y轴。Recall与TPR的意思相同,而Precision指正确分类的正样本数占总正样本的比例。如下图:

绘制ROC曲线和PR曲线都是选定不同阈值,从而得到不同的x轴和y轴的值,画出曲线。例如,一个分类算法,找出最优的分类效果,对应到ROC空间中的一个点。通常分类器输出的都是score,如SVM、神经网络等,有如下预测效果:

no. True Hyp(0.5)‍‍‍‍‍‍‍‍‍‍‍‍ ‍Hyp(0.6)‍‍‍‍‍‍‍‍‍‍ ‍‍Score
1 p Y Y 0.99999
2 p Y Y 0.99999
3 p Y Y 0.99993
4 p Y Y 0.99986
5 p Y Y 0.99964
6 p Y Y 0.99955
7 n Y Y 0.68139
8 n Y N 0.50961
9 n N N 0.48880
10 n N ‍‍N 0.44951

True表示实际样本属性,Hyp表示预测结果样本属性,第4列即是Score,Hyp的结果通常是设定一个阈值,比如上表Hyp(0.5)和Hyp(0.6)就是阈值为0.5和0.6时的结果,Score>阈值为正样本,小于阈值为负样本,这样只能算出一个ROC值,

当阈值为0.5时,TPR=6/(6+0)=1,FPR=FP/(FP+TN)=2/(2+2)=0.5,得到ROC的一个坐标为(0.5,1);Recall=TPR=1,Precision=6/(6+2)=0.75,得到一个PR曲线坐标(1,0.75)。同理得到不同阈下的坐标,即可绘制出曲线

阈值 TPR FPR Recall Precision ROC坐标 PR坐标
0.5 1 0.5 1 0.75 (0.5,1) (1,0.75)
0.6 1 0.25 1 0.86 (0.25,1) (1,0.86)

2.ROC曲线和PR曲线的关系

在ROC空间,ROC曲线越凸向左上方向效果越好。与ROC曲线左上凸不同的是,PR曲线是右上凸效果越好。

ROC和PR曲线都被用于评估机器学习算法对一个给定数据集的分类性能,每个数据集都包含固定数目的正样本和负样本。而ROC曲线和PR曲线之间有着很深的关系。

  定理1:对于一个给定的包含正负样本的数据集,ROC空间和PR空间存在一一对应的关系,也就是说,如果recall不等于0,二者包含完全一致的混淆矩阵。我们可以将ROC曲线转化为PR曲线,反之亦然。

定理2:对于一个给定数目的正负样本数据集,一条曲线在ROC空间中比另一条曲线有优势,当且仅当第一条曲线在PR空间中也比第二条曲线有优势。(这里的“一条曲线比其他曲线有优势”是指其他曲线的所有部分与这条曲线重合或在这条曲线之下。)

证明过程见文章《The Relationship Between Precision-Recall and ROC Curves》

当正负样本差距不大的情况下,ROC和PR的趋势是差不多的,但是当负样本很多的时候,两者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。解释起来也简单,假设就1个正例,100个负例,那么基本上TPR可能一直维持在100左右,然后突然降到0.如图,(a)(b)分别为正负样本1:1时的ROC曲线和PR曲线,二者比较接近。而(c)(d)的正负样本比例为1:1,这时ROC曲线效果依然很好,但是PR曲线则表现的比较差。这就说明PR曲线在正负样本比例悬殊较大时更能反映分类的性能。

3.AUC

AUC(Area Under Curve)即指曲线下面积占总方格的比例。有时不同分类算法的ROC曲线存在交叉,因此很多时候用AUC值作为算法好坏的评判标准。面积越大,表示分类性能越好。

转载请注明出处fullstackdevel.com:SEAN是一只程序猿 » ROC曲线和PR(Precision-Recall)曲线的联系


http://www.taodudu.cc/news/show-486064.html

相关文章:

  • 【个人总结】知识晶体的前中后台
  • 【风险管理】假如我是风控经理,会搭建怎样的风控团队
  • 用python制作信贷审批监测表
  • 用sql统计vintage,滚动率,迁移率,逾期率
  • 信贷风控知识问答库(持续更新)
  • Python数据结构与算法(第一天)
  • Python基础知识(第一天)
  • Python基础知识(第二天)
  • Python基础知识(第三天)
  • Python基础知识(第四天)
  • Python基础知识(第五天)
  • Python基础知识(第六天)
  • Python基础知识(第七天)
  • Python基础知识(第八天)
  • Python基础知识(第九天)
  • Python基础知识(第十天)
  • Python基础知识(第十一天)
  • Python数据结构与算法(第二天)
  • Python数据结构与算法(第三天)
  • Python数据结构与算法(第四天)
  • Python数据结构与算法(第五天)
  • Python数据结构与算法(第六天)
  • Python数据结构与算法(第七天)
  • 机器学习-数据科学库(第一天)
  • 机器学习-数据科学库(第二天)
  • 机器学习-数据科学库(第三天)
  • 机器学习-数据科学库(第四天)
  • 机器学习-数据科学库(第五天)
  • 机器学习-数据科学库(第六天)
  • 机器学习算法基础(基础机器学习课程)——第一天

【机器学习】ROC曲线和PR(Precision-Recall)曲线的联系相关推荐

  1. matlab drawnow连成曲线,precision recall曲线Matlab实现

    在用哈希进行检索时,常会用到precision recall曲线对其性能进行定量评价.precision recall的定义在信息检索评价指标中已做了详细说明,这里再记录一下precision rec ...

  2. 图片检索matlab程序,图像检索:precision recall曲线Matlab实现

    在用哈希进行检索时,常会用到precision recall曲线对其性能进行定量评价.precision recall的定义在信息检索评价指标中已做了详细说明,这里再记录一下precision rec ...

  3. 查准率-查全率precision recall(PR)曲线Matlab实现

    在用哈希进行检索时,常会用到precision recall曲线对其性能进行定量评价.precision recall的定义在信息检索评价指标中已做了详细说明,这里再记录一下precision rec ...

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

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

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

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

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

    转自机器学习:准确率(Precision).召回率(Recall).F值(F-Measure).ROC曲线.PR曲线 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召 ...

  7. 机器学习各种模型评价指标:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

    周志华老师的西瓜书的第2章:模型评估与选择 摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召回率(Recall).F值(F-Measure)简介. 引言: 在机器学习 ...

  8. 机器学习评估指标汇总:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

    摘要: 数据挖掘.机器学习和推荐系统中的评测指标-准确率(Precision).召回率(Recall).F值(F-Measure)简介. 引言: 在机器学习.数据挖掘.推荐系统完成建模之后,需要对模型 ...

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

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

  10. 机器学习分类问题指标理解——准确率(accuracy)、精确率(precision)、召回率(recall)、F1-Score、ROC曲线、P-R曲线、AUC面积

    2020.08.25更新: 修改了ROC曲线中TPR公式的错误. 2020.07.25更新: 修改了混淆矩阵,每一行为实际值,每一列与预测值. 机器学习分类问题指标理解 0. 一个例子 1.准确率(A ...

最新文章

  1. C#优化字符串操作【月儿原创】
  2. redis集群模式的工作原理
  3. 白话:服务降级与熔断的区别
  4. cocos2dx的图片载入
  5. 优化的ms sql server分页sql语句
  6. 使用结构化的标头字段改善HTTP
  7. SecureCRT配置前--Linux网卡设置
  8. 《强化学习》中的第14章:心理学
  9. asp数据分页显示技术(上下页版)
  10. linux测试硬盘速度命令,Linux下的硬盘读写速度测试
  11. Java TemplateProcessingException之Cannot execute subtraction: operands are null and #1234
  12. t6服务器验证密码失败,用友T6软件T6服务无法启动,提示SA密码错误
  13. c语言水仙花数算法流程图,C语言经典算法例题求100-999之间的“水仙花数
  14. NRF24L01使用
  15. sim函数 matlab输出,关于MATLAB里sim函数?
  16. 生活其实很有意思 ... ...
  17. C语言 剧情版小游戏
  18. 高并发写场景:秒杀系统库存扣减
  19. 安装win 11 需要跳过检测所需替换appraiserres.dll文件
  20. 如何在Win10下安装MySQL 5.7绿色版

热门文章

  1. java export命令_Linux 命令详解(一)export 命令
  2. 配置库用户_手把手教新手安装Anaconda配置开发环境
  3. java 雷电_【我叫辰先森】教大家用js写一个雷电
  4. 从一个提问引发到你是怎么看待编程语言是一种工具这句话的?【笔记自用】
  5. python常见异常
  6. Linux下CMake简明教程(四)不同目录下多个源文件
  7. python break -else 语句
  8. python计数属性类
  9. python如何调用文件进行换位加密_python 换位密码算法的实例详解
  10. 打印两个有序链表的公共部分