web-dev-qa-db-fra.com

Fonction train de caret - impossible de trouver la variable "optimismBoot"

Je suis nouveau dans R et RStudio et j'ai déjà expérimenté la modélisation prédictive. La fonction de train suivante fonctionne sans traitement parallèle, mais lorsque j'implémente doSNOW makeCluster, l'erreur ci-dessous est associée à une variable nommée "optimismBoot". J'ai cherché en vain une résolution, essayé d'installer et de désinstaller des paquets, mais rien ne fonctionne. Toute idée appréciée.

 cl <- makeCluster(2, type = "SOCK")

 registerDoSNOW(cl)

 caret.cv <- train(ReturnedToMF ~ .,
                       data = trees.cetstrain,
                       method = "xgbTree",
                       tuneGrid = tune.grid,
                       trControl = cetstrain.control)
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) : 
  unable to find variable "optimismBoot"

J'ai trouvé le lien suivant sur ce site, mais il ne fournit pas vraiment de solution pour que le traitement en parallèle fonctionne: Caret on R spills "incapable de trouver la variable" optimismBoot "" message d'erreur

7
cag

J'étais confronté à ce problème lorsque j'ai mis à jour les paquets. La nouvelle version de caret est caret_6.0-77. Je résous maintenant le problème en téléchargeant l'ancienne version du paquet caret is caret_6.0-76 à partir des paquets de cran archives voir ce lien Click here !, puis installez le fichier de paquet localement en utilisant Rstudio à partir du menu Outils, puis sélectionnez installer les paquets à afficher dans la boîte de dialogue du menu contextuel, choisissez d'installer à partir d'un fichier (.extension).

J'espère que cela vous aidera

2
M. Adam

Je dirais d'utiliser l'exemple de la documentation pour le traitement parallèle.

library(parallel)
library(doMC)
# use all cores except one
doMC::registerDoMC(cores = parallel::detectCores() - 1)

C’est tout ce que vous avez à faire, alors vous pouvez exécuter train() et il devrait utiliser le nombre de cœurs que vous avez spécifié… .. Je l’adapte un peu pour détecter dynamiquement le nombre de cœurs avec la bibliothèque parallel.

0
wordsforthewise