我是靠谱客的博主 优雅丝袜,最近开发中收集的这篇文章主要介绍小白学机器学习西瓜书-第六章支持向量机(4)6.7 支持向量回归,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

小白学机器学习西瓜书-第六章支持向量机4

  • 6.7 支持向量回归

6.7 支持向量回归

对于样本 ( x , y ) (x,y) (x,y)而言,传统的回归模型是基于模型输入 f ( x ) f(x) f(x)与真实 y y y之间的差别来计算损失,当且仅当 f ( x ) f(x) f(x) y y y完全相同时,损失才为0。

而支持向量机是不同的,仅当 f ( x ) f(x) f(x) y y y之间有大于 ϵ epsilon ϵ的偏差时,我们才计算损失,这相当于 f ( x ) f(x) f(x)为中心构建了一个宽度为 ϵ epsilon ϵ的间隔带,如果训练样本落入该间隔带,都被认为预测是正确的。

用公式来表示即为
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m l ϵ ( f ( x i ) − y i ) (30) min_{w,b}frac{1}{2}mid mid wmidmid^2+Csum^m_{i=1}l_{epsilon}(f(x_i)-y_i)tag{30} w,bmin21∣∣w2+Ci=1mlϵ(f(xi)yi)(30)

其中C为正则化常数, l ϵ l_{epsilon} lϵ是不敏感损失
l ϵ ( z ) = { 0 i f ∣ z ∣ ≤ ϵ ∣ z ∣ − ϵ o t h e r w i s e (31) l_{epsilon}(z)=begin{cases} 0&if mid zmidleq epsilon\ mid zmid- epsilon &otherwise tag{31} end{cases} lϵ(z)={0zϵifz∣≤ϵotherwise(31)

引入松弛变量 ξ i xi_i ξi ξ i ^ hat{xi_i} ξi^
值得注意的是,之所以引入两个松弛变量是因为间隔带两侧的松弛程度是不一样的。
ξ i = l ϵ ( z ) xi_i=l_{epsilon}(z) ξi=lϵ(z),显然 ξ i ≥ 0 xi_igeq0 ξi0
∣ z ∣ ≤ ϵ mid zmidleq epsilon z∣≤ϵ时, ξ i = 0 xi_i=0 ξi=0
∣ z ∣ > ϵ mid zmid> epsilon z∣>ϵ时, ξ i = ∣ z ∣ − ϵ > 0 xi_i= mid zmid- epsilon>0 ξi=∣zϵ>0
可以推出 ∣ z ∣ − ϵ ≤ ξ i mid zmid- epsilon leq xi_i zϵξi,即 ∣ z ∣ ≤ ξ i + ϵ mid zmid leq xi_i+epsilon z∣≤ξi+ϵ
− ξ i − ϵ ≥ z ≤ ξ i + ϵ -xi_i-epsilongeq z leqxi_i+epsilon ξiϵzξi+ϵ,即 − ξ i − ϵ ≥ f ( x i ) − y i ≤ ξ i + ϵ -xi_i-epsilongeq f(x_i)-y_ileqxi_i+epsilon ξiϵf(xi)yiξi+ϵ

对式(30)进行重写
min ⁡ w , b , ξ i , ξ i ^ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ i ^ ) s . t . f ( x i ) − y i ≤ ϵ + ξ i y i − f ( x i ) ≤ ϵ + ξ i ^ ξ i ≥ 0 , ξ i ^ ≥ 0 , i = 1 , 2 , . . . , m (32) min_{w,b,xi_i,hat{xi_i}}frac{1}{2}mid mid wmidmid^2+Csum^m_{i=1}(xi_i+hat{xi_i})\ s.t. f(x_i)-y_ileqepsilon+xi_i\ y_i-f(x_i)leqepsilon+hat{xi_i}\ xi_igeq0,hat{xi_i}geq 0,i=1,2,...,m tag{32} w,b,ξi,ξi^min21∣∣w2+Ci=1m(ξi+ξi^)s.t.f(xi)yiϵ+ξiyif(xi)ϵ+ξi^ξi0,ξi^0,i=1,2,...,m(32)

类似之前的做法,我们引入拉格朗日乘子写出拉格朗日函数
L ( w , b , ξ i , ξ i ^ , α , α ^ , μ , μ ^ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ i ^ ) + ∑ i = 1 m α i ( f ( x i ) − y i − ϵ − ξ i ) + ∑ i = 1 m α i ^ ( y i − f ( x i ) − ϵ − ξ i ^ ) − ∑ i = 1 m μ i ξ i − ∑ i = 1 m μ i ^ ξ i ^ (33) L(w,b,xi_i,hat{xi_i},alpha,hat{alpha},mu,hat{mu})=frac{1}{2}mid mid wmidmid^2+Csum^m_{i=1}(xi_i+hat{xi_i})\+sum^m_{i=1}alpha_i(f(x_i)-y_i-epsilon-xi_i)+sum^m_{i=1}hat{alpha_i}(y_i-f(x_i)-epsilon-hat{xi_i})\-sum^m_{i=1}mu_ixi_i-sum^m_{i=1}hat{mu_i}hat{xi_i}tag{33} L(w,b,ξi,ξi^,α,α^,μ,μ^)=21∣∣w2+Ci=1m(ξi+ξi^)+i=1mαi(f(xi)yiϵξi)+i=1mαi^(yif(xi)ϵξi^)i=1mμiξii=1mμi^ξi^(33)

其中 f ( x i ) = w T x i + b f(x_i)=w^Tx_i+b f(xi)=wTxi+b

分别对自变量求偏导
l ∂ w = w + ∑ i = 1 m α i x i − ∑ i = 1 m α i ^ x i l ∂ b = ∑ i = 1 m α i − ∑ i = 1 m α i ^ l ∂ ξ i = C − α i − μ i l ∂ ξ i ^ = C − α i ^ − μ i ^ frac{l}{partial w}=w+sum^m_{i=1}alpha_ix_i-sum^m_{i=1}hat{alpha_i}x_i\ frac{l}{partial b}=sum^m_{i=1}alpha_i-sum^m_{i=1}hat{alpha_i}\ frac{l}{partial xi_i}=C-alpha_i-mu_i\ frac{l}{partial hat{xi_i}}=C-hat{alpha_i}-hat{mu_i} wl=w+i=1mαixii=1mαi^xibl=i=1mαii=1mαi^ξil=Cαiμiξi^l=Cαi^μi^
令他们为0,整理一下
w = ∑ i = 1 m ( α i ^ − α i ) x i ∑ i = 1 m ( α i ^ − α i ) = 0 C = α i + μ i C = α i ^ + μ i ^ (34) w=sum^m_{i=1}(hat{alpha_i}-alpha_i)x_i\ sum^m_{i=1}(hat{alpha_i}-alpha_i)=0\ C=alpha_i+mu_i\ C=hat{alpha_i}+hat{mu_i} tag{34} w=i=1m(αi^αi)xii=1m(αi^αi)=0C=αi+μiC=αi^+μi^(34)

将式(34)带入拉格朗日函数,即可得到对偶问题
max ⁡ α , α i ^ ∑ i = 1 m y i ( α i ^ − α i ) − ϵ ( α i ^ + α i ) − 1 2 ∑ i = 1 m ∑ j = 1 m ( α i ^ − α i ) ( α j ^ − α j ) x i T x j s . t . ∑ i = 1 m ( α i ^ − α i ) = 0 C ≥ α i , α i ^ ≥ 0 , i = 1 , 2 , . . . , m (35) max_{alpha,hat{alpha_i}}sum^m_{i=1}y_i(hat{alpha_i}-alpha_i)-epsilon(hat{alpha_i}+alpha_i)-frac{1}{2}sum^m_{i=1}sum^m_{j=1}(hat{alpha_i}-alpha_i)(hat{alpha_j}-alpha_j)x_i^Tx_j\ s.t.quad sum^m_{i=1}(hat{alpha_i}-alpha_i)=0\ quadquadquadquad Cgeq alpha_i,hat{alpha_i}geq 0,i=1,2,...,m tag{35} α,αi^maxi=1myi(αi^αi)ϵ(αi^+αi)21i=1mj=1m(αi^αi)(αj^αj)xiTxjs.t.i=1m(αi^αi)=0Cαi,αi^0,i=1,2,...,m(35)

还需要满足KKT条件
{ α i ( f ( x i ) − y i − ϵ − ξ i ) = 0 α i ^ ( y i − f ( x i ) − ϵ − ξ i ^ ) = 0 μ i ξ i = 0 , μ i ^ ξ i ^ = 0 ; = > ( C − α i ) ξ i = 0 , ( C − α i ^ ) ξ i ^ = 0 f ( x i ) − y i ≤ ϵ + ξ i y i − f ( x i ) ≤ ϵ + ξ i ^ ξ i ≥ 0 , ξ i ^ ≥ 0 , α i ≥ 0 , α i ^ ≥ 0 , i = 1 , 2 , . . . , m (36) begin{cases} alpha_i(f(x_i)-y_i-epsilon-xi_i)=0\ hat{alpha_i}(y_i-f(x_i)-epsilon-hat{xi_i})=0\ mu_ixi_i=0,hat{mu_i}hat{xi_i}= 0;=>(C-alpha_i)xi_i=0,(C-hat{alpha_i})hat{xi_i}= 0\ f(x_i)-y_ileqepsilon+xi_i\ y_i-f(x_i)leqepsilon+hat{xi_i}\ xi_igeq0,hat{xi_i}geq 0,alpha_igeq0,hat{alpha_i}geq 0,i=1,2,...,m tag{36} end{cases} αi(f(xi)yiϵξi)=0αi^(yif(xi)ϵξi^)=0μiξi=0,μi^ξi^=0;=>(Cαi)ξi=0,(Cαi^)ξi^=0f(xi)yiϵ+ξiyif(xi)ϵ+ξi^ξi0,ξi^0,αi0,αi^0,i=1,2,...,m(36)

当且仅当 f ( x i ) − y i − ϵ − ξ i = 0 f(x_i)-y_i-epsilon-xi_i=0 f(xi)yiϵξi=0 时, α i alpha_i αi能取非零值
当且仅当 y i − f ( x i ) − ϵ − ξ i ^ = 0 y_i-f(x_i)-epsilon-hat{xi_i}=0 yif(xi)ϵξi^=0 时, α i ^ hat{alpha_i} αi^能取非零值
即样本不落入间隔带中,相应的 α i , α i ^ alpha_i,hat{alpha_i} αi,αi^才能取非零值,而 f ( x i ) − y i − ϵ − ξ i = 0 f(x_i)-y_i-epsilon-xi_i=0 f(xi)yiϵξi=0 y i − f ( x i ) − ϵ − ξ i ^ = 0 y_i-f(x_i)-epsilon-hat{xi_i}=0 yif(xi)ϵξi^=0 不同时成立,因此 α i , α i ^ alpha_i,hat{alpha_i} αi,αi^中至少有一个为0

最后

以上就是优雅丝袜为你收集整理的小白学机器学习西瓜书-第六章支持向量机(4)6.7 支持向量回归的全部内容,希望文章能够帮你解决小白学机器学习西瓜书-第六章支持向量机(4)6.7 支持向量回归所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部