测试数据集的ROC曲线

ROC curve of the testing dataset

我正在使用插入符包来比较不同的模型。

模型训练完成后,如何找到ROC区域。

# Split data 
a<- createDataPartition(data$target, p = .8, list = FALSE)
train <- data[ a,]
test <- data[-a,]

myControl = trainControl(
    method = "cv",
    summaryFunction = twoClassSummary,
    classProbs = TRUE,
    verboseIter = FALSE,
)

model_knn = train(
    target ~ .,
    train,
    method = "knn",
    metric = "ROC",
    tuneLength = 10,
    trControl = myControl)

例如,这是构建的模型之一。如果我执行以下操作,我可以获得训练集的 ROC 曲线。但是要获取我的测试数据集的 ROC?

model_knn
plot(model)

由于你没有提供任何数据,我使用的是Sonar数据。您可以使用以下代码为测试数据制作 ROC 图

library(caret)
library(MLeval)

data(Sonar)

# Split data 
a <- createDataPartition(Sonar$Class, p=0.8, list=FALSE)
train <- Sonar[ a, ]
test <- Sonar[ -a, ]

myControl = trainControl(
  method = "cv",
  summaryFunction = twoClassSummary,
  classProbs = TRUE,
  verboseIter = FALSE,
)

model_knn = train(
  Class ~ .,
  train,
  method = "knn",
  metric = "ROC",
  tuneLength = 10,
  trControl = myControl)

pred <- predict(model_knn, newdata=test, type="prob")
ROC <- evalm(data.frame(pred, test$Class, Group = "KNN"))