支持向量机
定义
支持向量机是一种建立在统计学习理论与结构风险最小化原则之上的机器学习方法,主要处理模式分类与函数回归问题[3]。训练时,它试图在特征空间里找到一个超平面,使两类样本分居两侧,并让离该超平面最近的样本点与它的距离尽可能大,这一距离称为间隔[1]。
按模型繁简程度,可以将它分为三类:线性可分支持向量机(最大间隔分类器)、线性支持向量机(支持向量分类器)以及借助核函数处理线性不可分数据的非线性支持向量机[1]。只有少数位于间隔边界附近或越界太远的训练样本参与决定最终的分类函数,这些样本被称为支持向量,模型因此得名[4]。
训练集给定后,线性可分情形下能正确划分两类的超平面有无穷多个,普通感知机只要求误分类最少,解不唯一;支持向量机改为求解间隔最大化问题,其最优超平面是唯一的[5]。
原理
设训练集为 $(x_i, y_i)$,其中 $y_i \in \{-1, +1\}$ 表示类别,分离超平面写成 $w \cdot x + b = 0$[5]。对样本点而言,$|w \cdot x + b|$ 的数值反映它离超平面有多远,符号是否与类标记一致则反映分类是否正确,因此 $y(w \cdot x + b)$ 同时刻画了正确性与置信程度,称为函数间隔;把 $w$ 归一化后得到几何间隔,它才是点到超平面的实际距离[6]。
最大化几何间隔等价于最小化 $\frac{1}{2}\|w\|^2$,且约束每个样本的间隔不小于 1;数据中存在噪声、不能完全分开时,引入松弛变量 $\xi_i$ 与惩罚参数 $C$,问题变为在间隔与误分类之间折中[7]。$C$ 取较大值时对误分类的惩罚更重,边界更“硬”、间隔更窄;取较小值时允许更多样本越界,边界更平滑[7]。
求解时把带约束的凸二次规划问题转为对偶问题,决策函数只依赖样本之间的内积,形式为 $f(x)=\sum_i \alpha_i y_i K(x, x_i) + b$,其中多数拉格朗日乘子为零,只有支持向量的系数非零[7]。这一性质使计算量取决于支持向量的个数,而主要不取决于特征维数[3]。
把内积替换为核函数$K(x,z)=\varphi(x)\cdot\varphi(z)$,就等于隐式地将样本映射到高维甚至无穷维特征空间,在那里做线性划分,而无需写出映射$\varphi$的显式形式,这一技巧称为核技巧[8]。常用核函数包括线性核、多项式核、高斯径向基核与 S 形核,核函数必须是满足对称、半正定条件的有效核,选择哪种核及其参数通常要靠交叉验证确定[8][9]。
原始问题求解计算量随样本量迅速增长,1998 年约翰·普莱特提出序列最小最优化算法(SMO),每次只选出一对拉格朗日乘子做解析求解,其余变量视为常数,从而绕开昂贵的通用二次规划工具[10]。该算法后来成为 LIBSVM 等常用支持向量机工具库的核心训练组件。
发展历程
支持向量方法的雏形可追溯到 20 世纪 60 年代 Vapnik 等人在模式识别中提出的做法:从训练集中选出一组特征子集,使对该子集的划分等价于对整个数据集的划分,这组子集即支持向量[6]。其理论基础是 VC 维与结构风险最小化原则[11]。
20 世纪 90 年代初,Boser、Guyon 与 Vapnik 引入核技巧,把线性方法扩展为非线性支持向量机,使模型能处理在原空间线性不可分的数据[2]。1993 年前后,Cortes 与 Vapnik 提出软间隔思想,允许少量样本被错分,以换取更好的泛化能力[2]。
1995 年,Cortes 与 Vapnik 在《Machine Learning》上发表《Support-vector networks》一文,给出软间隔支持向量机的标准形式,该文成为这一方法被广泛引用的标志性文献[2]。由于在文本分类等任务中表现突出,支持向量机随后成为机器学习的主流方法之一,并推动统计学习研究形成热潮[1]。
此后,围绕训练效率与模型扩展出现了一系列改进。1998 年的 SMO 算法降低了训练对通用优化工具的依赖[10];2002 年有研究把模糊隶属度引入分类,提出模糊支持向量机,以降低噪声点和异常点的影响[11]。李航的《统计学习方法》按线性可分、线性与非线性三类模型组织内容,并介绍核函数与 SMO,成为中文教材中的常见体系[5]。
应用
支持向量机被用于手写数字识别、人脸识别、文本分类、回归预测与时间序列分析等任务[12]。在特征维数远高于样本数的场合,例如基因表达数据或文本词向量,它仍能给出较稳定的分类结果[13]。
气象领域是较早的实用方向之一。研究者将支持向量机用于降水预报,中国气象局培训中心自 2000 年起跟踪该技术,开发了中文建模预报软件,2003 年起在培训班推广,并用于单站降水、面雨量、温度、冰雹、台风路径等预报试验[3]。
在遥感与地学中,支持向量机常与径向基核一起用于地物分类,需要先设置代价参数与核宽度参数,并用交叉验证调参[14]。生物信息学中,它被用于蛋白质功能与可成药性预测等分类问题,核函数与参数的选择会明显影响预测表现[15]。
支持向量机最初用于二分类,多分类问题通常借助一对一或一对多策略,把多类任务拆成若干个二分类子问题再加权投票,类别数增大时需训练的子模型数量也随之增加[8]。引入 ε 不敏感损失函数后,同一框架可用于回归,称为支持向量回归[16]。
局限
参数与核函数的选择缺少通用准则。核函数不合适会直接拉低模型表现,而径向基核还要同时调节惩罚参数与核宽度,实践中多依赖交叉验证逐一尝试,代价较高[13][9]。
训练时间与内存开销随样本量增长明显,在大规模数据集上效率不高,这也被认为是支持向量机的主要短板之一[17]。在动态数据流一类需要频繁更新的场景中,直接使用也会受到限制[17]。
它输出的是决策值而非后验概率,若需要概率估计,往往要额外拟合校准模型[18]。同时,“稀疏性”也有限:支持向量的数目可能随训练样本数线性增长[18]。
结果的可解释性较弱,模型不像线性回归那样给出各特征的系数表,常被视为“黑箱”,尤其是使用径向基核时对高维映射的解释力有限[13]。类别分布严重不平衡时,其分类表现也会下降,需要额外的加权或采样处理[17]。
参见
参考资料
- 支持向量机 [引用日期2026-10-29]
- Schedule (subject to change) [引用日期2026-10-29]
- 一种新的统计预报与识别技术:支持向量机 [引用日期2026-10-29]
- SVM Bibliography [引用日期2026-10-29]
- 02. 统计学习方法(李航)_text(PDF) [引用日期2026-10-29]
- 经典机器学习系列(八)【支持向量机】(一) [引用日期2026-10-29]
- 11311-1024748_Di Gialleonardo(PDF) [引用日期2026-10-29]
- 76281_BRIGOT_2017_diffusion(PDF) [引用日期2026-10-29]
- InfocomJournal_2025_1_8_(PDF) [引用日期2026-10-29]
- [科普中国]-序列最小优化算法 [引用日期2026-10-29]
- 加權支持向量回歸算法研究 [引用日期2026-10-29]
- 支持向量機中若干優化算法研究 [引用日期2026-10-29]
- surveypractice.org 上的 PDF 文件 [引用日期2026-10-29]
- core.ac.uk 上的 PDF 文件 [引用日期2026-10-29]
- nih.gov 上的网页 [引用日期2026-10-29]
- 支撐向量回歸算法及其應用研究 [引用日期2026-10-29]
- S0925231220307153 [引用日期2026-10-29]
- Sci- kit learn offers a strong module for SVM [引用日期2026-10-29]