一、SVR与一般线性回归的区别
SVR | 一般线性回归 |
1.数据在间隔带内则不计算损失,当且仅当f(x)与y之间的差距的绝对值大于ϵ 才计算损失 | 1.只要f(x)与y不相等时,就计算损失 |
2.通过最大化间隔带的宽度与最小化总损失来优化模型 | 2.通过梯度下降之后求均值来优化模型 |
原理:SVR在线性函数两侧制造了一个“间隔带”,间距为ϵ (也叫容忍偏差,是一个由人工设定的经验值),对所有落入到间隔带内的样本不计算损失,也就是只有支持向量才会对其函数模型产生影响,最后通过最小化总损失和最大化间隔来得出优化后的模型。
二、支持向量
支持向量就是对最终w,b的计算起到作用的样本(a>0)
"管道"内样本对应a=0,为非支持向量;
位于“管壁”上的为边界支持向量,0<a<ϵ
位于"管道"之外的为非边界支持向量,a>ϵ (异常检测时,常从非边界支持向量中挑选异常点)
三、SVM中一些推导
四、线性硬间隔SVR
yi-(wxi+b)就是真实值-预测值,这里w系数矩阵,xi是样本xi的坐标
z<=ϵ,不计算损失。所以,后面的|z|应该是 离wx+b的纵坐标轴方向距离-ϵ,就是超出管道的距离
C为正则化常数,lϵ是图中所示的ϵ -不敏感损失(ϵ -insensitive loss)函数,求两个式子总的最小值
五、线性软间隔SVR
公式表述:
六、软间隔SVR主问题的数学描述
七、软间隔SVR对偶问题
针对上述主问题引入拉格朗日乘子:
构建拉格朗日函数:
(SVM中的情况:
)
它对应的对偶问题是:
(SVM中的转换:
)
八、求解软间隔SVR对偶问题
首先要求最小化部分:
(SVM中对应求最小化部分:
)
九、用SMO算法求解SVR
(SVM中的SMO算法:
)
过程采用拉格朗日对偶法,对偶问题有解的充要条件是满足KKT条件,对于SVR的对偶问题,其KKT条件如下:
(KKT条件有三部分:可行条件、互补松弛条件以及偏导为0条件)
如此一来,即可以用SMO求解了(这个推导过程仅仅用于说明SMO也可以应用于SVR,具体的求解过程和SVM的SMO算法还是有所差异的)
十、支持向量与求解线性模型参数
换言之,这个样本要么在隔离带上边缘以上,要么在隔离带下边缘以下(含两个边缘本身),也就是说,落在ϵ隔离带之外的样本,才是SVR的支持向量。
可见,无论是SVM还是SVR,它们的解都仅限于支持向量,即只是全部训练样本的一部分,因此SVM和SVR的解都具有稀疏性。
通过最优化方法求解出了w之后,我们还需要求b。
其中Su是位于隔离带上边缘的支持向量集合,而Sd则是位于隔离带下边缘的支持向量集合。
十一、SVR的核技巧
前面讲过的适用于SVM的核技巧也同样适用于SVR。SVR 核技巧的实施办法和 SVM 一样,也是将输入空间的x通过映射函数ϕ(x)映射到更高维度的特征空间,然后再在特征空间内做本文前述的一系列操作。
其中:
对照SVM核函数的做法,我们也令:
具体核技巧的实施过程,对照SVM即可。