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

说明

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

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

操作

继续使用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:",[email protected]))

总结

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

05-03 23:41