2

我正在尝试使用 R 中的 Caret 和 gbm 包在数据帧上训练提升模型。我已经能够使用默认参数成功构建模型;但是,当我尝试自定义摘要功能时,我继续遇到此错误:

Error in vector(type, length) : 
  vector: cannot make a vector of mode 'NULL'.

这是我发布的第一个问题,因为我通常能够找到信息来解决问题。在这种情况下,我似乎找不到类似的问题。

以下代码旨在重现该错误。如果没有,或者我是否应该包含其他信息,请告诉我,因为我很乐意这样做。

System.info:
sysname : Windows
版本: 7 x64
版本: build 7601, Service Pack 1
version.string : R 版本 3.1.3 (2015-03-09)
系统: x86_64, mingw32

library(plyr)
library(caret)
library(dplyr)

example <- data.frame(response = rnorm(100), predictor1 = rnorm(100), predictor2 = rnorm(100))

aeSummary <- function(data, lev = NULL, model = NULL) {
    out <- abs(data$obs-data$pred)
    names(out) <- "AE"
    out
 }

modelFit <- train(response ~ ., 
              data = example,
              method = "gbm", 
              tuneGrid = data.frame(n.trees = 5, 
                                    interaction.depth = 5, 
                                    shrinkage = 0.05, 
                                    n.minobsinnode = 6),
              metric = "AE", 
              maximize = FALSE, 
              trControl = trainControl(
                      summaryFunction = aeSummary))
4

0 回答 0