支持向量的数量 libsvm

Posted

技术标签:

【中文标题】支持向量的数量 libsvm【英文标题】:number of support vectors libsvm 【发布时间】:2013-04-04 13:32:23 【问题描述】:

预测时间取决于支持向量的数量,但我想更快地进行预测。

如何将 libsvm 中的支持向量数量设置为 const 值?

也许我可以找到 N 个支持向量,然后通过某种近似将其减少到 K (K

【问题讨论】:

【参考方案1】:

如其他答案所述,控制支持向量数量的更简单方法是使用 C 和内核参数。但是,有一些关于该主题的有趣论文:

构建支持向量机 降低分类器复杂度PDF

一种简化支持向量机的有效方法PDF

关于约简支持向量机的研究PDF

不幸的是,我找不到这个的公开来源:

一种减少支持向量数量的算法 (http://link.springer.com/chapter/10.1007%2F1-4020-3432-6_12?LI=true#page-1)

【讨论】:

【参考方案2】:

支持向量的数量取决于训练数据和参数 c,以及选择的内核参数(例如,高斯有 Gamma)。

据我所知,没有明确的方法来定义支持向量的数量。只是一个线索:也许像 c=0 这样的一些极端值会产生一些极端数量的支持向量 - 但据说这不是你要找的......

可能,更好的方法是找到可以为您提供所需支持向量数量并且结果仍然合理的参数设置。

【讨论】:

【参考方案3】:

根据您使用的内核,您必须对 C 和 Gamma 参数进行详尽的网格搜索(请参阅 grid.py)并优化支持向量的数量。无法保证 grid.py 中的值网格将为您的特定问题产生最佳值,但它是一个很好的起点。请注意,最小化 SV 的数量并不能最大化准确性。

PS:您需要为此任务编写自定义脚本,因为此功能未内置在 AFAIK 中。

【讨论】:

以上是关于支持向量的数量 libsvm的主要内容,如果未能解决你的问题,请参考以下文章

支持向量的数量与训练数据和分类器性能之间的关系是啥? [关闭]

libsvm 不提供支持向量/没有支持向量

LIBSVM:从模型文件中获取支持向量

使用 python 的 libsvm 支持具有高维输出的向量回归

Libsvm 模型中的支持向量是如何排列的?

Python 中的支持向量机使用 libsvm 功能示例