SVR模型&python应用

1. SVR模型

SVR应用链接,处理波士顿房价预测问题
在SVM分类模型中,我们的目标函数是让 1 2 ∣ ∣ w ∣ ∣ 2 \cfrac{1}{2}||w||^2 21w2最小,同时让各个训练集中的点尽量远离自己类别一边的的支持向量,即 y i ( w ⋅ ϕ ( x i ) + b ) ≥ 1 y_i(w \cdot \phi(x_i )+ b) \geq 1 yi(wϕ(xi)+b)1。若加入一个松弛变量 ξ i ≥ 0 \xi_i \geq 0 ξi0,则目标函数为:
1 2 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 m ξ i (式1) \frac{1}{2}||w||_2^2 +C\sum\limits_{i=1}^{m}\xi_i\tag{式1} 21w22+Ci=1mξi(1)
约束条件为:
y i ( w ⋅ ϕ ( x i ) + b ) ≥ 1 − ξ i (式2) y_i(w \cdot \phi(x_i ) + b ) \geq 1 - \xi_i\tag{式2} yi(wϕ(xi)+b)1ξi(2)
现在用于回归模型,优化目标函数可以继续和SVM分类模型保持一致为 1 2 ∣ ∣ w ∣ ∣ 2 2 \frac{1}{2}||w||_2^2 21w22,但是约束条件不可能是让各个训练集中的点尽量远离自己类别一边的的支持向量,因为我们是回归模型,没有类别。对于回归模型,我们的目标是让训练集中的每个点 ( x i , y i ) (x_i,y_i) (xi,yi),尽量拟合到一个线性模型 y i ≈ w ⋅ ϕ ( x i ) + b y_i \approx{ w \cdot \phi(x_i ) +b } yiwϕ(xi)+b。一般的回归模型,使用均方差作为损失函数,但是SVR不是这样定义损失函数的。

