预测时间取决于支持向量的数量,但我想更快地进行预测。
如何在libsvm中将支持向量的数量设置为const值?
也许我可以找到N个支持向量,然后通过某种近似将其减少到K(K
答案 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中构建的。