Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R语言中绘制ROC曲线和PR曲线

R语言中绘制ROC曲线和PR曲线

作者头像
拓端
发布于 2020-07-16 15:35:47
发布于 2020-07-16 15:35:47
2.2K00
代码可运行
举报
文章被收录于专栏:拓端tecdat拓端tecdat
运行总次数:0
代码可运行

原文链接:http://tecdat.cn/?p=6236

ROC 曲线可能是评估评分分类器的预测性能的最常用的度量。

预测正类(+1)和负类(-1)的分类器的混淆矩阵具有以下结构:

预测/参考类

+1

-1

+1

TP

FP

-1

FN

TN

这里,TP表示真阳性的数量(模型正确预测正类),FP表示误报的数量(模型错误地预测正类),FN表示假阴性的数量(模型错误地预测阴性类),TN表示真阴性的数量(模型正确预测阴性类)。

ROC曲线

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 plot.scores.AUC <- function (y, y.hat, measure =  "tpr" , x.measure =  "fpr" ) {
    par(mfrow=c( 1 ,  2 ))
    hist(y.hat[y ==  0 ], col=rgb( 1  , 0 , 0 , 0.5 ),
         main =  "Score Distribution" ,
         breaks=seq(min(y.hat),max(y.hat)+ 1 ,  1 ), xlab =  "Prediction" )
    hist(y.hat[y ==  1 ], col = rgb( 0 ,<span style="color:#880000">0</span>,<span style="color:#880000">1</span>,<span style="color:#880000">0.5</span>), add=<span style="color:#78a960">T</span>,
            breaks=seq(min(y.hat),max(y.hat) + <span
 # plot ROC curve</span>
     pr <- prediction(y.hat, y)
    prf <- performance(pr, measure = measure, x.measure = x.measure)
     auc <- performance(pr, measure = <span style="color:#880000">"auc"</span>)@y.values[
    plot(prf, main =  "Curve (AUC: "

AUC是完美的分类器

理想的分类器不会产生任何预测错误。这意味着分类器可以完美地分离这两个类,使得模型在产生任何误报之前实现100%的真正正率。因此,这种分类器的AUC是1,例如:

AUC是一个很好的分类器

将两个类分开但不完美的分类器看起来像这样:

可视化分类器能够在非常低的FPR下获得60%的灵敏度。

坏分类器的AUC

错误的分类器将输出其值仅与结果稍微相关的分数。这样的分类器将仅以高FPR为代价达到高TPR。

只有在大约40%的FPR下,可视化分类器才能达到60%的灵敏度,这对于应该具有实际应用的分类器来说太高了。

随机分类器的AUC

随机分类器的AUC接近0.5。这很容易理解:对于每个正确的预测,下一个预测都是不正确的。

分类器的AUC表现比随机分类器差

[0.5,1][0.5,1]

可视化分类器在达到20%以上的灵敏度之前产生80%的FPR。

AUC-PR曲线

精确回忆曲线绘制阳性预测值(PPV,y轴)与真阳性率(TPR,x轴)。这些数量定义如下:

precisionrecall=PPV=TPTP+FP=TPR=TPTP+FNprecision=PPV=TPTP+FPrecall=TPR=TPTP+FN

例如,请考虑以下数据集:

在下文中,我将演示 AUC-PR 下的面积如何受预测性能的影响。

AUC-PR是完美的分类器

理想的分类器不会产生任何预测错误。因此,它将获得1的AUC-PR:

AUC-PR是一个好的分类器

将两个类分开但不完美的分类器将具有以下精确回忆曲线:

可视化分类器在没有任何错误的正面预测的情况下达到约50%的召回率。

坏分类器的AUC-PR

错误的分类器将输出其值仅与结果稍微相关的分数。这样的分类器只能以低精度达到高召回率:

召回率仅为20%时,分级机的精度仅为60%。

随机分类器的AUC-PR

随机分类器的AUC-PR接近0.5。这很容易理解:对于每个正确的预测,下一个预测都是不正确的。

AUC-PR的分类器比随机分类器表现更差

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习系列(二):理解ROC曲线
周五给学生讲课的时候,学生听得有点蒙,故写下这篇抢救一下。为了节省敲键盘的次数,下面部分内容来自维基百科。
明月AI
2021/10/28
1.8K0
机器学习系列(二):理解ROC曲线
机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
同见博客:http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/(对Latex公式支持更好) ---- 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更好地了解分类中的错误。 比如有这样一个在房子周围可能发现的动物类型的预测,这
zhwhong
2018/05/16
2.9K0
机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵
用户1332428
2018/03/09
3.8K0
机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
ROC曲线/AUC曲线与混淆矩阵介绍
ROC(Receiver Operating Characteristic)曲线即受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve),用来评价一个二值分类器(binary classifier)的优劣。
里克贝斯
2021/05/21
1.9K0
ROC曲线/AUC曲线与混淆矩阵介绍
什么是ROC曲线?为什么要使用ROC?以及 AUC的计算
真正(True Positive , TP)被模型预测为正的正样本; 假负(False Negative , FN)被模型预测为负的正样本; 假正(False Positive , FP)被模型预测为正的负样本; 真负(True Negative , TN)被模型预测为负的负样本。
种花家的奋斗兔
2020/11/13
74.9K1
什么是ROC曲线?为什么要使用ROC?以及 AUC的计算
【统计】 ROC曲线(1) - 模型评估首选方案
ROC曲线,也称“受试者工作特征曲线”,主要是用于X对Y的预测准确率情况。最初ROC曲线是运用在军事上,现在更多应用在医学领域,判断某种因素对于某种疾病的诊断是否有诊断价值。
用户6317549
2019/12/17
3.1K0
【统计】 ROC曲线(1) - 模型评估首选方案
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
在机器学习和数据科学的江湖中,评估模型的好坏是非常关键的一环。而 ROC(Receiver Operating Characteristic)曲线和 AUC(Area Under Curve)正是评估分类模型性能的重要工具。
算法金
2024/06/11
1.9K0
算法金 | 一文彻底理解机器学习 ROC-AUC 指标
R语言 ROC曲线
ROC曲线(受试者工作特征, Receiver Operating Characteristic) 可以简单、直观得观察分析方法的临床准确性,并可用肉眼作出判断。ROC以真阳性率(灵敏度FPR)为纵坐标,假阳性率(1-特异度TPR)为横坐标绘制的曲线,可准确反映某分析方法特异性和敏感性的关系,是试验准确性的综合代表。ROC曲线不固定分类界值,允许中间状态存在,利于使用者结合专业知识,权衡漏诊与误诊的影响,选择一更佳截断点作为诊断参考值。提供不同试验之间在共同标尺下的直观的比较,ROC曲线越凸越近左上角表明其
用户1359560
2018/08/27
2.9K0
R语言 ROC曲线
回归评估指标——准确率、精准率、召回率、F1、ROC曲线、AUC曲线
机器学习有很多评估的指标。有了这些指标我们就横向的比较哪些模型的表现更好。我们先从整体上来看看主流的评估指标都有哪些:
easyAI
2019/12/18
26.1K0
回归评估指标——准确率、精准率、召回率、F1、ROC曲线、AUC曲线
混淆矩阵、AUC、ROC,傻傻分不清楚?来看这篇就对了
今天是机器学习专题的第18篇文章,我们来看看机器学习领域当中,非常重要的其他几个指标。
TechFlow-承志
2020/05/05
1.5K0
R语言绘制绘制ROC和PR曲线(总结)
(1)总结常用的绘制ROC和PR曲线的R包 (2)生存预测模型的时间依赖性ROC曲线
用户1359560
2019/06/20
8.5K0
ROC,AUC,Precision,Recall,F1的介绍与计算
ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve),AUC(Area Under Curve)是ROC曲线下的面积。在计算ROC曲线之前,首先要了解一些基本概念。在二元分类模型的预测结果有四种,以判断人是否有病为例:
Tyan
2019/05/25
2.6K0
模型评价指标—ROC曲线
对于分类模型,在建立好模型后,我们想对模型进行评价,常见的指标有混淆矩阵、F1值、KS曲线、ROC曲线、AUC面积等。
阿黎逸阳
2023/08/21
4K0
模型评价指标—ROC曲线
PR曲线、ROC曲线、AUC能干个啥
PR曲线实则是以precision(精准率)和recall(召回率)这两个变量而做出的曲线,其中recall为横坐标,precision为纵坐标。
用户3570225
2024/05/19
1.2K0
PR曲线、ROC曲线、AUC能干个啥
ROC曲线及AUC值[通俗易懂]
参考文献:【ROC曲线与AUC值】,【ROC,AUC最透彻的讲解(实例分析+matlab代码)】,【AUC计算方法与Python实现】,【AUC曲线计算方法及代码实现】
全栈程序员站长
2022/08/29
4.2K0
ROC曲线及AUC值[通俗易懂]
Precision, Recall, F-score, ROC, AUC
正样本就是使系统得出正确结论的例子,负样本相反。 比如你要从一堆猫狗图片中检测出狗的图片,那么狗就是正样本,猫就是负样本;反过来你若是想检测出猫的图片,那么猫就是正样本,狗就是负样本。
海天一树
2018/08/17
2.4K0
Precision, Recall, F-score, ROC, AUC
R: ROCR包用于ROC分析
ROC可以用于:(1)比较预测二分类响应变量的预测效果;(2)获取预测二分类响应变量的连续预测变量的阈值。
生信菜鸟团
2020/05/26
5K0
ROC曲线与AUC
对于0,1两类分类问题,一些分类器得到的结果往往不是0,1这样的标签,如神经网络,得到诸如0.5,0,8这样的分类结果。这时,我们人为取一个阈值,比如0.4,那么小于0.4的为0类,大于等于0.4的为1类,可以得到一个分类结果。同样,这个阈值我们可以取0.1,0.2等等。取不同的阈值,得到的最后的分类情况也就不同。
全栈程序员站长
2022/08/27
9190
ROC曲线与AUC
【干货】不止准确率:为分类任务选择正确的机器学习度量指标(附代码实现)
【导读】本文是数据科学研究者William Koehrsen撰写的技术博文,介绍了在分类模型中需要用到的度量标准。我们知道,准确率是我们在分类任务中最常用到的度量指标,但是单纯的准确率并不能说明模型的
WZEARW
2018/04/08
2.2K0
【干货】不止准确率:为分类任务选择正确的机器学习度量指标(附代码实现)
ROC曲线不用愁,四种R包教你一步搞定!
前面我们介绍了一个对有害同义突变预测的方法PrDSM,可以发现,在对模型的分析中,大量的使用ROC对模型进行评估,今天我们就来介绍一下ROC的相关内容和两种ROC绘图方法:pROC、plotROC、ggROC和ROCR。
作图丫
2022/03/29
10.5K0
ROC曲线不用愁,四种R包教你一步搞定!
相关推荐
机器学习系列(二):理解ROC曲线
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验