Ошибка каретки SVM: «Стандартные отклонения не могут быть вычислены для ... пропущенного значения там, где требуется ИСТИНА / ЛОЖЬ» - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь запустить этот код для SVM в карете с многослойной перекрестной проверкой, но получаю эту ошибку: «Стандартные отклонения не могут быть рассчитаны для: diff1, diff2, diff3, diff4, diff5, diff6, ..Ошибка подбора модели для Resample01: сигма = 0,000, C = 0,010 Ошибка, если (любая (со)) {: пропущенное значение, где требуется TRUE / FALSE "

" diff1, diff2, diff3, diff4, diff5,diff6, ... "- количественные переменные, используемые для прогнозирования факторной переменной с 2 ​​уровнями

   set.seed(1) 
    folds<-createFolds(file_test$y,k=10,list=FALSE) # statified folds for cross-validation 
    ctrl<-trainControl(method="repeatedcv",index=folds,classProbs = TRUE,summaryFunction = twoClassSummary)
    grid_radial <- expand.grid(
      sigma = c(0,0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75,0.9),
     C = c(0.01,0.025,0.05,0.075,0.1,0.25, 0.5, 0.75, 1))
    SVMrad<-train(y ~., data=file_test,
                  method="svmRadial", # SVM algorithm
                  tuneGrid = grid_radial, 
                  trControl=ctrl, 
                  preProc=c("center","scale"), 
                  metric="ROC") 

Я проверил 'file_test', но пропущенных значений нет.

Iнадеюсь, ты сможешь помочь мне исправить это.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Я наконец-то нашел, что было не так: мне пришлось использовать опцию «list = TRUE» в функции createFolds:

folds<-createFolds(file_test$y,k=10,list=TRUE)
0 голосов
/ 07 февраля 2019

это я factor?например, у - это вектор 1 и 0, вам нужно будет запустить

file_test$y <- as.factor(ifelse(y==1, "one","zero"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...