R插入符/gbm代码不会预测: dim(X) must have a positive length

标签 r r-caret gbm

我正在尝试使用插入符号来查找 GBM 模型的最佳参数。该代码与我在其他数据集上使用的代码相同,无法找出错误。

它似乎可以运行模型,但无法创建预测。

predictions failed for Fold2: interaction.depth=4, shrinkage=0.005, n.trees=200 Error in apply(tmp, 2, function(x, nm = modelFit$obsLevels) ifelse(x >=  : 
  dim(X) must have a positive length

完整代码如下:

library(caret)
library(gbm)

myControl <- trainControl(method='cv', number=2, summaryFunction=twoClassSummary,
                          classProbs=TRUE, savePredictions=TRUE, verboseIter=TRUE)


df1 <- data.frame(Y = round(runif(1000), 0), x1=runif(1000), x2=runif(1000) )

X <- df1[,c('x1','x2')]
Y <- factor(paste('X', df1[,'Y']))


gbm_model <- train(X, Y, method='gbm', metric='ROC', trControl=myControl 
                   ,distribution='bernoulli', tuneGrid=expand.grid(.n.trees=seq(100, 200, by=100) 
                   ,.interaction.depth=seq(2, 4, by=2), .shrinkage=c(.005)))

有什么建议吗?

编辑:我正在使用 gbm 2.1caret 5.16.24

最佳答案

这是一个错误。我今天要提交一个新版本的插入符,但我会在发送之前进行这些更改。

您的代码和输出之间存在一些脱节。我收到附加警告:“至少有一个类级别不是有效的 R 变量名称;如果生成类概率,这可能会导致错误,因为变量名称将转换为:X.0、X.1”。在paste命令中添加一个sep = "",它就会消失。

最大

关于R插入符/gbm代码不会预测: dim(X) must have a positive length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025275/

相关文章:

r - 没有使用 RMySQL 选择数据库

r - 在R中使用插入符号进行分类的预测(model)和预测(model $ finalModel)之间的差异

machine-learning - 交叉验证中的平衡类

r - 无法在 Ubuntu 18.04 LTS 上安装 rstanarm

r - R中确定 'true'地址位置的方法

R:自动保存来自多个设备的绘图

r - 在 R 中使用插入符号训练模型的时机

r - 在 R 泊松回归中使用 CARET 和 GAM ("gamSpline"方法)

r - 关于数值变量和标签的 xgboost 错误消息

random-forest - 构建决策树模型时处理分类特征