代码之家  ›  专栏  ›  技术社区  ›  mrgloom

支持向量数libsvm

  •  4
  • mrgloom  · 技术社区  · 13 年前

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

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

    也许我可以找到N个支持向量,然后通过某种近似将其简化为K(K<N)?

    3 回复  |  直到 13 年前
        1
  •  7
  •   Pedrom    13 年前

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

    使用构建支持向量机 降低了分类器的复杂性 PDF

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

    降维支持向量机的研究 PDF

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

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

        2
  •  3
  •   xhudik    13 年前

    支持向量的数量取决于训练数据和参数 c ,以及所选择的内核参数(例如,gaussian具有 伽马射线 ).

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

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

        3
  •  1
  •   Mihai Todor    13 年前

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

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