支持向量机简介
了解支持向量机。
在基于回归的算法(如线性回归)中,我们使用一条最佳拟合线来预测连续目标。
如果我们尝试使用线性回归算法来预测某些类别(例如 0/1)呢?这并不是一个好主意(我们通常会将分类目标或标签转换为整数类别 0/1)。
为了完成分类任务,我们不再将这条线视为拟合数据点,而是将其视为分割空间的边界。
如果我们考虑根据误分类的程度来处理误分类情况呢?例如,我们可以对那些深入到另一类别区域的观测施加更强的惩罚。
此外,如果误分类来自决策边界,那么越错误的分类,惩罚越高。我们并不介意一定的误差范围,甚至那些靠近边界(几乎被误分类)但正确分类的观测也可能带来惩罚。
让我们从线性可分的例子开始,看看 SVM 算法如何应用于此类分类问题。该算法通过最大化每类最近点之间的间隔来拟合一个决策边界。这通常被称为 最大间隔超平面 (MMH)。寻找决策边界的直觉非常简单,算法会寻找与两类之间任何数据点距离最远的表面。
SVM 用来拟合该边界的点称为支持向量。
下图显示了两条决策边界(红色和绿色)及其以虚线表示的间隔。绿色的间隔比红色的更宽。
带箭头的线段是支持向量与决策边界之间的相应距离。绿色的是最大间隔超平面。
\small \begin{align*}w^T\cdot x_{+} + b &= 1\ w^T\cdot x_{-} + b &= -1 \end{align*}
\small f(X) = \begin{cases}1 & \text{if }w \cdot x + b > 0\0 & \text{otherwise}\end{cases}
\small \underset{w}{\text{max}} \frac{2}{||w||} \quad \text{subject to} \begin{cases}\text{if } y_i = 1 & w^T \cdot x_i + b \ge 1 \ \text{if } y_i = -1 & w^T \cdot x_i + b \le -1 \end{cases} \text{for } i \text{ in } N
\small \underset{w}{\text{min }} \text{||}w\text{||}^2 \quad \text{subject to} \quad y \cdot (w^T\cdot x_i + b) \ge 1
\small \begin{align*}\text{hinge loss} &= \sum_{i=1}^n \max\left(0, 1 - y_i\cdot(w^T \cdot x_i + b)\right) \tag{}\ \because f(x_i) &= (w^T\cdot x_i + b) \ \implies \text{hinge loss} &= \sum_{i=1}^n max\left(0, 1 - y_i \cdot f(x_i)\right)\end{align*}
\small \min \text{||}w\text{||}^2 + C\sum_{i=1}^N \epsilon_i \quad \text{subject to} \quad y_i(w^T x_i + b) \ge 1 - \epsilon_i
\small \underset{w}{\text{min }} \text{||}w\text{||}^2 + C\sum_{i=1}^N max\left(0, 1 - y_i(w^T x_i + b)\right)