2

我正在尝试使用train()插入符号来拟合分类模型,但我遇到了某种未处理的异常,并且我的 R 会话在 R 控制台中输出任何错误信息之前崩溃。
窗口错误:

R for Windows 终端前端已停止工作

我正在运行 Windows 7、R 3.0.2、插入符号 6.0-21,并尝试在 R Studio 和 R 控制台中的 32/64 版本的 R 上运行它,并且每次都得到相同的结果。

这是我的培训电话:

library("AppliedPredictiveModeling")
library("caret")

data("AlzheimerDisease")
data <- data.frame(predictors, diagnosis)

tuneGrid <- expand.grid(interaction.depth = 1:2, n.trees = 100, shrinkage = 0.1)
trainControl <- trainControl(method = "cv", number = 5, verboseIter = TRUE)

gbmFit <- train(diagnosis ~ ., data = data, method = "gbm", trControl = trainControl, tuneGrid = tuneGrid)

使用此参数网格不再有错误:

tuneGrid <- expand.grid(interaction.depth = 1, n.trees = 100:101, shrinkage = 0.1)

但是,我仍然在列中得到所有nans 。ValidDeviance这是正常的吗?

注意:我的原始问题已解决,这是评论部分的延续。在评论部分格式化代码块是不可读的,所以我把它贴在这里。这不再是关于插入符号的问题,而是 gbm。

但是,我仍然遇到问题,使用指定了 cv.folds 的单个预测器直接调用 gbm。这是代码:

library("AppliedPredictiveModeling")
library("caret")

data("AlzheimerDisease")
diagnosis <- as.numeric(diagnosis)
diagnosis[diagnosis == 1] <- 0
diagnosis[diagnosis == 2] <- 1
data <- data.frame(diagnosis, predictors[, 1])
gbmFit <- gbm(diagnosis ~ ., data = data, cv.folds = 5)

同样,这在不指定 cv.folds 的情况下有效,但使用它会返回错误:

Error in checkForRemoteErrors(val) :  5 nodes produced errors; first error: incorrect number of dimensions
4

1 回答 1

1

method = 'gbm'这是与单个模型(即)一起使用时发生的错误nrow(tuneGrid) == 1。我即将发布一个新版本,所以我会在那个版本中修复这个问题。

一个旁注......看起来你想做分类。在这种情况下,y应该是一个因素(并且您不应该只使用整数作为类),否则它将进行回归。这些更改现在将起作用:

 y <- factor(paste("Class", y, sep = ""))

 tuneGrid <- expand.grid(interaction.depth = 1, 
                         n.trees = 100:101, 
                         shrinkage = 0.1)

谢谢,

最大限度

于 2014-01-14T23:49:41.570 回答