测试数据集的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"))
我正在使用插入符包来比较不同的模型。
模型训练完成后,如何找到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"))