使用R进行分类时,ROC的绘制和AUC的计算

在之前的这篇日志中,我简单介绍了使用R进行Logistic
Regression时,Recall,Precision,TPR,FPR等等的计算,但是如果依照这种方法绘制ROC曲线(关于ROC和AUC的概念,网上有很多介绍,例如:http://beader.me/2013/12/15/auc-roc/ )就太过于麻烦了,需要手动调整分类阈值。其实R也提供了最基本的ROC曲线绘制的工具包(Package),结合这篇日志,我也同时介绍一下R
Package的安装和学习方法:

在这里:http://www.r-project.org/ 页面左侧点击:

Download, Packages

CRAN

可以看到首先需要选择CRAN的镜像站点,例如我们选择北京交大的:http://mirror.bjtu.edu.cn/cran/ 通过几个链接,可以浏览这个页面:http://mirror.bjtu.edu.cn/cran/web/packages/available_packages_by_name.html,按Package的名称给出了列表,同时还有对Package的简单介绍。我们可以看到这里有关于pROC的介绍:

pROC display and analyze ROC curves

可以下载压缩包的形式进行安装,但是往往这样安装会很麻烦,所以建议通过R的控制台进行安装(可以在上面这个页面中首先查看Package的名称和作用):

在RGui中选择“程序包”——“安装程序包”——选择需要安装的Package(如果需要安装其他依赖Package,也会自动安装),如果选择了合适的镜像(从我这里来看,选择兰州大学的镜像,安装速度很快),则很快就可以安装好。最后给出StackOverflow上别人给的例子,安装好这个Package之后即可以运行。

mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
mylogit <- glm(admit ~ gre, data = mydata, family = "binomial")
summary(mylogit)
prob=predict(mylogit,type=c("response"))
mydata$prob=prob
library(pROC)
g <- roc(admit ~ prob, data = mydata)
plot(g)

关于这个Package的其他使用方法,API文档,可以参考这里:http://www.inside-r.org/packages/cran/pROC/docs/auc。就总结这么多,相信对初学的朋友会有所帮助。

时间: 2024-12-28 21:34:49

使用R进行分类时,ROC的绘制和AUC的计算的相关文章

BERT模型在多类别文本分类时的precision, recall, f1值的计算

BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们定制的文本分类模型中(如text-CNN等).总之现在只要你的计算资源能满足,一般问题都可以用BERT来处理,此次针对公司的一个实际项目--一个多类别(61类)的文本分类问题,其就取得了很好的结果. 我们此次的任务是一个数据分布极度不平衡的多类别文本分类(有的类别下只有几个或者十几个样本,有的类别下

R语言绘图:ROC曲线图

使用pROC包绘制ROC曲线 #####***绘制ROC曲线***##### library("pROC") N <- dim(data2)[1] #数据长度 set.seed(1234) #设置随机种子 ind <- sample(2, N, replace=TRUE, prob = c(0.8,0.2)) data_train <- data2[ind == 1,] #生成训练集 data_test <- data2[ind == 2,] #生成测试集 re

OSG绘制空间凹多边形并计算其面积

目录 1. 思路 1) 多边形分格化 2) 几何图元遍历 2. 实现 3. 参考 1. 思路 这个问题其实涉及到OSG中的两个问题:多边形分格化和几何图元遍历. 1) 多边形分格化 在OpenGL/OSG中,由于效率的原因,默认是直接显示的简单的凸多边形.如果直接强行显示凹多边形,渲染结果是不确定的.所以对于复杂的凹多边形,需要将其分解成简单的凸多边形,这个过程就是多边形分格化.在OSG中是通过osgUtil::Tessellator类来实现多边形分格化的. 2) 几何图元遍历 对于二维的凹多边

ROC 曲线,以及AUC计算方式

ROC曲线: roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性. ROC曲线的横轴: 负正类率(false postive rate FPR)特异度,划分实例中所有负例占所有负例的比例:(1-Specificity) 预测为正样本但是实际为负样本的数目占所有负样本的数目的比例 ROC 纵轴: 真正类率(true postive rate TPR)灵敏度,Sensitivity(正类覆盖率) 预测为正样本

R语言如何在生存分析与Cox回归中计算IDI,NRI指标

原文链接:http://tecdat.cn/?p=6095 读取样本数据 D=subset(pbc, select=c("time","status","age","albumin","edema","protime","bili")) D$status=as.numeric(D$status==2) D=D[!is.na(apply(D,1,mean)),] ; d

Precision、Recall、ROC、mAP、mmAP值计算

精确率与召回率,ROC曲线与PR曲线 链接:https://blog.csdn.net/CYJ2014go/article/details/84537317 [总结]ROC曲线.AUC.准确度.召回率 链接:https://blog.csdn.net/bra_ve/article/details/82461378 浅析经典目标检测评价指标--mmAP(一) 链接:https://zhuanlan.zhihu.com/p/55575423 浅析经典目标检测评价指标--mmAP(二) 链接:http

HTML5 Canvas 绘制库存变化折线 计算出库存周转率

<!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <head> <title>最低库存量/最高库存量计算</title> </head> <body onload="draw()"

多分类下的ROC曲线和AUC

本文主要介绍一下多分类下的ROC曲线绘制和AUC计算,并以鸢尾花数据为例,简单用python进行一下说明.如果对ROC和AUC二分类下的概念不是很了解,可以先参考下这篇文章:http://blog.csdn.net/ye1215172385/article/details/79448575 由于ROC曲线是针对二分类的情况,对于多分类问题,ROC曲线的获取主要有两种方法: 假设测试样本个数为m,类别个数为n(假设类别标签分别为:0,2,...,n-1).在训练完成后,计算出每个测试样本的在各类别

机器学习实战第7章——利用AdaBoost元算法提高分类性能

将不同的分类器组合起来,这种组合结果被称为集成方法或元算法(meta-algorithm). 使用集成方法时会有多种形式:(1)可以是不同算法的集成(2)可以是同一种算法在不同设置下的集成(3)数据集不同部分分配给不同分类器之后的集成,等等 接下来介绍基于同一种分类器多个不同实例的两种不同计算方法bagging和boosting 1. bagging 原理:从原始数据集选择S次后得到S个新数据集的一种技术.新数据集和原数据集的大小相等.每个数据集都是通过在原始数据集中随机选择一个样本来进行替换而