支持向量机回归(SVR)是支持向量机在回归问题上的应用模型。支持向量机回归模型基于不同的损失函数产生了很多变种。本文仅介绍基于 ϵ \epsilon ϵ不敏感损失函数的SVR模型。
核心思想
找到一个分离超平面(超曲面),使得期望风险最小。
ϵ \epsilon ϵ-SVR
ϵ \epsilon ϵ-损失函数
ϵ
\epsilon
ϵ-损失函数,就是当误差小于
ϵ
\epsilon
ϵ时,该误差可忽略。反之,误差为
ξ
−
∣
ϵ
∣
\xi-|\epsilon|
ξ−∣ϵ∣。如图所示:
基于
ϵ
\epsilon
ϵ-损失函数的SVR称为
ϵ
\epsilon
ϵ-SVR。
优化问题如下:
回顾最小二乘法线性回归,目标是函数是样本点到直线的距离平方和加上正则化项。支持向量机本质与此相同,目标函数可表示为
o
b
j
=
C
(
∑
i
=
1
l
(
ξ
+
ξ
∗
)
+
1
2
C
ω
T
ω
)
obj = C(\sum_{i=1}^l(\xi+\xi^*) + \frac{1}{2C}\omega^T\omega)
obj=C(i=1∑l(ξ+ξ∗)+2C1ωTω)即样本点到超曲面的距离(
ϵ
\epsilon
ϵ是常数项,无需考虑)加上L2正则化项。
ν \nu ν-SVR
同
ν
\nu
ν-支持向量机分类,另设一个参数
ν
\nu
ν来调节支持向量的个数。
优化问题如下:
C
,
ν
C,\nu
C,ν是用户自由设置的,故直接将
C
/
l
C/l
C/l称为
C
C
C,
C
ν
C\nu
Cν称为
ν
\nu
ν,则最优化函数等同于:
min
w
,
b
,
ξ
∗
,
ξ
,
ϵ
1
2
w
T
w
+
ν
ϵ
+
C
∑
i
=
1
l
(
ξ
i
+
ξ
i
∗
)
\min_{w, b, \xi^*,\xi, \epsilon}\qquad \frac{1}{2}w^Tw+\nu\epsilon+C\sum_{i=1}^{l}(\xi_i+\xi_i^*)
w,b,ξ∗,ξ,ϵmin21wTw+νϵ+Ci=1∑l(ξi+ξi∗)
支持向量
直观地理解,支持向量就是对最终的w,b的计算起到作用的样本( α > 0 \alpha\gt0 α>0)。那么根据 ϵ \epsilon ϵ不敏感函数图像,不敏感区域形同一个“管道"。管道之内的样本对应 α = 0 \alpha=0 α=0,为非支持向量;位于“管壁”上的为边界支持向量, 0 < α < C 0<\alpha<C 0<α<C,为边界支持向量;位于“管道”之外的为非边界支持向量, α ⩾ C \alpha\geqslant C α⩾C,为非边界支持向量(异常点检测时,常从非边界支持向量中挑选异常点);
参考资料
LIBSVM指导文档(图片来源)
我的GitHub
注:如有不当之处,请指正。