支持向量libsvm的数量

时间:2013-04-12 06:11:25

标签: machine-learning libsvm svm

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

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

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

3 个答案:

答案 0 :(得分:6)

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

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

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

减少支持向量机的研究PDF

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

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

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:1)

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

PS:您需要为此任务编写自定义脚本,因为此功能不是在AFAIK中构建的。