在 Caret 中尝试 svm 时出错

Errors while trying svm in Caret

尝试使用插入符号库和方法 "svm-radial" 通过以下代码获得因变量的 class 概率。我已经在鸢尾花数据集上试过了。

    # finding optimal value of a tuning parameter
      sigDist <- sigest(Species ~ . , data=Train, frac=1)
    # creating a grid of two tuningparameters, .sigma comes from the earlier line.
    # we are trying to find best value of C
      svmTuneGrid <- data.frame(.sigma=sigDist[1], .C=2^(-2:7))

     model_svmRadial <- train(Species ~. , data=Train, method='svmRadial', preProc=c("center","scale"),tuneGrid=svmTuneGrid , trControl=myControl,classProbs=TRUE)

它产生错误和警告:

    model_svmRadial <- train(Species ~. , data=Train, method='svmRadial', preProc=c("center","scale"),tuneGrid=svmTuneGrid , trControl=myControl,classProbs=TRUE)
     Something is wrong; all the Accuracy metric values are missing:
     Accuracy       Kappa    
       Min.   : NA   Min.   : NA  
       1st Qu.: NA   1st Qu.: NA  
       Median : NA   Median : NA  
       Mean   :NaN   Mean   :NaN  
       3rd Qu.: NA   3rd Qu.: NA  
       Max.   : NA   Max.   : NA  
       NA's   :10    NA's   :10   
       Error in train.default(x, y, weights = w, ...) : Stopping
       In addition: There were 31 warnings (use warnings() to see them)

删除 classProbs=TRUE,训练功能运行良好。但我需要 class 概率。 请建议如何摆脱错误。 感谢期待。

你应该把 classProbs 放在你的 trainControl 里面而不是 train 里面,例如:

myControl <- trainControl(method= "cv",
                          number = 10,
                          classProbs = TRUE)