预测时间取决于支持向量的数量,但我希望预测速度更快。
如何将libsvm中的支持向量数量设置为常量值?
也许我可以找到N个支持向量,然后通过某种近似将其减少到K (K< N)?
发布于 2013-04-12 21:28:53
正如在其他答案中所述,控制支持向量数量的更容易的方法是使用C和内核参数。然而,有一些关于这个主题的有趣的论文:
用降低分类器复杂度的PDF构建支持向量机
一种简化支持向量机PDF的E-ffi方法
约简支持向量机PDF的研究
不幸的是,我找不到这个的公开来源:
一种减少支持向量个数(http://link.springer.com/chapter/10.1007%2F1-4020-3432-6_12?LI=true#page-1)的算法
发布于 2013-04-12 16:27:22
支持向量的数量取决于训练数据和参数以及所选的核参数(例如,高斯具有)。
据我所知,没有明确的方法来定义支持向量的数量。只是一个线索:也许像c=0这样的一些极端值会产生一些极端数量的支持向量--但假设它不是你想要的……
可能,更好的方法是找到参数设置,给出你需要的支持向量的数量,并且结果仍然是合理的。
发布于 2013-04-12 18:17:32
根据您使用的内核,您必须对C和Gamma参数进行详尽的网格搜索(请参见grid.py),并优化支持向量的数量。不能保证来自grid.py的值网格将为您的特定问题产生最佳的值,但这是一个很好的起点。请注意,最小化SVs的数量并不能最大限度地提高准确性。
PS:您需要为此任务编写一个自定义脚本,因为此功能不是在AFAIK中构建的。
https://stackoverflow.com/questions/15964301
复制相似问题