SVM caret error: "Std. deviations could not be computed for... missing value where TRUE/FALSE needed"

SVM caret error: "Std. deviations could not be computed for... missing value where TRUE/FALSE needed"

我正在尝试 运行 使用分层交叉验证插入符号中的 SVM 代码,但我收到此错误:"Std. deviations could not be computed for: diff1, diff2, diff3, diff4, diff5, diff6,...model fit failed for Resample01: sigma=0.000, C=0.010 Error in if (any(co)) { : missing value where TRUE/FALSE needed"

"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' 但没有缺失值。

希望你能帮我解决这个问题。

你是factor吗?例如,y 是 1 和 0 的向量,您需要 运行

file_test$y <- as.factor(ifelse(y==1, "one","zero"))

我终于发现问题所在:我必须在 createFolds 函数中使用选项 "list=TRUE":

folds<-createFolds(file_test$y,k=10,list=TRUE)