关闭

R语言利用ROCR评测模型的预测能力

标签: r语言ROC曲线
975人阅读 评论(0) 收藏 举报
分类:

说明

受试者工作特征曲线(ROC),这是一种常用的二元分类系统性能展示图形,在曲线上分别标注了不同切点的真正率与假正率。我们通常会基于ROC曲线计算处于曲线下方的面积AUC(area under curve),并以此峰面积来衡量相应分类模型的性能。

操作

继续使用telecom churn数据集作为样例数据集

library(caret)
data(churn)

str(churnTrain)

churnTrain = churnTrain[,!names(churnTrain) %in% c("state","area_code","account_length")]

#生成随机编号为2的随机数
set.seed(2)
#将churnTrain的数据集分为两类,按0.7与0.3的比例无放回抽样
ind = sample(2,nrow(churnTrain),replace = TRUE,prob = c(0.7,0.3))

trainset = churnTrain[ind == 1,]
testset = churnTrain[ind == 2,]

library(gplots)
ibrary(ROCR)
library(e1071)

使用probability参数为TRUE的训练数据集得到一个SVM模型:

svmfit = svm(churn ~ .,data = trainset,prob = TRUE)

基于训练好的模型对测试数据集进行预测,同样将probability参数设置为TRUE

Pred = predict(svmfit,testset[,!names(testset) %in% c("churn")],probability = TRUE )

得到标号为“yes”的概率

pred.prob = attr(pred,"probabilities")
pred.to.roc = pred.prob[,2]

使用prediction函数产生预测结果,

pred.rocr = prediction(pred,testset$churn)

使用preformance完成性能评估

pred.rocr.pref = performance(pred.rocr,"tpr","fpr")
pred.rocr.auc.perf = performance(pred.rocr,measure = "auc",x.measure = "cutoff")
plot(pred.rocr.pref,col = 2,colorize=T,main=paste("AUC:",pred.rocr.auc.perf@y.values))

总结

可以参考titanic(三)的内容学习。

0
0
查看评论

R语言|求ROC和AUC值

测试 junjun 2016年9月29日 1、求ROC和AUC值 #方法一:ROCR包中主要是两个class:prediction和performance。前者是将预测结果和真实标签组合在一起,生成一个prediction对象,然后在用performance函数,按照给定的评价方...
  • qq_16365849
  • qq_16365849
  • 2016-09-29 15:36
  • 6097

用R软件包ROCR画ROC曲线

ROC曲线可以简单、直观得观察分析方法的临床准确性,并可用肉眼作出判断。ROC以真阳性率(灵敏度FPR)为纵坐标,假阳性率(1-特异度TPR)为横坐标绘制的曲线,可准确反映某分析方法特异性和敏感性的关系,是试验准确性的综合代表。ROC曲线不固定分类界值,允许中间状态存在,利于使用者结合专业知识,权衡...
  • machinelearning_er
  • machinelearning_er
  • 2017-04-19 16:56
  • 2031

R语言-绘制ROC曲线

浅谈ROC曲线机器学习中很常见的一个大类就是二元分类器。很多二元分类器会产生一个概率预测值,而非仅仅是0-1预测值。我们可以使用某个临界点(例如0.5),以划分哪些预测为1,哪些预测为0。得到二元预测值后,可以构建一个混淆矩阵来评价二元分类器的预测效果。所有的训练数据都会落入这个矩阵中,而对角线上的...
  • tanzuozhev
  • tanzuozhev
  • 2016-04-14 21:28
  • 20312

【R 数据科学】R语言进行数据科学整理最有用的包大全

一、数据科学工作流程1.1 数据导入 1.2 数据整理 1.3 反复理解数据 1.4 数据可视化 1.5 数据转换 1.6 统计建模 1.7 作出推断(比如预测) 1.8 沟通交流 1.9 自动化分析 2.0 程序开发二、每个步骤最有用的一些R包1、数据导入以下R包主要用于数据导入...
  • u013421629
  • u013421629
  • 2017-06-09 11:05
  • 1635

R语言回归分析中的异常值点的介绍

(1)离群点 如何识别离群点? 1、Q-Q图,落在置信区间带外的点即可被认为是离群点。 2、一个粗糙的判断准则:标准化残差值大于2或者小于2的点可能是离群 3、library(car)    outlierTest(fit)  显示离群点   ...
  • u011955252
  • u011955252
  • 2016-02-23 14:30
  • 5248

R语言回归模型预测绘图plot,predict,回归诊断,模型评价

model使用lm,glm线性模型拟合结果model <- lm(y ~ x....)当评价模型的适用性时,你可以绘制初始响应变量的预测值与残差的图形。例如,如下代码,可绘制一个常见的诊断图: >plot(predict(model,type = "response"...
  • skyonefly
  • skyonefly
  • 2016-07-26 22:27
  • 7895

R语言中的svm实例

svm WANGChang 2016年2月18日 n=150 p=2 sigma = 1 meanpos = 0 meanneg =3 npos = round(n/2) nneg = n-npos ##生成数据中正负实例样本特征值 xpos = matrix(rnorm(...
  • u013946794
  • u013946794
  • 2016-02-18 12:42
  • 6085

R语言中的机器学习包

Machine Learning & Statistical Learning (机器学习 & 统计学习)  网址:http://cran.r-project.org/web/views/MachineLearning.html维护人员:Torsten Hothorn...
  • songfit
  • songfit
  • 2015-08-20 17:44
  • 1849

一次性下载《R语言实战2》全书的R包及常用的R包

系统:CentOS6.5 R版本:3.2.5source('http://bioconductor.org/biocLite.R') biocLite(c("AER","Amelia","arrayImpute",&quo...
  • hongjinlongno1
  • hongjinlongno1
  • 2016-11-11 17:41
  • 3866

R语言基于支持向量机训练模型实现类预测

前面介绍了基于训练集训练SVM的方法。通过训练,算法能找到使间隔区间最大化的最优平面来分割训练数据集,得到SVM模型能够被用来预测新到样例的类别。准备使用之前构建的churn构建的model.
  • dingming001
  • dingming001
  • 2017-06-06 12:13
  • 1145
    个人资料
    • 访问:93925次
    • 积分:2056
    • 等级:
    • 排名:千里之外
    • 原创:110篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    最新评论