SVR需要定义一个常量 ϵ > 0 \epsilon>0 ϵ>0,对于某一个点 ( x i , y i ) (x_i,y_i) (xi,yi),如果 ∣ y i − w ⋅ ϕ ( x i ) − b ∣ ≤ ϵ |y_i - w \cdot\phi(x_i ) -b| \leq \epsilon yiwϕ(xi)bϵ,则没有损失,如果 ∣ y i − w ⋅ ϕ ( x i ) − b ∣ > ϵ |y_i - w \cdot \phi(x_i ) -b| >\epsilon yiwϕ(xi)b>ϵ,则对应的损失为 ∣ y i − w ⋅ ϕ ( x i ) − b ∣ − ϵ |y_i - w \cdot \phi(x_i ) -b| - \epsilon yiwϕ(xi)bϵ,这和均方差损失函数不同,如果是均方差,那么只要 y i − w ⋅ ϕ ( x i ) − b ≠ 0 y_i - w \cdot\phi(x_i ) -b \neq{0} yiwϕ(xi)b=0,那么就会有损失。
如图所示,在条带里面的点都是没有损失的,但是外面的点的是有损失的:
在这里插入图片描述
这样一来我们的SVR模型的损失函数度量为:
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 ∣ > ϵ (式3) err(x_i,y_i) = \begin{cases}{ 0\qquad\qquad\qquad\qquad\qquad\quad|y_i - w \cdot \phi(x_i ) -b| \leq\epsilon}\\ |y_i - w \cdot \phi(x_i ) -b| - \epsilon\qquad {|y_i - w \cdot \phi(x_i ) -b|>\epsilon} \tag{式3} \end{cases} err(xi,yi)={0yiwϕ(xi)bϵyiwϕ(xi)bϵyiwϕ(xi)b>ϵ(3)

2. SVR模型目标函数的原始形式

定义目标函数如下:
m i n 1 2 ∣ ∣ w ∣ ∣ 2 2 s . t ∣ y i − w ⋅ ϕ ( x i ) − b ∣ ≤ ϵ ( i = 1 , 2 , . . . m ) (式4) \begin{aligned} &min\quad \cfrac{1}{2}||w||_2^2\\ &s.t \qquad |y_i - w \cdot \phi(x_i ) -b| \leq \epsilon(i =1,2,...m) \end{aligned}\tag{式4} min21w22s.tyiwϕ(xi)bϵ(i=1,2,...m)(4)
和SVM模型相似,SVR模型也可以对每个样本 ( x i , y i ) (x_i,y_i) (xi,yi)加入松弛变量 ξ i ≥ 0 \xi_i \geq 0 ξi0, 但是由于我们这里用的是绝对值,实际上是两个不等式,也就是说两边都需要松弛变量,定义为 ξ i ∨ , ξ i ∧ \xi_i^{\lor}, \xi_i^{\land} ξi,ξi, 则SVR模型的损失函数度量在加入松弛变量之后变为:
m i n 1 2 ∣ ∣ w ∣ ∣ 2 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 ) (式5) \begin{aligned} min\quad &\cfrac{1}{2}||w||_2^2 + C\sum_{i=1}^{m}(\xi_i^{\lor}+ \xi_i^{\land}) \\ &s.t. \quad -\epsilon - \xi_i^{\lor} \leq {y_i - w \cdot \phi(x_i ) -b }\leq\epsilon +\xi_i^{\land}\\ &\xi_i^{\lor} \geq 0, \quad\xi_i^{\land} \geq 0 (i = 1,2,..., m) \end{aligned}\tag{式5} min21w22+Ci=1m(ξi+ξi)s.t.ϵξiyiwϕ(xi)bϵ+ξiξi0,ξi0(i=1,2,...,m)(5)
依然和SVM分类模型相似,用拉格朗日函数将目标优化函数变成无约束的形式,如下:
L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 m ( ξ i ∨ + ξ i ∧ ) + ∑ i = 1 m α ∨ ( − ϵ − ξ i ∨ − y i + w ⋅ ϕ ( x i ) + b ) + ∑ i = 1 m α ∧ ( y i − w ⋅ ϕ ( x i ) − b − ϵ − ξ i ∧ ) − ∑ i = 1 m μ ∨ ξ i ∨ − ∑ i = 1 m μ ∧ ξ i ∧ (式6) \begin{aligned} L(w,b,\alpha^{\lor}, \alpha^{\land},\xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor},\mu^{\land}) &= \frac{1}{2}||w||_2^2 + C\sum_{i=1}^{m}(\xi_i^{\lor}+ \xi_i^{\land}) + \sum_{i=1}^{m}\alpha^{\lor}(-\epsilon - \xi_i^{\lor} -y_i +w \cdot\phi(x_i) + b) +\\ &\sum_{i=1}^{m} \alpha^{\land}(y_i -w \cdot \phi(x_i ) - b -\epsilon -\xi_i^{\land}) -\sum_{i=1}^{m}\mu^{\lor}\xi_i^{\lor} -\sum_{i=1}^{m}\mu^{\land}\xi_i^{\land} \end{aligned}\tag{式6} L(w,b,α,α,ξi,ξi,μ,μ)=21w22+Ci=1m(ξi+ξi)+i=1mα(ϵξiyi+wϕ(xi)+b)+i=1mα(yiwϕ(xi)bϵξi)i=1mμξii=1mμξi(6)
其中 μ ∨ ≥ 0 , μ ∧ ≥ 0 , α i ∨ ≥ 0 , α i ∧ ≥ 0 \mu^{\lor} \geq 0, \mu^{\land}\geq 0, \alpha_i^{\lor} \geq 0, \alpha_i^{\land}\geq 0 μ0,μ0,αi0,αi0,均为拉格朗日乘子。

3. SVR模型的目标函数的对偶形式

