r - 如何从 MLeval 获取测试数据 ROC 图
问题描述
我正在尝试使用MLevals
包返回测试数据集的 ROC 曲线。
# Load data
train <- readRDS(paste0("Data/train.rds"))
test <- readRDS(paste0("Data/test.rds"))
# Create factor class
train$class <- ifelse(train$class == 1, 'yes', 'no')
# Set up control function for training
ctrl <- trainControl(method = "cv",
number = 5,
returnResamp = 'none',
summaryFunction = twoClassSummary(),
classProbs = T,
savePredictions = T,
verboseIter = F)
gbmGrid <- expand.grid(interaction.depth = 10,
n.trees = 18000,
shrinkage = 0.01,
n.minobsinnode = 4)
# Build using a gradient boosted machine
set.seed(5627)
gbm <- train(class ~ .,
data = train,
method = "gbm",
metric = "ROC",
tuneGrid = gbmGrid,
verbose = FALSE,
trControl = ctrl)
# Predict results -
pred <- predict(gbm, newdata = test, type = "prob")[,"yes"]
roc <- evalm(data.frame(pred, test$class))
我使用了以下帖子,使用 Caret 包的测试集的 ROC 曲线,尝试使用测试数据绘制 ROC MLeval
,但我收到以下错误消息:
MLeval:机器学习模型评估输入:观察标签概率的数据框名称错误(x)<-值:“名称”属性[3]必须与向量[2]的长度相同
有人可以帮忙吗?谢谢。
解决方案
请提供带有示例数据的可重现示例,以便我们可以复制错误并测试解决方案(即,我们无法访问train.rds
或test.rds
)。
不过,以下内容可能会解决您的问题。
pred <- predict(gbm, newdata = test, type = "prob")
roc <- evalm(data.frame(pred, test$class))
推荐阅读
- html - 在 R 闪亮的 tabPanel 中装饰活动选项卡:添加漂亮的边框顶部
- java - 如何处理像 50°32'20.548\\\"N" 这样的坐标?
- arrays - “;在指令前缺失”
- java - 无法修复 java.lang.ArrayIndexOutOfBoundsException 的最短路径问题
- c++ - 如何记录 C++ 非类型模板参数?
- timeout - ActiveMQ Artemis 错误 - AMQ224088:与 LB 握手时超时(10 秒)
- dynamics-crm - 找不到 Dynamics CRM 365 业务应用程序页面
- bash - 隐藏分段错误,同时让以下命令了解此事件
- sql-server-2005 - 配置jbpm(版本7.28.0)服务器启动Mssql
- bash - 如何重构 bash 脚本以运行两个 angular 实例