怒是不可行的
Posted
技术标签:
【中文标题】怒是不可行的【英文标题】:Nu is infeasible 【发布时间】:2015-01-15 05:22:53 【问题描述】:我在 sklearn 中使用 NuSVC 类。尝试按如下方式实例化 NuSVC 对象后:
self.classifier = OneVsRestClassifier(NuSVC())
我发现我反复收到“指定的 nu 不可行”错误。我尝试将“nu”参数从 0.1 一直更改为 1。(以 0.1 为增量),但我一直收到相同的错误。我真的不确定如何解释此消息,以及如何解决它?我想如果我将 nu 设置为 1,它会起作用,因为 nu 代表了我认为应该始终成立的训练错误分数的上限。这可能是什么原因造成的?
感谢您的帮助!
【问题讨论】:
【参考方案1】:为了完整起见,from the documentation:Nu-SVM 是 SVM 的受约束公式(相当于重新参数化的原始公式),它对允许的错误分类提出了严格的限制。如果不能满足这个界限,那么相关的凸优化问题就变得不可行。
从这个角度来看,您必须调查的第一件事是您真正可以预期多少训练错误,并可能修改您的假设。在 C
值的网格中搜索标准 SVM 以进行检查。
不过,NuSVC 应该适用于一些严格小于 1 的值。根据您的描述,您已经尝试了 0.9 -- 开始添加 9,即 0.99、0.999。如果它在某些时候不起作用,那么一定是某个地方存在另一个问题。
【讨论】:
从文档中,nu 也是支持向量分数的下限。当我在具有 20% 正例的训练集上遇到这个问题时,我不得不将 nu 从 0.5 降低到 0.2,否则将训练集重新采样为 50% 正例。提高 nu 不起作用。 感谢您指出这一点。为了完整起见,您是否参考了说明的位置? 在上述答案链接的api参考中有说明。以上是关于怒是不可行的的主要内容,如果未能解决你的问题,请参考以下文章
在 Postgres 中存储大量 JSON 数据是不可行的,那么有啥替代方案呢?
Element UI样式优化el-table多选行的实现 ==> 批量删除功能 ==> el-table含有不可选中行
思考:为什么每一种开发语言的语法都是不一样的呢(语法设置的不一样的出发点是基于什么考虑)?如果设置成一样有什么不可行的吗?