根据SVR模型的目标函数的原始形式,我们的目标是:
min ⁡ ( w , b , ξ i ∨ , ξ i ∧ ) max ⁡ ( μ ∨ ≥ 0 , μ ∧ ≥ 0 , α i ∨ ≥ 0 , α i ∧ ≥ 0 ) L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) (式7) \min({w,b,\xi_i^{\lor}, \xi_i^{\land}})\qquad \max({\mu^{\lor}\geq 0, \mu^{\land}\geq 0,\alpha_i^{\lor}\geq 0,\alpha_i^{\land}\geq 0})\quad L(w,b,\alpha^{\lor}, \alpha^{\land},\xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor},\mu^{\land})\tag{式7} min(w,b,ξi,ξi)max(μ0,μ0,αi0,αi0)L(w,b,α,α,ξi,ξi,μ,μ)(7)
和SVM分类模型一样,这个优化目标也满足KKT条件,也就是说,我们可以通过拉格朗日将优化问题转化为等价的对偶问题来求解如下:
max ⁡ ( μ ∨ ≥ 0 , μ ∧ ≥ 0 , α i ∨ ≥ 0 , α i ∧ ≥ 0 ) min ⁡ ( w , b , ξ i ∨ , ξ i ∧ ) L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) (式8) \max({\mu^{\lor}\geq 0, \mu^{\land}\geq 0,\alpha_i^{\lor}\geq 0,\alpha_i^{\land}\geq 0})\qquad\min({w,b,\xi_i^{\lor}, \xi_i^{\land}})\qquad \quad L(w,b,\alpha^{\lor}, \alpha^{\land},\xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor},\mu^{\land})\tag{式8} max(μ0,μ0,αi0,αi0)min(w,b,ξi,ξi)L(w,b,α,α,ξi,ξi,μ,μ)(8)    
可以先求优化函数对于 w , b , ξ i ∨ , ξ i ∧ w,b,\xi_i^{\lor}, \xi_i^{\land} w,b,ξi,ξi的极小值, 接着再求拉格朗日乘子 α ∨ , α ∧ , μ ∨ μ ∧ \alpha^{\lor}, \alpha^{\land}, \mu^{\lor}\mu^{\land} α,α,μμ的极大值。
首先我们来求优化函数对于 w , b , ξ i ∨ , ξ i ∧ w,b,\xi_i^{\lor}, \xi_i^{\land} w,b,ξi,ξi的极小值。
这个可以通过求偏导数求得:
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m ( α i ∧ − α i ∨ ) ϕ ( x i ) (式9) \frac{\partial L}{\partial w} = 0 \Rightarrow w = \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})\phi(x_i)\tag{式9} wL=0w=i=1m(αiαi)ϕ(xi)(9)
∂ L ∂ b = 0 ⇒ ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 (式10) \frac{\partial L}{\partial b} = 0 \Rightarrow \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor}) = 0\tag{式10} bL=0i=1m(αiαi)=0(10)
∂ L ∂ ξ i ∨ = 0 ⇒ C − α ∨ − μ ∨ = 0 (式11) \frac{\partial L}{\partial \xi_i^{\lor}} = 0 \Rightarrow C-\alpha^{\lor}-\mu^{\lor} = 0 \tag{式11} ξiL=0Cαμ=0(11)
∂ L ∂ ξ i ∧ = 0 ⇒ C − α ∧ μ ∧ = 0 (式12) \frac{\partial L}{\partial \xi_i^{\land}} = 0 \Rightarrow C-\alpha^{\land}\mu^{\land} = 0\tag{式12} ξiL=0Cαμ=0(12)   
好了,把上面4个式子带入 L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) L(w,b,\alpha^{\lor},\alpha^{\land},\xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor},\mu^{\land}) L(w,b,α,α,ξi,ξi,μ,μ)消去 w , b , ξ i ∨ , ξ i ∧ w,b,\xi_i^{\lor}, \xi_i^{\land} w,b,ξi,ξi了。
最终得到的对偶形式为:
m a x ⏟ α ∨ , α ∧ − ∑ i = 1 m ( ϵ − y i ) α i ∧ + ( ϵ + y i ) α i ∨ ) − 1 2 ∑ i = 1 , j = 1 m ( α i ∧ − α i ∨ ) ( α j ∧ − α j ∨ ) K i j s . t . ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 0 < α i ∨ < C    ( i = 1 , 2 , . . . m ) 0 < α i ∧ < C ( i = 1 , 2 , . . . m (式13) \begin{aligned} \underbrace{ max }_{\alpha^{\lor}, \alpha^{\land}} -\sum\limits_{i=1}^{m}(\epsilon-y_i)\alpha_i^{\land}&+ (\epsilon+y_i)\alpha_i^{\lor}) - \frac{1}{2}\sum\limits_{i=1,j=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})(\alpha_j^{\land} -\alpha_j^{\lor})K_{ij} \\ &s.t. \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor}) = 0\\ &0<\alpha_i^{\lor} <C \; (i =1,2,...m)\\ &0<\alpha_i^{\land} <C (i =1,2,...m\tag{式13} \end{aligned} α,α maxi=1m(ϵyi)αi+(ϵ+yi)αi)21i=1,j=1m(αiαi)(αjαj)Kijs.t.i=1m(αiαi)=00<αi<C(i=1,2,...m)0<αi<C(i=1,2,...m(13)

取负号求最小值可以得到和SVM分类模型类似的求极小值的目标函数如下:
m i n ⏟ α ∨ , α ∧ 1 2 ∑ i = 1 , j = 1 m ( α i ∧ − α i ∨ ) ( α j ∧ − α j ∨ ) K i j + ∑ i = 1 m ( ϵ − y i ) α i ∧ + ( ϵ + y i ) α i ∨ s . t . ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 0 < α i ∨ < C ( i = 1 , 2 , . . . m ) 0 < α i ∧ < C ( i = 1 , 2 , . . . m ) (式14) \underbrace{ min}_{\alpha^{\lor}, \alpha^{\land}}\frac{1}{2}\sum\limits_{i=1,j=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})(\alpha_j^{\land} -\alpha_j^{\lor})K_{ij} + \sum\limits_{i=1}^{m}(\epsilon-y_i)\alpha_i^{\land}+ (\epsilon+y_i)\alpha_i^{\lor} \\ s.t. \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor}) = 0\\ 0 < \alpha_i^{\lor} <C (i =1,2,...m)\\ 0<\alpha_i^{\land} <C (i =1,2,...m)\tag{式14} α,α min21i=1,j=1m(αiαi)(αjαj)Kij+i=1m(ϵyi)αi+(ϵ+yi)αis.t.i=1m(αiαi)=00<αi<C(i=1,2,...m)0<αi<C(i=1,2,...m)(14)
对于此目标函数,可以用SMO算法来求出对应的 α ∨ , α ∧ \alpha^{\lor}, \alpha^{\land} α,α,进而求出我们的回归模型系数 w , b w, b w,b

