加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2018-01-20 11:25:13)
标签:

python

数据分析师

数据分析师培训

数据科学家

数据科学

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

说明

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

http://www.cda.cn/uploadfile/image/20180119/20180119065100_40646.png

操作

继续使用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

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有