支持向量机在其利基市场中是否仍然被认为是“最先进的”?

数据挖掘 数据挖掘 支持向量机 最先进的
2021-10-01 19:53:17

这个问题是对我在另一个问题上看到的评论的回应。

该评论是关于 Coursera 上的机器学习课程大纲的,并且大意是“如今 SVM 并没有被大量使用”。

我自己刚刚完成了相关的讲座,我对 SVM 的理解是,它们是一种强大且高效的分类学习算法,并且当使用内核时,它们有一个“利基”,涵盖的特征数量可能在 10 到 1000 和训练样本的数量可能在 100 到 10,000 之间。训练样本的限制是因为核心算法围绕优化从具有基于训练样本数量而非原始特征数量的维度的方阵生成的结果。

所以我看到的评论是否提到了自课程制作以来的一些真正变化,如果是这样,那是什么变化:一种新算法也涵盖了 SVM 的“最佳位置”,更好的 CPU 意味着 SVM 的计算优势不值那么多? 还是评论者的意见或个人经历?

我尝试搜索例如“支持向量机是否过时”,但没有发现任何暗示它们被丢弃以支持其他任何东西。

维基百科有这个:http ://en.wikipedia.org/wiki/Support_vector_machine#Issues 。. . 主要的症结似乎是难以解释模型。这使得 SVM 对于黑盒预测引擎来说很好,但对于产生洞察力却不是很好。我不认为这是一个主要问题,只是在为工作选择合适的工具时要考虑的另一个小问题(以及训练数据的性质和学习任务等)。

2个回答

SVM 是一个强大的分类器。它有一些不错的优势(我想这是它受欢迎的原因)......这些是:

  • 效率:只有支持向量在确定分类边界中起作用。训练集中的所有其他点不需要存储在内存中。
  • 所谓核的力量:通过合适的核,你可以将特征空间转化为更高的维度,使其成为线性可分的。内核的概念适用于任意对象,您可以借助内积在其上定义一些相似性概念……因此,SVM 可以对任意对象进行分类,例如树、图等。

也有一些明显的缺点。

  • 参数敏感度:性能对正则化参数 C 的选择高度敏感,这允许模型中存在一些差异。
  • 高斯核的额外参数:高斯核的半径会对分类器的准确性产生重大影响。通常,必须进行网格搜索以找到最佳参数。LibSVM 支持网格搜索。

SVM 通常属于“稀疏内核机”类。在 SVM 的情况下,稀疏向量是从最大边距标准中选择的支持向量。其他稀疏向量机,例如相关向量机(RVM),其性能优于 SVM。下图是两者的对比表现。在图中,x 轴显示来自两个类 y={0,1} 的一维数据。混合模型定义为 P(x|y=0)=Unif(0,1) 和 P(x|y=1)=Unif(.5,1.5)(Unif 表示均匀分布)。从该混合物中采样了 1000 个点,并使用 SVM 和 RVM 来估计后验。SVM 的问题是预测值与真实的对数几率相差甚远。

RVM 与 SVM

一个非常有效的分类器,现在非常流行,是随机森林主要优点是:

  • 只需调整一个参数(即森林中的树木数量)
  • 对参数不完全敏感
  • 可以很容易地扩展到多个类
  • 基于概率原理(借助决策树最大化互信息增益)

在回答这个问题时,一个重要的区别是我们是在谈论线性支持向量机还是非线性的,即核化支持向量机。

线性 SVM

当您的数据可以通过特征的线性关系来解释时,线性 SVM 在理论上和实践上都是非常好的模型。它们优于线性(又名最小二乘)回归等经典方法,因为它们是稳健的,因为输入数据中的小扰动不会对模型产生显着变化。这是通过尝试找到使数据点之间的边距最大化的线(超平面)来实现的。这个最大边距超平面已被证明可以保证模型在看不见的数据点上的泛化能力,这是其他机器学习方法所缺乏的理论属性。

线性 SVM 也可以解释为任何其他线性模型,因为每个输入特征都有一个直接影响模型输出的权重。

线性 SVM 的训练速度也非常快,显示了非常大数据集的次线性训练时间。这是通过使用随机梯度下降技术来实现的,这与当前的深度学习方法很相似。

非线性 SVM

非线性 SVM 仍然是线性模型,具有相同的理论优势,但它们采用所谓的核技巧在扩大的空间上构建此线性模型。可见的结果是生成的模型可以对您的数据做出非线性决策。由于您可以提供数据点之间的自定义内核编码相似性,因此您可以利用问题知识使此类内核专注于问题的相关部分。然而,有效地做到这一点可能很困难,所以通常几乎每个人都使用即插即用的高斯内核。

非线性 SVM 是部分可解释的,因为它们会告诉您哪些训练数据与预测相关,哪些不相关。这对于随机森林或深度网络等其他方法是不可能的。

不幸的是,非线性 SVM 很慢。最先进的算法是Sequential Minimal Optimization,它显示了二次性能,并通过LIBSVM库在许多机器学习库中广泛实施,包括 scikit-learn。

这些方法的流行

的确,支持向量机不像以前那么受欢迎:这可以通过谷歌搜索研究论文或支持向量机与随机森林或深度学习方法的实现来检查。尽管如此,它们在一些实际设置中还是很有用的,特别是在线性情况下。

另外,请记住,由于没有免费午餐定理,没有任何机器学习方法可以证明在所有问题上都优于任何其他方法。虽然某些方法通常效果更好,但您总能找到数据集,其中不常用的方法会获得更好的结果。