首页 文章

如何在tune.svm()中省略空模型错误?

提问于
浏览
0

我试图使用tune.svm函数,因为我不知道哪些参数会产生一个好的模型(因为训练数据将被用户选中),我需要涵盖各种各样的值 . 目前我有这种行为

tune(svm, value ~ . , data= data_l, ranges=list(cost = 10^(0:5), epsilon = 10^(-1:0)))

Parameter tuning of ‘svm’:
- sampling method: 10-fold cross validation 
- best parameters:
 cost epsilon
  100     0.1
- best performance: 277.5491

tune(svm, value ~ . , data= data_l, ranges=list(cost = 10^(0:5), epsilon = 10^(-1:1)))
Error in predict.svm(ret, xhold, decision.values = TRUE) : Model is empty!

(epsilon最高值的差异)

我知道svm不适用于epsilon = 10,但我对这个调优函数的直觉是,它可以处理不会产生模型的参数 . 为什么不选择可以生成的模型?有没有“简单”的方法来省略这种错误行为? (我尝试过tryCatch(tune())和我发现的很多其他东西,但我想我必须深入研究一下听起来不那么“简单”的tune / svm / predict-codes

1 回答

  • 1

    我对"Model is empty!"错误的理解是它表明singular训练矩阵被输入SVM . 在R邮件列表中查看Salvy的answerthis相关帖子和Oldrich Kruza的相关message .

相关问题