4.SVR模型系数的稀疏性

在SVM分类模型中,我们的KKT条件的对偶互补条件为: α i ∗ ( y i ( w ⋅ ϕ ( x i ) + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}^{*}(y_i(w \cdot \phi(x_i) + b) - 1+\xi_i^{*}) = 0 αi(yi(wϕ(xi)+b)1+ξi)=0,而在回归模型中,我们的对偶互补条件类似如下:
α i ∨ ( ϵ + ξ i ∨ + y i − w ⋅ ϕ ( x i ) − b ) = 0 (式15) \alpha_i^{\lor}(\epsilon + \xi_i^{\lor} + y_i - w \cdot \phi(x_i ) - b) = 0 \tag{式15} αi(ϵ+ξi+yiwϕ(xi)b)=0(15)
α i ∧ ( ϵ + ξ i ∧ − y i + w ⋅ ϕ ( x i ) + b ) = 0 (式16) \alpha_i^{\land}(\epsilon + \xi_i^{\land} -y_i + w \cdot \phi(x_i ) + b) = 0\tag{式16} αi(ϵ+ξiyi+wϕ(xi)+b)=0(16)
根据松弛变量定义条件,如果 ∣ y i − w ⋅ ϕ ( x i ) − b ∣ < ϵ |y_i - w \cdot \phi(x_i ) -b| <\epsilon yiwϕ(xi)b<ϵ,我们有 ξ i ∨ = 0 , ξ i ∧ = 0 \xi_i^{\lor} = 0, \xi_i^{\land}= 0 ξi=0,ξi=0,此时 ϵ + ξ i ∨ + y i − w ⋅ ϕ ( x i ) − b ≠ 0 , ϵ + ξ i ∧ − y i + w ⋅ ϕ ( x i ) + b ≠ 0 \epsilon + \xi_i^{\lor} + y_i - w \cdot \phi(x_i ) - b \neq 0, \epsilon + \xi_i^{\land} -y_i + w \cdot \phi(x_i ) + b \neq 0 ϵ+ξi+yiwϕ(xi)b=0,ϵ+ξiyi+wϕ(xi)+b=0这样要满足对偶互补条件,只有 α i ∨ = 0 , α i ∧ = 0 \alpha_i^{\lor} = 0, \alpha_i^{\land} = 0 αi=0,αi=0。定义样本系数系数
β i = α i ∧ − α i ∨ (式17) \beta_i =\alpha_i^{\land}-\alpha_i^{\lor} \tag{式17} βi=αiαi(17)
根据上面 w w w的计算式 w = ∑ i = 1 m ( α i ∧ − α i ∨ ) ϕ ( x i ) w = \sum_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})\phi(x_i) w=i=1m(αiαi)ϕ(xi),发现此时 β i = 0 \beta_i = 0 βi=0,也就是说 w w w不受这些在误差范围内的点的影响。对于在边界上或者在边界外的点, α i ∨ ≠ 0 , α i ∧ ≠ 0 \alpha_i^{\lor} \neq 0, \alpha_i^{\land} \neq 0 αi=0,αi=0,此时 β i ≠ 0 \beta_i \neq 0 βi=0
推导参考链接

5. SVM 算法小结

SVM算法是一个很优秀的算法,在集成学习和神经网络之类的算法没有表现出优越性能前,SVM基本占据了分类模型的统治地位。目前则是在大数据时代的大样本背景下,SVM由于其在大样本时超级大的计算量,热度有所下降,但是仍然是一个常用的机器学习算法。SVM算法的主要优点有:

  • (1)高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
  • (2) 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
  • (3) 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
  • (4)样本量不是海量数据的时候,分类准确率高,泛化能力强。
    SVM算法的主要缺点有:
  • (1) 如果特征维度远远大于样本数,则SVM表现一般。
  • (2) SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
  • (3)非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
  • (4)SVM对缺失数据敏感。

6.SVR模型应用

使用SVR处理波士顿房价预测问题
链接:https://blog.csdn.net/AIHUBEI/article/details/105105688

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值