作者:張張張張
github地址:https://github.com/zhanghekai
【转载请注明出处,谢谢!】
【机器学习系列】之SVM硬间隔和软间隔
【机器学习系列】之SVM核函数和SMO算法
【机器学习系列】之支持向量回归SVR
【机器学习系列】之sklearn实现SVM代码
一、SVM回归模型概述
对于SVM回归模型:给定样本 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) } , y ∈ R D=\{(x_1,y_1),(x_2,y_2),\cdots ,(x_m,y_m)\}, y\in R D={ (x1,y1),(x2,y2),⋯,(xm,ym)},y∈R(由于是回归模型, y y y没有类别),我们的目标是让训练集中的每个点 ( x i , y i ) (x_i,y_i) (xi,yi)尽量拟合到一个线性模型 y i = w ⋅ ϕ ( x i ) + b y_i=w\cdot\phi(x_i)+b yi=w⋅ϕ(xi)+b。
对于一般的回归模型: 通常采用均方差作为损失函数。传统回归模型通常直接基于“模型输出”与“真实输出”之间的差别来计算损失,当切仅当二者完全相同时,损失才为 0 0 0。
对于SVM回归模型: “支持向量回归(Support Vector Regression)”需要定义一个常量 ϵ > 0 \epsilon>0 ϵ>0, ϵ \epsilon ϵ为能容忍“模型输出”与“真实输出”之间最多有 ϵ \epsilon ϵ的偏差。
- 如果 ∣ y i − w ⋅ ϕ ( x i ) − b ∣ ≤ ϵ |y_i-w\cdot\phi(x_i)-b|\leq\epsilon ∣yi−w⋅ϕ(xi)−b∣≤ϵ,则完全没有损失;
- 如果 ∣ y i − w ⋅ ϕ ( x i ) − b ∣ ≥ ϵ |y_i-w\cdot\phi(x_i)-b|\geq\epsilon ∣yi−w⋅ϕ(xi)−b∣≥ϵ,则对应的损失为 ∣ y i − w ⋅ ϕ ( x i ) − b ∣ − ϵ |y_i-w\cdot\phi(x_i)-b|-\epsilon ∣yi−w⋅ϕ(xi)−b∣−ϵ
即: 仅当 f ( x ) = w ⋅ ϕ ( x i ) − b f(x)=w\cdot\phi(x_i)-b f(x)=w⋅ϕ(xi)−b与 y y y之间的差别绝对值大于 ϵ \epsilon ϵ时才计算损失。
如下图所示,这相当于以 f ( x ) f(x) f(x)为中心,构建了一个宽度为 2 ϵ 2\epsilon 2ϵ的间隔带,若训练样本落入此间隔带,则认为是被预测正确的。
综上所述,SVM回归模型的损失函数度量为:
e r r ( x i , y i ) = { 0 , ∣ y i − w ⋅ ϕ ( x i ) − b ∣ ≤ ϵ ∣ y i − w ⋅ ϕ ( x i ) − b ∣ − ϵ , ∣ y i − w ⋅ ϕ ( x i ) − b ∣ > ϵ err(x_i,y_i)=\begin{cases}0,\qquad\qquad\qquad\qquad\qquad\qquad |y_i-w\cdot\phi(x_i)-b|\leq\epsilon\\ |y_i-w\cdot\phi(x_i)-b|-\epsilon,\qquad\quad|y_i-w\cdot\phi(x_i)-b|>\epsilon \end{cases} err(xi,yi)={
0,∣yi−w⋅ϕ(xi)−b∣≤ϵ∣yi−w⋅ϕ(xi)−b∣−ϵ,∣yi−w⋅ϕ(xi)−b∣>ϵ
二、SVM回归模型目标函数
定义SVM回归模型目标函数为:
m i n ⎵ w , b    1 2 ∣ ∣ w ∣ ∣ 2 s . t . ∣ y i − w ⋅ ϕ ( x i ) − b ∣ ≤ ϵ    ( i = 1 , 2 , ⋯   , m ) \underbrace{min}_{w,b}\;\frac{1}{2}||w||^2\\ s.t. \quad|y_i-w\cdot\phi(x_i)-b|\leq\epsilon\;(i = 1,2,\cdots,m) w,b
min21∣∣w∣∣2s.t.∣yi−w⋅ϕ(xi)−b∣≤ϵ(i=1,2,⋯,m)
回归模型也可以对每个样本加入松弛变量,但由于这里 s . t . s.t. s.t.处用的是绝对值,实际上是两个不等式,即两边都需要松弛变量,定义松弛变量为 ξ ˇ 、 ξ ^ \check{\xi}、\hat{\xi} ξˇ、ξ^,加入松弛变量后的SVM回归模型的损失函数为:
m i n ⎵ w , b , ξ ˇ i , ξ ^ i    1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ( ξ ˇ i + ξ ^ i ) s . t . − ϵ − ξ ˇ i ≤ y i − w ⋅ ϕ ( x i ) − b ≤ ϵ + ξ ^ i ξ ˇ i ≥ 0 , ξ ^ i ≥ 0 ( i = 1 , 2 , ⋯   , m ) \underbrace{min}_{w,b,\check{\xi}_i,\hat{\xi}_i}\;\frac{1}{2}||w||^2+C\sum_{i=1}^{m}(\check{\xi}_i+\hat{\xi}_i)\\ s.t.\quad -\epsilon-\check{\xi}_i\leq y_i-w\cdot \phi(x_i)-b\leq\epsilon+\hat{\xi}_i\\ \check{\xi}_i\geq 0,\hat{\xi}_i\geq0\quad(i=1,2,\cdots,m) w,b,ξˇi,ξ^i
min21∣∣w∣∣2+Ci=1∑m(ξˇi+ξ^i)s.t.−ϵ−ξˇi≤yi−w⋅ϕ(xi)−b≤ϵ+ξ^iξˇi≥0,ξ^i≥0(i=1,2,⋯,m)
间隔带两侧的松弛程度可有所不同。
同SVM分类模型相似,可以用拉格朗日函数将目标优化哈数变成无约束的形式:
- 带求目标 f ( x ) = m i n ⎵ w , b , ξ ˇ i , ξ ^ i    1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ( ξ ˇ i + ξ ^ i ) f(x)=\underbrace{min}_{w,b,\check{\xi}_i,\hat{\xi}_i}\;\frac{1}{2}||w||^2+C\sum_{i=1}^{m}(\check{\xi}_i+\hat{\xi}_i) f(x)=w,b,ξˇi,ξ^i min21∣∣w∣∣2+C∑i=1m(ξˇi+ξ^i)
- 不等式约束:
- h 1 ( x ) = y i − w ⋅ ϕ ( x i ) − b − ϵ − ξ ^ i ≤ 0 h_1(x)=y_i-w\cdot\phi(x_i)-b- \epsilon-\hat{\xi}_i\leq0 h