首页 > 技术文章 > 02-36 支持向量回归

abdm-989 2020-01-01 20:44 原文

 


更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html

 

支持向量回归

传统回归模型如线性回归,对于样本(x,y)(x,y) 是直接基于模型,通过预测值f(xi)yf(xi)y 和真实值yy 之间的差别计算损失,并且当f(xi)y=yf(xi)y=y 时损失才为零。

支持向量回归(support vector regression, SVR)则可以容忍f(xi)yf(xi)y yy 之间有最多ϵϵ 的偏差,即当|f(xi)yy|>ϵ|f(xi)y−y|>ϵ 的时候才计算损失,这相当于以f(xi)yf(xi)y 为中心,构建了一个宽度为2ϵ 的间隔带,如果样本落入间隔带,则他的分类就是正确的。

一、支持向量回归学习目标

  1. 支持向量机和支持向量回归的优化问题
  2. 支持向量回归目标函数的对偶形式
  3. 支持向量回归模型系数的稀疏性
  4. 核支持向量回归
  5. 支持向量机的优缺点

二、支持向量回归详解

2.1 支持向量机目标函数优化问题回顾

线性可分SVM目标函数优化问题为

 

minω,b12||ω||2s.t.yi(ωxi+b)1,i=1,2,,m(1)(2)(1)min⏟ω,b12||ω||2(2)s.t.yi(ωxi+b)≥1,i=1,2,…,m

 

线性SVM由于在目标函数中加入了松弛因子ξi>0ξi>0 ,目标函数优化问题为

 

minω,b,ξ12||ω||2+Ci=1mξis.t.yi(ωxi+b)1ξi,i=1,2,,mξi0,i=1,2,,m(3)(4)(5)(3)min⏟ω,b,ξ12||ω||2+C∑i=1mξi(4)s.t.yi(ωxi+b)≥1−ξi,i=1,2,…,m(5)ξi≥0,i=1,2,…,m

 

2.2 支持向量回归损失度量函数

支持向量回归由于有一个间隔带,因此它的损失度量函数为

 

