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