在Windows 7,R 3.0.2,插入符号6.0-21上的插入符号中的train()致命错误

时间:2014-01-13 15:49:41

标签: r r-caret

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

  

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

我正在运行Windows 7,R 3.0.2,插入6.0-21,并尝试在R Studio的32/64版本上运行,在R Studio中直接在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)

但是,我仍在nan列中获取所有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

1 个答案:

答案 0 :(得分: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)

谢谢,

最高