l(f(xi),yi)={0,|f(xi)yi|ϵ,if|f(xi)yi|ϵif|f(xi)yi|>ϵl(f(xi),yi)={0,if|f(xi)−yi|≤ϵ|f(xi)−yi|−ϵ,if|f(xi)−yi|>ϵ

 

2.3 支持向量回归目标函数优化问题

由于SVR的间隔带是自己引入的,所以SVR的目标函数变为

 

minω,b12||ω||2+Ci=1ml(f(xi)yi)min⏟ω,b12||ω||2+C∑i=1ml(f(xi)−yi)

 

如果和线性SVM一样引入松弛因子,但是由于我们的误差度量中的|f(xi)yi|ϵ|f(xi)−yi|≤ϵ 是绝对值小于,因此这个不等式其实是两个不等式,则SVR需要引入两个松弛因子ξiξi ξi^ξi^ ,则SVR的优化问题将变成

 

minω,b,ξi,ξi^12||w||2+Ci=1m(ξi+ξi^)min⏟ω,b,ξi,ξi^12||w||2+C∑i=1m(ξi+ξi^)

 

 

s.t.f(xi)yiϵ+ξi,yif(xi)ϵ+ξi^,ξi0,ξi^0,i=1,2,,m(6)(7)(8)(6)s.t.f(xi)−yi≤ϵ+ξi,(7)yi−f(xi)≤ϵ+ξi^,(8)ξi≥0,ξi^≥0,i=1,2,⋯,m

 

对SVR的优化问题引入拉格朗日乘子μi0,μi^0,αi0,αi^0μi≥0,μi^≥0,αi≥0,αi^≥0 ,通过拉格朗日乘子法即可得到拉格朗日函数

 

L(w,b,α,α^,ξ,ξ^,μ,μ^)=12||w||2+Ci=1m(ξi+ξi^)i=1mμiξii=1mμi^ξi^+i=1mαi(f(xi)yiϵξ)+i=1mαi^(yif(xi)ϵξi^)(9)(10)(11)(9)L(w,b,α,α^,ξ,ξ^,μ,μ^)(10)=12||w||2+C∑i=1m(ξi+ξi^)−∑i=1mμiξi−∑i=1mμi^ξi^(11)+∑i=1mαi(f(xi)−yi−ϵ−ξ)+∑i=1mαi^(yi−f(xi)−ϵ−ξi^)

 

2.4 支持向量回归目标函数对偶形式

通过拉格朗日即可得到支持向量回归目标函数的原始形式

 

minw,b,ξi,ξi^maxμi0,μi^0,αi0,αi^0L(w,b,α,α^,ξ,ξ^,μ,μ^)min⏟w,b,ξi,ξi^max⏟μi≥0,μi^≥0,αi≥0,αi^≥0L(w,b,α,α^,ξ,ξ^,μ,μ^)

 

可以发现支持向量回归的目标函数的原始形式也满足KTT条件,即可以通过拉格朗日对偶将我们的问题转化为等价的对偶问题,即

 

maxμi0,μi^0,αi0,αi^0minw,b,ξi,ξi^L(w,b,α,α^,ξ,ξ^,μ,μ^)max⏟μi≥0,μi^≥0,αi≥0,αi^≥0min⏟w,b,ξi,ξi^L(w,b,α,α^,ξ,ξ^,μ,μ^)

 

首先求优化函数对让w,b,ξi,ξi^w,b,ξi,ξi^ 的极小值,再求拉格朗日乘子μi,μi^,αi,αi^μi,μi^,αi,αi^ 的极大值,即先得到拉格朗日函数L(w,b,α,α^,ξ,ξ^,μ,μ^)L(w,b,α,α^,ξ,ξ^,μ,μ^) 分别对w,b,ξi,ξi^w,b,ξi,ξi^ 求偏导为0可得

 

w=i=1m(αi^αi)xi,0=i=1m(αi^αi),C=αi+μ,C=αi^+μi^,(12)(13)(14)(15)(12)w=∑i=1m(αi^−αi)xi,(13)0=∑i=1m(αi^−αi),(14)C=αi+μ,(15)C=αi^+μi^,

 

将拉格朗日函数对w,b,ξi,ξi^w,b,ξi,ξi^ 的偏导代入拉格朗日函数,即可得SVR的对偶问题

 

maxα,α^i=1myi(αi^αi)ϵ(αi^+αi)12i=1mj=1m(αi^αi)(αi^αj)xTixjmax⏟α,α^∑i=1myi(αi^−αi)−ϵ(αi^+αi)−12∑i=1m∑j=1m(αi^−αi)(αi^−αj)xiTxj

 

 

s.t.i=1m(αi^αi)=00αi,αi^C(16)(17)(16)s.t.∑i=1m(αi^−αi)=0(17)0≤αi,αi^≤C

 

对于上述SVR的目标函数的对偶形式取对数,即可变成最小化目标函数的优化问题,即

 

minα,α^i=1myi(αi^αi)+ϵ(αi^+αi)+12i=1mj=1m(αi^αi)(αi^αj)xTixjmin⏟α,α^−∑i=1myi(αi^−αi)+ϵ(αi^+αi)+12∑i=1m∑j=1m(αi^−αi)(αi^−αj)xiTxj

 

 

s.t.i=1m(αi^αi)=00αi,αi^C(18)(19)(18)s.t.∑i=1m(αi^−αi)=0(19)0≤αi,αi^≤C

 

对于这个目标函数,依然可以使用SMO算法求出对应的αi,αi^αi,αi^ ,进而求出回归模型的w,bw,b

2.5 支持向量回归模型系数的稀疏性

在对支持向量回归的目标函数优化的时候,我们假设该目标函数满足KKT条件,该KKT条件为

 

αi(f(xi)yiϵξi)=0,αi^(yif(xi)ϵξi^)=0,αiαi^=0,ξiξi^=0,(Cαi)ξi=0,(Cαi^ξi^=0{αi(f(xi)−yi−ϵ−ξi)=0,αi^(yi−f(xi)−ϵ−ξi^)=0,αiαi^=0,ξiξi^=0,(C−αi)ξi=0,(C−αi^ξi^=0

 

从上式可以看出,只有当f(xi)yiϵξi=0f(xi)−yi−ϵ−ξi=0 的时候αiαi 才可以为非0解,并且只有当yif(xi)ϵξi^=0yi−f(xi)−ϵ−ξi^=0 的时候αi^αi^ 才可以为非0解。

首先根据松弛变量的定义,如果|f(xi)yiϵξi|<ϵ|f(xi)−yi−ϵ−ξi|<ϵ ,则样本点落在间隔带中,则ξi=0,ξi^=0ξi=0,ξi^=0 ,既可以得到f(xi)yiϵξi0,yif(xi)ϵξi^0f(xi)−yi−ϵ−ξi≠0,yi−f(xi)−ϵ−ξi^≠0 ,则可以得到αi=0,αi^=0αi=0,αi^=0 ,则αi^αi=0αi^−αi=0

即只有样本点(xi,yi)(xi,yi) 不落入间隔带中才能使得相应的αiαi αi^αi^ 为非0解,并且由于样本点既不能同时在分隔超平面的两边,即f(xi)yiϵξi=0f(xi)−yi−ϵ−ξi=0 yif(xi)ϵξi^=0yi−f(xi)−ϵ−ξi^=0 不能同时存在,即αiαi αi^αi^ 至少有一个为0并且不能同时为0,则αi^αi0αi^−αi≠0

假设αiαi 已经通过SMO算法得到,则可以得到w=mi=1(αi^αi)xiw=∑i=1m(αi^−αi)xi ,即可得SVR的分离超平面为

 

f(x)=i=1m(αi^αi)xTix+bf(x)=∑i=1m(αi^−αi)xiTx+b

 

从上式可以看出当样本点落在间隔带,由于αi^αi=0αi^−αi=0 ,即w=0w=0 ,则ww 不受这些间隔带内点的影响,对于间隔带外的样本点,则会对ww 造成影响,即这些点为SVR的支持向量。并且由于SVR的支持向量仅仅是训练样本的一部分,所以SVR的解ww 具有稀疏性。

SVR对于bb 的求解类似于SVM,由于能得到多个bb 值,所以最后对bb 取平均值。

2.6 核支持向量回归

上一节得到了SVR的分离超平面为

 

f(x)=i=1m(αi^αi)xTix+bf(x)=∑i=1m(αi^−αi)xiTx+b

 

如果我们使用和SVM一样的核技巧,即对SVR训练数据做一个样本映射,即另ϕ(x)ϕ(x) 表示xx 映射后的特征向量。则分离超平面可以变为

 

f(x)=i=1m(αi^αi)ϕ(xi)Tϕ(x)+b=i=1m(αi^αi)k(x,xi)+b(20)(21)(20)f(x)=∑i=1m(αi^−αi)ϕ(xi)Tϕ(x)+b(21)=∑i=1m(αi^−αi)k(x,xi)+b

 

其中k(x,xi)k(x,xi) 为核函数。

三、小结

SVR除了可以支持回归问题外,其他方面和SVM差不多,由于SVR也算作是SVM的一个分支,此处不多说什么,参考SVM即可。

推荐阅读