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

在二分类问题中,分类器将一个实例的分类标记为正例还是负例,这可以用一个混淆矩阵来表示

TP:指正确分类成为正的样本数,实际为正,预测为正

FP:指错误分类为正的样本数,实际为负,预测为正

FN:指错误分类为负的样本数,实际为正,预测为负

TN:指正确分类为负的样本数,实际为负,预测为负

TP+FP+TN+FN 样本总数

TP + FN 实际正样本数

TP+FP 预测为正的样本数,包括预测正确的预测错误的

FP+TN 实际负样本数

TN+FN 预测为负的样本数,包括预测正确的预测错误的

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

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

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

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)。同理得到不同阈下的坐标,即可绘制出曲线

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

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

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

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

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

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

roc曲线怎么绘制_ROC曲线和PR曲线相关推荐

  1. R语言实战 input+结果——ROC曲线的绘制 auc 时量下曲线面积

    1.数据处理 第一步当然得处理一下数据.默认的Iris数据集有三类鸢尾花,我目前的理解是只有二分类才画的出ROC曲线,所以才去一定的手段处理一下数据: 输入 # 数据准备 iris2 <- ir ...

  2. 推荐系统:常用评价指标总结【准确率、精确率、召回率、命中率、(归一化折损累计增益)NDCG、平均倒数排名(MRR)、ROC曲线、AUC(ROC曲线下的面积)、P-R曲线、A/B测试】

    1.Recall(召回率)与Precision(精确率) 网站在提供推荐服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做TopN推荐,TopN推荐的预测准确率一般通过召回率和精确率来度量. 在介 ...

  3. 希尔伯特曲线的绘制c语言,[转载]希尔伯特曲线及其matlab画法

    基本概念: 希尔伯特曲线是一种能填充满一个平面正方形的分形曲线(空间填充曲线),由大卫·希尔伯特在1891年提出.由于它能填满平面,它的豪斯多夫维是2.取它填充的正方形的边长为1,第n步的希尔伯特曲线 ...

  4. 机器学习:python绘制P-R曲线与ROC曲线

    Python绘制P-R曲线与ROC曲线 查准率与查全率 P-R曲线的绘制 ROC曲线的绘制 查准率与查全率   P-R曲线,就是查准率(precision)与查全率(recall)的曲线,以查准率作为 ...

  5. 二分类及多分类ROC和PR曲线绘制

    目录 1.二分类曲线 1.1 二分类ROC曲线 1.2 二分类PR曲线 2.多分类曲线 2.1多分类ROC曲线 2.2 多分类PR曲线 前两天2022年第二届全国高校大数据竞赛已经落下帷幕,比赛中也用 ...

  6. 机器学习之类别不平衡问题 (2) —— ROC和PR曲线

    机器学习之类别不平衡问题 (1) -- 各种评估指标 机器学习之类别不平衡问题 (2) -- ROC和PR曲线 完整代码 ROC曲线和PR(Precision - Recall)曲线皆为类别不平衡问题 ...

  7. 机器学习之性能度量指标——决定系数R^2、PR曲线、ROC曲线、AUC值、以及准确率、查全率、召回率、f1_score

    一.线性回归的决定系数(也称为判定系数,拟合优度) 相关系数是R哈~~~就是决定系数的开方! 正如题所说决定系数是来衡量回归的好坏,换句话说就是回归拟合的曲线它的拟合优度!也就是得分啦~~ 决定系数它 ...

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

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

  9. 机器学习笔记(一)P-R曲线与ROC曲线

    P-R曲线与ROC曲线 一.什么是P-R曲线? 二.什么是ROC曲线? 三.P-R曲线与ROC曲线有什么用? 三.绘制P-R曲线代码 一.什么是P-R曲线? 要知道什么是P-R曲线,首先,我们要先了解 ...

最新文章

  1. Max Sum(经典DP)
  2. CENTOS elasticsearch plugin install:Failed: SSLException[java.security.ProviderException,解决
  3. Tkinter编写Mac应用(-)
  4. Soft NMS算法笔记
  5. Linux安装Gitlab
  6. Maven - error in opening zip file
  7. 拓端tecdat|R语言分析股市相关结构:用回归估计股票尾部相关性(相依性、依赖性)
  8. html css 布局小细节
  9. ASIHttpRequest startAsynchronous
  10. 单峰分布(unimodal distribution)、双峰分布 (bimodal distribution)以及偏态分布(skewness distribution)
  11. ie select option css,ie浏览器不支持select option italic
  12. Pointer Generator Network 和 PEGASUS
  13. 二维码生成器怎么在线制作?制作二维码其实很简单
  14. vmware安装winxp
  15. 丢手帕程序C语言,约瑟夫问题,即丢手帕游戏
  16. Myeclipse安装lombok
  17. 【java】猜字游戏
  18. C++俄罗斯方块源代码
  19. java中mdc是什么_MDC是什么鬼?用法、源码一锅端
  20. Delphi2010启动报错:Cannot create file “C:\Users\asun\AppData\Local\Temp\EditorLineEnds.ttr“. 另一个程序正在使用此文

热门文章

  1. asm字节码操作 方法的动态修改增加
  2. 关于mysql修改密码后的问题
  3. WPF and Silverlight 学习笔记(十二):WPF Panel内容模型、Decorator内容模型及其他...
  4. 吕述望 计算机网络专家,特稿: 中科院吕述望教授:互联网名不符实
  5. vue 找回密码_vue实现个人信息查看和密码修改功能
  6. OpenCV示例学习(七):离散傅里变换(DFT)算子:getOptimalDFTSize(),copyMakeBorder(),magnitude(),log(),normalize()
  7. Python中递归字符串反转
  8. mysql 解释 游标赋值_Mysql_游标
  9. java9默认收集器_Oracle提议将G1作为Java9的默认垃圾收集器
  10. [前台]---input标签中的hidden,浏览器差异问题