怒是不可行的

时间:2014-11-18 05:30:04

标签: python scikit-learn svm svc

我在sklearn中使用NuSVC类。尝试按如下方式实例化NuSVC对象后:

self.classifier = OneVsRestClassifier(NuSVC())

我发现我反复得到一个指定的nu是不可行的'错误。我尝试改变了#nu;'参数从0.1一直到1.(以0.1为增量),但我一直得到同样的错误。我真的不确定如何解释这个消息,以及如何解决它?我认为如果我将nu设置为1.它会起作用,因为nu代表训练错误部分的上限,我认为应该总是成立。可能导致这种情况的原因是什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

为了完整性,from the documentation:Nu-SVM是受约束的SVM公式(与原始到重新参数化相当),这对允许的错误分类构成了严格的约束。如果不能满足此约束,那么相关的凸优化问题就变得不可行了。

从这个角度来看,你需要调查的第一件事是你真正可以预期的训练错误,并且可能会修改你的假设。搜索标准SVM的C值网格以检查它。

但是,NuSVC应该使用一些严格小于1的值。根据你的描述,你已经尝试过0.9 - 开始添加9s,即.99,.999。如果它在某些时候不起作用,那么某处就会出现另一个问题。