来源:原始 Jupyter Notebook。内容已转换为网页阅读格式;下载原文件。
支持向量机模型也可以处理回归问题,假设我们能容忍 f(x) 和 y 之间最多有 ϵ 的偏差,只有当 f(x) 和 y 之间的偏差大于 ϵ 时才计算损失,如下图所示:

这被称为 支持向量回归(Support Vector Regression,简称 SVR),它的基本形式为:
\mathop \min_{w,b} \frac{1}{2} \|w\|^2 + C \sum_{i=1}^m \ell_{\epsilon} (f(x_i)-y_i)其中 ℓϵ 表示 ϵ−不敏感损失(ϵ− insensitive loss)函数:
ℓϵ(z)={0,∣z∣−ϵ,∣z∣≤ϵ∣z∣>ϵ由于回归线两侧的松弛程度可以不同,可以引入两个松弛变量,将 SVR 的基本形式改写为:
\mathop \min_{w,b,\xi,\hat{\xi}} \frac{1}{2} \|w\|^2 + C \sum_{i=1}^m (\xi_i + \hat{\xi_i})约束条件为:
s.t.f(xi)−yi≤ϵ+ξiyi−f(xi)≤ϵ+ξi^ξi≥0,ξi^≥0,i=1,2,…,m引入拉格朗日乘子得到拉格朗日函数:
L(w,b,ξ,ξ^,α,α^,μ,μ^)=21∥w∥2+Ci=1∑m(ξi+ξi^)−i=1∑mμiξi−i=1∑mμi^ξi^+i=1∑mαi(f(xi)−yi−ϵ−ξi)+i=1∑mαi^(yi−f(xi)−ϵ−ξi^)对 w,b,ξi,ξi^ 求偏导并令其为 0 得到:
⎩⎨⎧w0CC=i=1∑m(αi^−αi)xi=i=1∑m(αi^−αi)=(αi+μi)=(αi^+μi^)将其带入拉格朗日函数,得到 SVR 的对偶形式:
\begin{align}
\mathop \min_{\alpha,\hat{\alpha}} &\frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m (\hat{\alpha_i} - \alpha_i)(\hat{\alpha_j} - \alpha_j) x_i x_j - \sum_{i=1}^m y_i(\hat{\alpha_i} - \alpha_i) + \epsilon(\hat{\alpha_i} - \alpha_i) \\
s.t. &\sum_{i=1}^m (\hat{\alpha_i} - \alpha_i) = 0 \\
& 0 \leq \alpha_i, \hat{\alpha_i} \leq C
\end{align}