TellWorldAI 世界档案
问档案English

首页›原理

原理

支持向量机

一种监督式的最大间隔模型,用于分类与回归;它用尽可能宽的间隔把不同类别分开,并通过核函数处理非线性数据。

时代 黄金年代

是什么

支持向量机(support vector machine,SVM)是一种监督式的最大间隔模型,用于分类和回归分析[1]。scikit-learn 文档把支持向量机描述为一组监督学习方法,用于分类、回归和离群点检测[2]。它和许多模型的不同之处在于决策边界的选取原则:不是先把曲线拟合到数据上、误差足够小就停下,而是去找一条能放在两类之间、尽量宽的空带。

怎么工作

给定两类的点,能把它们分开的直线或曲面往往有很多条。支持向量机选的是最大间隔超平面,也就是到两类中最近点的距离最大的那一个[1]。这个距离就是间隔,等于 2 除以权重向量的范数,所以最小化权重向量的范数就等于最大化间隔[1]。那些离得最近、正好贴着间隔边缘的点叫作支持向量[1]。决策函数只用到这些点,这也是它内存高效的原因[2]。

举一个具体的小例子。假设平面上有两类点,有很多条直线都能把它们干净地分开。支持向量机不会随手挑一条,而是挑那条两侧空带最宽的线。这样一来,把这条线稍微往任意一侧挪一点,附近点的归类都不会改变,这也是模型能容忍训练数据中噪声的原因之一。

核函数

真实数据很少能被一条直线分开。核函数(kernel function)隐式地计算映射后特征向量的内积,于是数据可以在更高维的空间里被线性分开[1]。实际计算时,算法处理的是点与点之间的相似度,而不是那个更大空间里的显式坐标。常见的核有线性核、多项式核、高斯径向基核和 sigmoid 核[1],并且可以为决策函数指定不同的核函数[2]。

从哪里来

Vladimir Vapnik 和 Alexey Chervonenkis 在 1964 年提出了最初的线性支持向量机[1]。从线性走向非线性的关键一步发生在 1992 年,Bernhard Boser、Isabelle Guyon 和 Vladimir Vapnik 引入了用于非线性分类的核技巧[1]。数据常常根本不能干净分开,Corinna Cortes 和 Vapnik 在 1993 年提出、1995 年发表的软间隔(soft margin),让模型可以接受一定程度的错分,而不必强求完全分开[1]。

为什么重要

在深度学习兴起之前,支持向量机占据主导地位[1]。部分原因是它可以借助 VC 理论做理论分析[1]。它也很灵活:同一套框架被用于文本、图像和生物数据[1]。它对噪声数据稳健,泛化误差低[1]。间隔这一原则还解释了为什么两类之间留出较宽的间隙有助于处理没见过的数据,而这正是 VC 理论所形式化的论证。

局限

局限主要在实用层面。支持向量机需要完全标注的数据,而且只直接支持二分类,多分类问题要拆成若干个二分类问题[1]。核参数、gamma 参数和惩罚参数都不好解释,通常要靠网格搜索配合交叉验证来选[1],训练因此变成在多种配置里搜索,而不是一次拟合。在大规模稀疏数据集上,计算核矩阵在时间和内存上开销很大[1]。scikit-learn 文档还提醒:当特征数远大于样本数时,在核函数选择和正则项上避免过拟合至关重要[2]。

技术路线深度学习

生态与地区数据与数据集

历史研究史

注释与来源

  1. Support vector machinehttps://en.wikipedia.org/wiki/Support_vector_machine
  2. 1.4. Support Vector Machineshttps://scikit-learn.org/stable/modules/svm.html

引用本页: 支持向量机. TellWorld, https://www.tellworld.net/zh/learn/support-vector-machine. 更新于 2026-11-07