2017-07-05 1 views
2

J'ai essayé d'obtenir le code ci-dessous pour s'exécuter dans Caret mais obtenir l'erreur. Quelqu'un peut-il me dire comment résoudre le problème.Caret: colonnes non définies sélectionnées

Erreur dans [.data.frame (données,, lvls [1]): colonnes non définies sélectionnées

library(tidyverse) 
library(caret) 

mydf <- iris 

mydf <- mydf %>% 
    mutate(tgt = as.factor(ifelse(Species == 'setosa','Y','N'))) %>% 
    select(everything(), -Species) 

trainIndex <- createDataPartition(mydf$tgt, p = 0.75, times = 1, list = FALSE) 
train <- mydf[trainIndex,] 
test <- mydf[-trainIndex,] 

fitControl <- trainControl(method = 'repeatedcv', 
         number = 10, 
         repeats = 10, 
         allowParallel = TRUE, 
         summaryFunction = twoClassSummary) 

fit_log <- train(tgt~., 
      data = train, 
      method = "glm", 
      trControl = fitControl, 
      family = "binomial") 
+0

On dirait que votre problème est que 'train' indique à la fois les données de votre ensemble d'entraînement et la fonction' caret'. Désambiguïsez et voyez si vous avez toujours un problème ... – CPak

+0

Salut, j'ai changé les parties 'train' et' test' du code en 'mytrain' et' mytest' mais la même erreur persiste –

+0

'summaryFunction' dans' fitControl 'provoque l'erreur. Je ne sais pas ce que ça fait, alors je ne peux pas vous aider, mais ça devrait vous aider à démarrer. – CPak

Répondre

5

Vous devez utiliser classProbs = TRUE dans votre fonction de contrôle. La courbe ROC est basée sur les probabilités de classe et l'erreur est la fonction de résumé ne trouvant pas ces colonnes.