SVM插入符号错误:“标准。偏差不能计算为...缺失值,其中TRUE / FALSE所需”

问题描述 投票:-1回答:2

我想在插入符号与分层交叉验证运行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”但目前还没有缺失值。

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

r svm r-caret
2个回答
0
投票

为y一factor?例如是y是1组成的向量和0,你将需要运行

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

0
投票

我终于找到什么是错的:我不得不使用选项“列表= TRUE”在createFolds功能:

folds<-createFolds(file_test$y,k=10,list=TRUE)
© www.soinside.com 2019 - 2024. All rights reserved.