r - "Could not find function"包中的错误 'caret',R

标签 r parallel-processing r-caret gbm

我正在尝试通过 R 中的插入符包运行“gbm”。收到“未找到方法“gbm.fit””错误。 gbm 包已加载,R、RStudio、caret 和 gbm 已更新到最新版本(请参阅下面的版本信息)

这是一个[可重现]的例子

加载所需的包

library(caret)
library(gbm)
library(foreach)
library(doParallel)
library(magrittr)
library(plyr)

并行启动(或者不启动,结果一样)

cl=makeCluster(5)
registerDoParallel(cl)

设置插入符的控制参数——几乎都是默认值

gbm.fit.control = trainControl(method = "cv", 
                               number = 5,
                               repeats = 1,
                               p = 0.75, 
                               verboseIter = T,
                               returnData = TRUE,
                               summaryFunction = defaultSummary
                               selectionFunction = "best",
                               allowParallel = FALSE)

为参数搜索设置网格 - 没什么特别的

gbmGrid <-  expand.grid(interaction.depth = c(2,5,8),
                        n.trees = c(500,2000,5000),
                        shrinkage = c(0.1,0.01),
                        n.minobsinnode = c(10))

为示例生成虚拟数据。实际数据更复杂,但这个玩具示例的结果也是一样的

tn.XY=data.frame(y=runif(100), x1=runif(100), x2=runif(100), x3=runif(100))

正在尝试运行训练函数

gbmFit3 <- train(y~x1+x2+x3, data = tn.XY,
                 method = "gbm",
                 trControl = gbm.fit.control,
                 verbose = FALSE,
                 tuneGrid = gbmGrid,
                 ## Specify which metric to optimize
                 metric = "RMSE")

获取错误 = gbm.fit is not found

+ Fold1: shrinkage=0.01, interaction.depth=2, n.minobsinnode=10, n.trees=5000 
model fit failed for Fold1: shrinkage=0.01, interaction.depth=2, n.minobsinnode=10, n.trees=5000 
Error in do.call("gbm.fit", modArgs) : could not find function "gbm.fit"

- Fold1: shrinkage=0.01, interaction.depth=2, n.minobsinnode=10, n.trees=5000 
+ Fold1: shrinkage=0.01, interaction.depth=5, n.minobsinnode=10, n.trees=5000 
model fit failed for Fold1: shrinkage=0.01, interaction.depth=5, n.minobsinnode=10, n.trees=5000 
Error in do.call("gbm.fit", modArgs) : could not find function "gbm.fit"
...
And it continues for every fold

我怀疑这可能是并行问题(例如 here )。但是,禁用并行执行没有帮助。我有点迷路了。我知道有些人使用插入符取得了巨大的成功。它可能需要一些基本的东西,一些我所缺少的东西。

R 版本信息

R version 3.2.1 (2015-06-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] parallel  splines   stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] plyr_1.8.3       magrittr_1.5     doParallel_1.0.8 iterators_1.0.7  foreach_1.4.2    gbm_2.1-06       survival_2.38-3 
 [8] caret_6.0-52     ggplot2_1.0.1    lattice_0.20-33  readr_0.1.1      installr_0.16.0 

最佳答案

我想出了问题所在。我认为与其删除我的问题,不如将其留在这里,也许它会对某些人有所帮助。问题是我从 github 安装了新版本,由于某种原因没有 gbm.fit 方法。所以我从 CRAN 存储库重新安装了它,错误消失了。

关于r - "Could not find function"包中的错误 'caret',R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31846568/

相关文章:

r - 在 Caret 中安装 bartMachine 获取长度为零的参数/维数不正确

r - 如何在条形图 R 上绘制指数函数?

r - 如果一个函数是在另一个函数中创建的,那么函数常量存储在哪里?

r - 我可以在 CentOS 上安装 `caret` 吗?

c - OpenMP 与节的嵌套并行性

c - 在 C 中用多个线程填充数组

ROCR 错误 : Format of predictions is invalid

R 中负二项式回归的稳健标准误差与 Stata 中的不匹配

R - 是否有类似于 list.dirs 的函数,它返回命名嵌套列表而不是字符向量?

haskell - 并行 Repa 代码不会产生 Spark