Ошибка Не удалось найти функцию в пакете 'caret', R

Я пытаюсь запустить "gbm" через пакет вставки в R. Получаю ошибку "метод "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 не найден

+ 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

Я подозревал, что это может быть проблема с параллельным (например, в здесь), например. Однако отключение параллельного выполнения не помогло. Я немного потерян. Я знаю, что некоторые люди использовали каретку с большим успехом. Наверное, нужно что-то основное, чего мне не хватает.

Информация о версии 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 

person Alex Lizz    schedule 06.08.2015    source источник
comment
Теперь надо решить, как с этим быть - в новой версии были некоторые исправления и фичи, которые мне понравились...   -  person Alex Lizz    schedule 06.08.2015


Ответы (1)


Я понял, в чем проблема. Я подумал, что вместо того, чтобы удалять свой вопрос, я оставлю его здесь, может быть, это кому-то поможет. Проблема заключалась в том, что я установил новую версию с гитхаба, в которой почему-то не было метода gbm.fit. Поэтому я переустановил его из репозитория CRAN, и ошибка исчезла.

person Alex Lizz    schedule 06.08.2015