R语言利用caret包比较ROC曲线

来源:互联网 发布:网络侵权管辖地 编辑:程序博客网 时间:2024/06/16 02:25

说明

我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估。为了简化这个过程,我们使用caret包来生成并比较不同的模型与性能。

操作

加载对应的包与将训练控制算法设置为10折交叉验证,重复次数为3:

library(ROCR)library(e1071)library("pROC")library(caret)library("pROC")control = trainControl(method = "repaetedcv",                       number = 10,                       repeats =3,                       classProbs = TRUE,                       summaryFunction = twoClassSummary)

使用glm在训练数据集上训练一个分类器

glm.model = train(churn ~ .,                  data= trainset,                  method = "glm",                  metric = "ROC",                  trControl = control)

使用svm在训练数据集上训练一个分类器

svm.model = train(churn ~ .,                  data= trainset,                  method = "svmRadial",                  metric = "ROC",                  trControl = control)

使用rpart函数查看rpart在训练数据集上的运行情况

rpart.model = train(churn ~ .,                    data = trainset,                    method = "svmRadial",                    metric = "ROC",                    trControl = control)

使用不同的已经训练好的数据分类预测: