来自插入物R包中的列车/测试装置的ROC曲线

时间:2017-10-19 23:50:27

标签: r r-caret roc

我正在绘制一个模型的ROC曲线,该模型使用由插入符R包创建的测试/训练集。我或者要么没有输入正确的数据来绘制或遗漏了关于我的测试/训练集的创建。任何见解??

*使用正确答案编辑

library(caret)
library(mlbench)
set.seed(506)
data(whas)
inTrain <- createDataPartition(y = whas$bin.frail,
p = .75, list = FALSE)
str(inTrain)
training <- whas[ inTrain,]
testing <- whas[-inTrain,]
nrow(training)
nrow(testing)
tc <- trainControl("cv", 10, savePredictions=T)  #"cv" = cross-validation, 10-fold
mod1 <- train(bin.frail ~ ,
                      data      = training    ,
                      method    = "glm"    ,
                      family    = binomial ,
                      trControl = tc)

library(pROC)
mod1pred<- predict(mod1, newdata=testingresponse="prob")
plot(roc(testing$bin.frail, mod1pred[[2]]), print.auc=TRUE, col="red", 
xlim=c(0,1))

1 个答案:

答案 0 :(得分:0)

如果没有可重复的答案,很难确定,但可能您的响应变量bin.frail不是数字。例如,它可以使用字母编码(例如,&#34; Y&#34;,&#34; N&#34;);或者使用作为因子存储的数字。您可以使用is.numeric(whas$bin.frail)进行检查。

作为旁注,在致电roc()时,您的培训数据似乎正在创建mod1pred,而testing$bin.frail来自您的测试数据。在创建newdata = testing时,您可以通过predict添加mod1pred来更正此问题。