支持向量机(Support Vector Machine,SVM)是经典的二分类算法,很多初学者常常被复杂的公式推导劝退。本节课我们先从简单的核心公式入手,弄懂样本如何完成分类预测,建立算法基础认知,为后续课程做好铺垫。
1. 核心公式
支持向量机的核心是决策函数,也是模型完成分类预测的核心依据。公式如下:


初步理解一:有些二分类算法使用 0 和 1 表示两个类别,支持向量机使用 +1 和 -1 表示两个类别。支持向量根据 \(f(x)\) 的符号来确定预测类别,\(f(x) > 0\) 归类为 \(+1\) 类别,\(f(x) < 0\) 归类为 \(-1 \) 类别,\(f(x) = 0\) ,通常人为规定将其划分到某一类别。
- \(x_{i}\):训练过程中最终确定的,对分类结果起决定作用的关键样本。
- \(y_{i}\):训练过程确定的关键样本的标签
- \(\alpha_{i}\) 训练过程确定的关键样本对分类结果的影响程度
初步理解二:支持向量机训练过程就是在寻找少量的关键样本,预测结果由这些关键样本决定,注意:绝大多数普通样本虽然参与训练,但不参与最终模型决策。这些关键样本也叫做支持向量,这也是算法名字的由来。
假设,经过训练我们得到 b = -1,关键样本如下:
| 支持向量 | 特征 | 标签 y | α值 |
|---|---|---|---|
| SV1 | (2,3) | +1 | 0.5 |
| SV2 | (1,1) | -1 | 0.3 |
| SV3 | (3,1) | +1 | 0.8 |
现在来了一个新样本 (2, 2),我们进行预测:
- 第一个支持向量:\(0.5 · 1 · (2,3) · (2,2) = 5\)
- 第二个支持向量:\(0.3 · -1 · (1,1) · (2,2) = -1.2\)
- 第三个支持向量:\(0.8 · 1 · (3,1) · (2,2) = 6.4\)

由于 9.2 大于 0,新样本归类为 +1 类别。
2. 抛出问题
我们前面已经知道,支持向量机最终得到的决策函数,只与支持向量有关。接下来,我们将支持向量对模型的影响合并到权重向量中,定义:

将上面的权重向量 \(w\) 代入决策函数,可以将原来的决策函数统一写成:

这个函数是一个线性分类函数。我们通过它的取值来判断样本属于哪个类别:当 \(f(x)>0\) 时,将样本判为正类,当 \(f(x)<0\) 时,将样本判为负类。
而 \(f(x)=0\) 是正类和负类的分界位置,我们称为分类超平面。在二维空间中,它是一条直线。在三维空间中,它是一个平面。在更高维空间中,则称为超平面。

初步理解三:支持向量机是一个线性分类模型,它通过寻找一个分类超平面,将两个类别的样本分开。\(f(x)\) 是分类函数,\(f(x)=0\) 是分类超平面。
思考:到这里我们会发现一个问题:能够将两个类别样本分开的超平面通常不止一个。那么,支持向量机为什么选择这个超平面,而不是另外一个?它选择超平面的依据是什么?



冀公网安备13050302001966号