支持向量机的线性核和非线性核?

机器算法验证 机器学习 分类 支持向量机 参考 内核技巧
2022-01-19 07:32:32

使用支持向量机时,是否有关于选择线性核与非线性核(如 RBF)的指南?我曾经听说,一旦特征数量很大,非线性内核往往表现不佳。有没有关于这个问题的参考资料?

2个回答

通常,决定是使用线性核还是 RBF(又名高斯)核。有两个主要因素需要考虑:

  1. 解决线性内核的优化问题要快得多,例如 LIBLINEAR。
  2. 通常,非线性内核的最佳预测性能更好(或至少与线性内核一样好)。

已经证明线性内核是 RBF 的退化版本,因此线性内核永远不会比经过适当调整的 RBF 内核更准确。引用我链接的论文的摘要:

分析还表明,如果使用高斯核进行了完整的模型选择,则无需考虑线性 SVM。

NTU 的支持向量分类实用指南(附录 C)简要介绍了一个基本的经验法则。

如果特征数量很大,则可能不需要将数据映射到更高维空间。也就是说,非线性映射不会提高性能。使用线性核就足够了,而且只搜索参数 C。

你的结论或多或少是正确的,但你的论点倒退了。在实践中,当特征数量很大时(例如,不需要映射到更高维的特征空间),线性核往往表现得非常好。一个典型的例子是文档分类,输入空间有数千个维度。

在这些情况下,非线性内核不一定比线性内核更准确。这基本上意味着非线性内核失去了吸引力:它们需要更多的资源来训练,而预测性能几乎没有增益,所以何苦呢。

TL;博士

总是先尝试线性,因为训练(和测试)要快得多。如果准确度足够,请拍拍自己的好成绩,然后继续下一个问题。如果没有,请尝试非线性内核。

Andrew Ng 从 14:46 开始在这个视频中给出了一个很好的经验法则解释,尽管整个视频都值得一看。

关键点

  • 当特征数大于观察数时使用线性核。
  • 当观察数大于特征数时使用高斯核。
  • 如果观察数大于 50,000,则使用高斯核时速度可能会成为问题;因此,人们可能想要使用线性内核。