机器学习笔记3:线性回归模型

在上一篇中,我们介绍了机器学习任务的一般步骤。现在我们对具体任务进行讲解

文章目录


#一、模型#
给定训练数据集 D = { x i , y i } i = 1 N \textit{D}=\left \{ \mathbf{x}_{i} ,y_{i}\right \}_{i=1}^{N} D={xi,yi}i=1N ,其中 y ∈ R y\in \mathbb{R} yR。回归学习一个从输入 x \mathbf{x} x到输出 y y y的映射 f f f。当增加新的数据集时, 用学习到的映射 f f f对其进行预测 y ^ = f ( x ) \hat{y}=f(\mathbf{x}) y^=f(x)。若是学习到的这个映射 f f f是一个线性函数:

y ^ = f ( x ∣ w ) = w T x \hat{y}=f(\mathbf{x}|\mathbf{w})=\mathbf{w^{T}}\mathbf{x} y^=f(xw)=wTx

则我们称之为线性回归模型。
##1.目标函数##
前面我们已经提过,目标函数通常包括两项:损失函数和正则项
这里写图片描述
其中,我们的L2损失就使用到残差平方和(residual sum of squares,RSS):

R S S = ∑ i = 1 N ( y i − y i ^ ) = ∑ i = 1 N ( y i − w T x i ) 2 RSS=\sum_{i=1}^{N}(y_{i}-\hat{y_{i}})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2} RSS=i=1N(yiyi^)=i=1N(yiwTxi)2
           
(1)、最小二乘线性回归(Ordinary Least Square,OLS): 
    由于线性模型比较简单,所以当 R ( θ ) = 0 R(\theta)=0 R(θ)=0时,目标函数为
    
            J ( w ) = ∑ i = 1 N L ( y i , y i ^ ) = ∑ i = 1 N ( y i − y i ^ ) = ∑ i = 1 N ( y i − w T x i ) 2 J(\mathbf{w})=\sum_{i=1}^{N}L(y_{i},\hat{y_{i}})=\sum_{i=1}^{N}(y_{i}-\hat{y_{i}})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2} J(w)=i=1NL(yi,yi^)=i=1N(yiyi^)=i=1N(yiwTxi)2

(2)、岭回归(Ridge Regression):
    当正则项为L2时,即 R ( θ ) = λ ∣ ∣ w ∣ ∣ 2 R(\theta)=\lambda ||\mathbf{w}||^{2} R(θ)=λw2,目标函数为
    
            J ( w ) = ∑ i = 1 N ( y i − w T x i ) 2 + λ ∣ ∣ w ∣ ∣ 2 J(\mathbf{w})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2}+\lambda ||\mathbf{w}||^{2} J(w)=i=1N(yiwTxi)2+λw2  
           
(3)、Lasso模型:
    当正则项为L1时,即 R ( θ ) = λ ∣ w ∣ R(\theta)=\lambda |\mathbf{w}| R(θ)=λw,目标函数为
    
            J ( w ) = ∑ i = 1 N ( y i − w T x i ) 2 + λ ∣ w ∣ J(\mathbf{w})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2}+\lambda |\mathbf{w}| J(w)=i=1N(yiwTxi)2+λw
           
##2.概率解释##
(1)、最小二乘(线性)回归等价于极大似然估计
假设$y=f(x)+\varepsilon =\mathbf{w^{T}x}+\varepsilon , 其 中 ,其中 \varepsilon 为 线 性 预 测 值 与 真 值 之 间 的 残 差 , 我 们 通 常 假 设 这 个 残 差 服 从 高 斯 分 布 , 为线性预测值与真值之间的残差,我们通常假设这个残差服从高斯分布, 线\varepsilon \sim N(0,\sigma ^{2})$.因此线性回归可以写成:

p ( y ∣ x , θ ) ∼ N ( y ∣ w T x , σ 2 ) p(y|\mathbf{x},\mathbf{\theta })\sim N(y|\mathbf{w^{T}x},\sigma ^{2}) p(yx,θ)N(ywTx,σ2),其中 θ = ( w , σ 2 ) \theta=(\mathbf{w},\sigma ^{2}) θ=(w,σ2)
              
我们复习下极大似然估计(Maximize Likelihood Estimator,MLE)的定义:

θ ^ = a r g m a x θ    log ⁡   p ( D ∣ θ ) \hat{\theta} = \underset{\theta}{argmax}\; \log{}\, p(D|\theta) θ^=θargmaxlogp(Dθ)
其中(log)似然函数为:

l ( θ ) = log ⁡    p ( D ∣ θ ) = ∑ i = 1 N log ⁡   p ( y i ∣ x i , θ ) l(\theta)=\log\;p(D|\theta)=\sum_{i=1}^{N}\log\, p(y_{i}|x_{i},\theta) l(θ)=logp(Dθ)=i=1Nlogp(yixi,θ)   
              
表示在参数为 θ \theta θ的情况下,数据 D = { x i , y i } i = 1 N \textit{D}=\left \{ \mathbf{x}_{i} ,y_{i}\right \}_{i=1}^{N} D={xi,yi}i=1N出现的概率。极大似然就是选择数据出现概率最大的参数。
线性回归法MLE:

p ( y i ∣ x i , w , σ 2 ) = N ( y i ∣ w T x i , σ 2 ) = 1 2 π σ e x p ( − 1 2 σ 2 ( ( y i − w T x i ) 2 ) ) p(y_{i}|\mathbf{x}_{i},\mathbf{w},\sigma ^{2})=N(y_{i}|\mathbf{w^{T}}\mathbf{x}_{i},\sigma ^{2})=\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{1}{2\sigma ^{2}}((y_{i}-\mathbf{w^{T}}\mathbf{x}_{i})^{2})) p(yixi,w,σ2)=N(yiwTxi,σ2)=2π σ1exp(2σ21((yiwTxi)2)) 
         
因为OLS的似然函数为:

l ( θ ) = log ⁡    p ( D ∣ θ ) = ∑ i = 1 N log ⁡   p ( y i ∣ x i , θ ) l(\theta)=\log\;p(D|\theta)=\sum_{i=1}^{N}\log\, p(y_{i}|x_{i},\theta) l(θ)=logp(Dθ)=i=1Nlogp(yixi,θ)   
              
又因为极大似然可等价地写成极小负log似然损失(negative log likelihood,NLL):

N L L ( θ ) = − ∑ i = 1 N log ⁡   p ( y i ∣ x i , θ ) NLL(\theta)=-\sum_{i=1}^{N}\log\, p(y_{i}|x_{i},\theta) NLL(θ)=i=1Nlogp(yixi,θ)
                  = − ∑ i = 1 N log ⁡ [ 1 2 π σ e x p ( − 1 2 σ 2 ( ( y i − w T x i ) 2 ) ) ] =-\sum_{i=1}^{N}\log[\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{1}{2\sigma ^{2}}((y_{i}-\mathbf{w^{T}}\mathbf{x}_{i})^{2}))] =i=1Nlog[2π σ1exp(2σ21((yiwTxi)2))]
                  = N 2 log ⁡ ( 2 π σ 2 ) + 1 2 σ 2 ∑ i = 1 N ( y i − w T x i ) 2 =\frac{N}{2}\log(2\pi \sigma ^{2}) + \frac{1}{2\sigma ^{2}}\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}}\mathbf{x}_{i})^{2} =2Nlog(2πσ2)+2σ21i=1N(yiwTxi)2  
                 
最大化似然公式L(θ)相当于最小化 N L L ( θ ) ∼ ∑ i = 1 N ( y i − w T x i ) 2 NLL(\theta)\sim \sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}}\mathbf{x}_{i})^{2} NLL(θ)i=1N(yiwTxi)2 等价于最小二乘回归 J ( w ) J(\mathbf{w}) J(w)

(2)、正则回归等价于贝叶斯分布
假设残差分布 ε ∼ N ( 0 , σ 2 ) \varepsilon \sim N(0,\sigma ^{2}) εN(0,σ2),线性回归可以写成

p ( y ∣ x , θ ) ∼ N ( y ∣ w T x , σ 2 ) p(y|\mathbf{x},\mathbf{\theta })\sim N(y|\mathbf{w^{T}x},\sigma ^{2}) p(yx,θ)N(ywTx,σ2)
               p ( y i ∣ x i , w , σ 2 ) = N ( y i ∣ w T x i , σ 2 I N ) ∝ e x p ( − 1 2 σ 2 [ ( y − X w ) T ( y − X w ) ] ) p(y_{i}|\mathbf{x}_{i},\mathbf{w},\sigma ^{2})=N(y_{i}|\mathbf{w^{T}}\mathbf{x}_{i},\sigma ^{2}\mathbf{I}_{N})\propto exp(-\frac{1}{2\sigma ^{2}}[(\mathbf{y}-\mathbf{Xw})^{T}(\mathbf{y}-\mathbf{Xw})]) p(yixi,w,σ2)=N(yiwTxi,σ2IN)exp(2σ21[(yXw)T(yXw)]) 
              
a、假设 w \mathbf{w} w的先验分布为高斯分布 w ∼ N ( 0 , τ 2 ) \mathbf{w} \sim N(0,\tau ^{2}) wN(0,τ2)

所以             p ( w ) = ∏ j = 1 D N ( w j ∣ 0 , τ 2 ) ∝ e x p ( − 1 2 τ 2 ∑ j = 1 D w j 2 ) = e x p ( − 1 2 τ 2 [ w T w ] ) p(\mathbf{w})=\prod_{j=1}^{D}N(\mathbf{w}_{j}|0,\tau ^{2})\propto exp(-\frac{1}{2\tau^{2}}\sum_{j=1}^{D}\mathbf{w}^{2}_{j})=exp(-\frac{1}{2\tau^{2}}[\mathbf{w}^{T}\mathbf{w}]) p(w)=j=1DN(wj0,τ2)exp(2τ21j=1Dwj2)=exp(2τ21[wTw])

其中 1 / τ 2 1/\tau ^{2} 1/τ2控制先验的强度
根据贝叶斯公式公式,得到参数的后验分布为

p ( w ∣ X , y , σ 2 ) ∝ p ( y i ∣ x i , w , σ 2 ) p ( w ) p(\mathbf{w}|\mathbf{X},\mathbf{y},\sigma ^{2}) \propto p(y_{i}|\mathbf{x}_{i},\mathbf{w},\sigma ^{2})p(\mathbf{w}) p(wX,y,σ2)p(yixi,w,σ2)p(w)
                      = e x p ( − 1 2 σ 2 [ ( y − X w ) T ( y − X w ) ] − 1 2 τ 2 [ w T w ] ) = exp(-\frac{1}{2\sigma ^{2}}[(\mathbf{y}-\mathbf{Xw})^{T}(\mathbf{y}-\mathbf{Xw})]-\frac{1}{2\tau^{2}}[\mathbf{w}^{T}\mathbf{w}]) =exp(2σ21[(yXw)T(yXw)]2τ21[wTw]) 
                     
为方便计算,取对数 log ⁡ p ( w ∣ X , y , σ 2 ) \log p(\mathbf{w}|\mathbf{X},\mathbf{y},\sigma ^{2}) logp(wX,y,σ2) 得到最大后验估计(MAP)等价于最小目标函数

J ( w ) = ( y − X w ) T ( y − X w ) + σ 2 τ 2 w T w J(\mathbf{w})=(\mathbf{y}-\mathbf{Xw})^{T}(\mathbf{y}-\mathbf{Xw})+\frac{\sigma ^{2}}{\tau ^{2}}\mathbf{w}^{T}\mathbf{w} J(w)=(yXw)T(yXw)+τ2σ2wTw 
              
对比下岭回归的目标函数

J ( w ) = ∑ i = 1 N ( y i − w T x i ) 2 + λ ∣ ∣ w ∣ ∣ 2 J(\mathbf{w})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2}+\lambda ||\mathbf{w}||^{2} J(w)=i=1N(yiwTxi)2+λw2 
b、假设 w \mathbf{w} w的先验分布为Laplace分布 w ∼ N ( 0 , b ) \mathbf{w} \sim N(0,b) wN(0,b)

所以             p ( w ) = ∏ j = 1 D N ( w j ∣ μ , b ) = 1 2 b e x p ( ∣ w − μ ∣ b ) p(\mathbf{w})=\prod_{j=1}^{D}N(\mathbf{w}_{j}|\mu ,b)= \frac{1}{2b}exp(\frac{|\mathbf{w}-\mu|}{b}) p(w)=j=1DN(wjμ,b)=2b1exp(bwμ)

= ∏ j = 1 D N ( w j ∣ 0 , b ) ∝ e x p ( ∣ w ∣ b ) =\prod_{j=1}^{D}N(\mathbf{w}_{j}|0 ,b) \propto exp(\frac{|\mathbf{w}|}{b}) =j=1DN(wj0,b)exp(bw)
                 
根据贝叶斯公式公式,得到参数的后验分布为

p ( w ∣ X , y , σ 2 ) ∝ p ( y i ∣ x i , w , σ 2 ) p ( w ) p(\mathbf{w}|\mathbf{X},\mathbf{y},\sigma ^{2}) \propto p(y_{i}|\mathbf{x}_{i},\mathbf{w},\sigma ^{2})p(\mathbf{w}) p(wX,y,σ2)p(yixi,w,σ2)p(w)
                      = e x p ( − 1 2 σ 2 [ ( y − X w ) T ( y − X w ) ] − 1 b ∣ w ∣ ) = exp(-\frac{1}{2\sigma ^{2}}[(\mathbf{y}-\mathbf{Xw})^{T}(\mathbf{y}-\mathbf{Xw})]-\frac{1}{b}|\mathbf{w}|) =exp(2σ21[(yXw)T(yXw)]b1w)
                    
为方便计算,取对数 log ⁡ p ( w ∣ X , y , σ 2 ) \log p(\mathbf{w}|\mathbf{X},\mathbf{y},\sigma ^{2}) logp(wX,y,σ2) 得到最大后验估计(MAP)等价于最小目标函数

J ( w ) = ( y − X w ) T ( y − X w ) + 2 σ 2 b ∣ w ∣ J(\mathbf{w})=(\mathbf{y}-\mathbf{Xw})^{T}(\mathbf{y}-\mathbf{Xw})+\frac{2\sigma ^{2}}{b}|\mathbf{w}| J(w)=(yXw)T(yXw)+b2σ2w 
              
对比下Lasso回归的目标函数

J ( w ) = ∑ i = 1 N ( y i − w T x i ) 2 + λ ∣ w ∣ J(\mathbf{w})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2}+\lambda |\mathbf{w}| J(w)=i=1N(yiwTxi)2+λw
#二、优化求解#
优化求解的目的是根据训练数据求目标函数取极小值的参数

w ^ = a r g   m i n w J ( w ) \mathbf{\hat{w}}=\underset{\mathbf{w}}{arg\, min}J(\mathbf{w}) w^=wargminJ(w)
目标函数求极小值的方法:

一阶导数为0 : ∂ J ( w ) ∂ w = 0 \frac{\partial J(\mathbf{w})}{\partial \mathbf{w}}=0 wJ(w)=0
  二阶导数>0: ∂ 2 J ( w ) ∂ w 2 > 0 \frac{\partial^2 J(\mathbf{w})}{\partial \mathbf{w}^2}> 0 w22J(w)>0
  
##1.OLS的优化求解##

J ( w ) = ∑ i = 1 N ( y i − w T x i ) 2 = ( y − w X ) T ( y − w X ) J(\mathbf{w})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2}=(\mathbf{y-wX})^{T}(\mathbf{y-wX}) J(w)=i=1N(yiwTxi)2=(ywX)T(ywX)
            
  我们的目标是求解 w \mathbf{w} w,所以只取关于 w \mathbf{w} w的部分,得到 
  
            J ( w ) = w T ( X T X ) w − 2 w T ( X y ) J(\mathbf{w})=\mathbf{w^{T}(X^{T}X)w-2w^{T}(Xy)} J(w)=wT(XTX)w2wT(Xy)
  通过求导可得:
            ∂ J ( w ) ∂ w = 2 X T X − 2 X T y = 0 \frac{\partial J(\mathbf{w})}{\partial \mathbf{w}}=\mathbf{2X^{T}X-2X^{T}y}=0 wJ(w)=2XTX2XTy=0
       
            X T X w = X T y \mathbf{X^{T}Xw=X^{T}y} XTXw=XTy
       
           所以: w ^ O L S = ( X T X ) − 1 X T y \hat{\mathbf{w}}_{OLS}=\mathbf{(X^{T}X)^{-1}X^{T}y} w^OLS=(XTX)1XTy
           
  这个式子可以通过奇异值分解(singular value decomposition,SVD)求解。
  下面是SVD的表达:
     对 X X X进行奇异值分解: X = U Σ V T \boldsymbol{X=U\Sigma V^{T}} X=UΣVT
     其中: U T U = I N \mathbf{U^{T}U}=\mathbf{I}_{N} UTU=IN 为列正交
      V V T = V T V = T D \mathbf{VV^{T}}=\boldsymbol{V^{T}V}=\mathbf{T}_{D} VVT=VTV=TD为行列均正交
     所以 X T = V Σ U T \mathbf{X^{T}=V\Sigma U^{T}} XT=VΣUT
     
  所以 w ^ O L S = ( X T X ) − 1 X T y \hat{\mathbf{w}}_{OLS}=\mathbf{(X^{T}X)^{-1}X^{T}y} w^OLS=(XTX)1XTy
        = ( Σ 2 ) − 1 V Σ U T y =\mathbf{(\Sigma ^{2})^{-1}V\Sigma U^{T}y} (Σ2)1VΣUTy
        = V Σ − 1 U T y =\mathbf{V\Sigma ^{-1}U^{T}y} VΣ1UTy
       
  OLS除了使用SVD求解外,还可以使用梯度下降法求解,在上一章中,我们看到梯度下降法的基本步骤:

a.先确定学习率$\eta $,再给定初始值 θ 0 \theta^{0} θ0
    b.计算目标函数在当前参数值的梯度: ▽ θ = ∂ J ( θ t ) ∂ θ \mathbf{\triangledown _{\theta}}=\frac{\partial J(\theta ^{t})}{\partial \theta } θ=θJ(θt)
    c.更新 θ \theta θ,使得 J ( θ ) J(\theta) J(θ)越来越小:
       θ t + 1 = θ t − η ▽ θ \mathbf{\theta }^{t+1} = \mathbf{\theta }^{t}-\eta \triangledown _{\theta} θt+1=θtηθ
      
  对于我们的OLS函数: J ( w ) = ∑ i = 1 N ( y i − w T x i ) 2 J(\mathbf{w})=\sum_{i=1}^{N}(y_{i}-\mathbf{w^{T}x_{i}})^{2} J(w)=i=1N(yiwTxi)2
  则梯度为:
             g ( w ) = ∂ J ( w ) ∂ w = ∑ i = 1 N 2 ( f ( x i ) − y i ) x i g(w)=\frac{\partial J(\mathbf{w})}{\partial \mathbf{w}}=\sum_{i=1}^{N}2(f(\mathbf{x}_{i})-y_{i})\mathbf{x}_{i} g(w)=wJ(w)=i=1N2(f(xi)yi)xi
  所以:
             w t + 1 = w t − η ▽ w \mathbf{w }^{t+1} = \mathbf{w }^{t}-\eta \triangledown _{ \mathbf{w}} wt+1=wtηw
                = w t − 2 η ∑ i = 1 N ( f ( x i ) − y i ) x i = \mathbf{w }^{t}-2\eta\sum_{i=1}^{N}(f(\mathbf{x}_{i})-y_{i})\mathbf{x}_{i} =wt2ηi=1N(f(xi)yi)xi
  如此这样一直迭代下去。
##2.岭回归的优化求解##

岭回归的目标函数与最小二乘(OLS)只是相差一个正则项( λ ∣ ∣ w ∣ ∣ 2 \lambda ||\mathbf{w}||^{2} λw2)。所以类似的求解可得:
  
             ∂ J ( w ) ∂ w = 2 X T X − 2 X T y − 2 λ w T = 0 \frac{\partial J(\mathbf{w})}{\partial \mathbf{w}}=\mathbf{2X^{T}X-2X^{T}y}-2\lambda \mathbf{w}^{T}=0 wJ(w)=2XTX2XTy2λwT=0
            
             w ^ r i g d e = ( X T X + λ I D ) − 1 X T y \hat{\mathbf{w}}_{rigde}=\mathbf{(X^{T}X+\lambda I_{D})^{-1}X^{T}y} w^rigde=(XTX+λID)1XTy 
            
##3.lasso的优化求解##

lasso的目标函数是: J ( w , λ ) = R S S ( w ) + λ ∣ ∣ w ∣ ∣ 1 J(\mathbf{w},\lambda )=RSS(\mathbf{w})+\lambda ||\mathbf{w}||_{1} J(w,λ)=RSS(w)+λw1,但是该目标函数的正则项在 w j = 0 \mathbf{w}_{j}=0 wj=0不可导,所以这里我们不能用梯度SVD求解,也不能用梯度下降法求解。
  所以我们引入坐标轴下降法。
  a、在使用坐标下降法之前,我们想了解下次微分的概念:
  为了处理不平滑的函数,扩展导数的表示,定义一个(凸)函数 f f f x 0 x_{0} x0处的次梯度为一个标量c,使得:
  
               f ( x ) − f ( x 0 ) ≥ c ( x − x 0 ) f(x)-f(x_{0})\geq c(x-x_{0}) f(x)f(x0)c(xx0)
  如下图:
这里写图片描述
  定义区间 [ a , b ] [a,b] [a,b]的子梯度集合为:
  
               a = lim ⁡ x → x 0 − f ( x ) − f ( x 0 ) x − x 0 , b = lim ⁡ x → x 0 + f ( x ) − f ( x 0 ) x − x 0 a=\lim_{x\rightarrow x_{0}^{-}}\frac{f(x)-f(x_{0})}{x-x_{0}},b=\lim_{x\rightarrow x_{0}^{+}}\frac{f(x)-f(x_{0})}{x-x_{0}} a=limxx0xx0f(x)f(x0),b=limxx0+xx0f(x)f(x0) 
              
  所有次梯度的区间称为函数 f f f x 0 x_{0} x0处的次微分(subdefferential),用 ∂ f ( x ) ∣ x 0 \partial f(x)|_{x_{0}} f(x)x0表示
  例如:绝对值函数 f ( x ) = ∣ x ∣ f(x)=|x| f(x)=x,其梯度为
               ∂ f ( x ) = { { − 1 }  if  x &lt; 0 [ − 1 , + 1 ]  if  x = 0 { + 1 }  if  x &gt; 0 \partial f(x)=\begin{cases}\{-1\} &amp; \text{ if } x&lt;0 \\ [-1,+1]&amp; \text{ if } x=0 \\ \{+1\}&amp; \text{ if } x&gt;0 \end{cases} f(x)={1}[1,+1]{+1} if x<0 if x=0 if x>0 
  b、对lasso求导
    目标函数: J ( w , λ ) = R S S ( w ) = ∑ i = 1 N ( y i − w i T x i ) 2 + λ ∣ ∣ w ∣ ∣ 1 J(\mathbf{w},\lambda )=RSS(\mathbf{w})=\sum_{i=1}^{N}(y_{i}-\mathbf{w}_{i}^{T}\mathbf{x}_{i})^{2}+\lambda ||\mathbf{w}||_{1} J(w,λ)=RSS(w)=i=1N(yiwiTxi)2+λw1
    对 w j w_{j} wj求导:
               ∂ ∂ w j R S S ( w ) = ∂ ∂ w j ∑ i = 1 N ( y i − ( w − j T x i , − j + w j x i j ) ) 2 \frac{\partial }{\partial w_{j}}RSS(\mathbf{w})=\frac{\partial }{\partial w_{j}}\sum_{i=1}^{N}(y_{i}-(\mathbf{w}^{T}_{-j}\mathbf{x}_{i,-j}+w_{j}x_{ij}))^{2} wjRSS(w)=wji=1N(yi(wjTxi,j+wjxij))2
                     = − 2 ∑ i = 1 N ( y i − w − j T x i , − j − w j x i j ) x i j =-2\sum_{i=1}^{N}(y_{i}-\mathbf{w}^{T}_{-j}\mathbf{x}_{i,-j}-w_{j}x_{ij})x_{ij} =2i=1N(yiwjTxi,jwjxij)xij
                     = 2 ∑ i = 1 N w j x i j 2 − 2 ∑ i − 1 N x i j ( y i − w − j T x i , − j ) =2\sum_{i=1}^{N}w_{j}x_{ij}^{2}-2\sum_{i-1}^{N}x_{ij}(y_{i}-\mathbf{w}^{T}_{-j}\mathbf{x}_{i,-j}) =2i=1Nwjxij22i1Nxij(yiwjTxi,j)
                     
  令: a j = 2 ∑ i = 1 N w j x i j 2 a_{j}=2\sum_{i=1}^{N}w_{j}x_{ij}^{2} aj=2i=1Nwjxij2 c j = 2 ∑ i − 1 N x i j ( y i − w − j T x i , − j ) c_{j}=2\sum_{i-1}^{N}x_{ij}(y_{i}-\mathbf{w}^{T}_{-j}\mathbf{x}_{i,-j}) cj=2i1Nxij(yiwjTxi,j),其中 ( y i − w − j T x i , − j ) (y_{i}-\mathbf{w}^{T}_{-j}\mathbf{x}_{i,-j}) (yiwjTxi,j)是利用 D − j D-j Dj维特征得到的预测的残差,则 c j c_{j} cj为第 j j j维特征与残差的相关性之和
  
  故 ∂ ∂ w j R S S ( w ) = a j w j − c j \frac{\partial }{\partial w_{j}}RSS(\mathbf{w})=a_{j}w_{j}-c_{j} wjRSS(w)=ajwjcj
  
  那么 ∂ w j J ( w , λ ) = ( a j w j − c j ) + λ ∂ w j ∣ ∣ w ∣ ∣ 1 \partial _{w_{j}}J(w,\lambda )=(a_{j}w_{j}-c_{j})+\lambda \partial _{w_{j}}||\mathbf{w}||_{1} wjJ(w,λ)=(ajwjcj)+λwjw1 = { { a j w j − c j − λ }  if  w j &lt; 0 { − c − λ , − c j + λ }  if  w j = 0 { a j w j − c j + λ }  if  w j &gt; 0 =\begin{cases}\{a_{j}w_{j}-c_{j}-\lambda \} &amp; \text{ if } w_{j}&lt;0 \\ \{-c-\lambda ,-c_{j}+\lambda \}&amp; \text{ if }w_{j}=0 \\ \{a_{j}w_{j}-c_{j}+\lambda\}&amp; \text{ if } w_{j}&gt;0 \end{cases} ={ajwjcjλ}{cλ,cj+λ}{ajwjcj+λ} if wj<0 if wj=0 if wj>0
  
  当 ∂ w j J ( w , λ ) = 0 \partial _{w_{j}}J(w,\lambda )=0 wjJ(w,λ)=0时最优解 
  
  所以 w ^ j ( c j ) = { ( c j + λ ) / a j  if  c j &lt; − λ 0  if  c j ∈ [ λ , λ ] ( c j − λ ) / a j  if  c j &gt; λ \hat{w}_{j}(c_{j}) =\begin{cases}(c_{j}+\lambda )/a_{j} &amp; \text{ if } c_{j}&lt;-\lambda \\ 0&amp; \text{ if } c_{j}\in [\lambda ,\lambda ] \\ (c_{j}-\lambda )/a_{j} &amp; \text{ if } c_{j}&gt;\lambda \end{cases} w^j(cj)=(cj+λ)/aj0(cjλ)/aj if cj<λ if cj[λ,λ] if cj>λ
  
  根据 c j c_{j} cj的不同, ∂ w j J ( w , λ ) = 0 \partial _{w_{j}}J(w,\lambda )=0 wjJ(w,λ)=0有以三种情况:
  这里写图片描述
  c、坐标轴下降法
  
     1)、预计算 a j = 2 ∑ i = 1 N x j 2 a_{j}=2\sum_{i=1}^{N}x_{j}^{2} aj=2i=1Nxj2
     2)、初始化参数 w \mathbf{w} w(全0或者随机)
     3)、循环直到收敛:
        --for j = 0,1,2…D
           ·计算 c j = 2 ∑ i − 1 N x i j ( y i − w − j T x i , − j ) c_{j}=2\sum_{i-1}^{N}x_{ij}(y_{i}-\mathbf{w}^{T}_{-j}\mathbf{x}_{i,-j}) cj=2i1Nxij(yiwjTxi,j)
           ·更新 w j : w ^ j ( c j ) = { ( c j + λ ) / a j  if  c j &lt; − λ 0  if  c j ∈ [ λ , λ ] ( c j − λ ) / a j  if  c j &gt; λ w_{j}:\hat{w}_{j}(c_{j}) =\begin{cases}(c_{j}+\lambda )/a_{j} &amp; \text{ if } c_{j}&lt;-\lambda \\ 0&amp; \text{ if } c_{j}\in [\lambda ,\lambda ] \\ (c_{j}-\lambda )/a_{j} &amp; \text{ if } c_{j}&gt;\lambda \end{cases} wj:w^j(cj)=(cj+λ)/aj0(cjλ)/aj if cj<λ if cj[λ,λ] if cj>λ
        --选择变化幅度最大的维度进行更新
   
  坐标轴下降法的特点:
    · 为了找到一个函数的局部极小值,在每次迭代中可以在当前点处沿一个坐标方向进行一维搜索
    ·整个过程中循环使用不同的坐标方向。一个周期的一维搜索迭代过程相当于一个梯度迭代
    
  坐标轴下降法需要注意是:
    · 梯度下降方法是利用目标函数的导数(梯度)来确定搜索方向的,而该梯度方向可能不与任何坐标轴平行。
    ·而坐标轴下降法是利用当前坐标系统进行搜索,不需要求目标函数的导数,只按照某一坐标方向进行搜索最小值。(在稀疏矩阵上的计算速度非常快,同时也是Lasso回归最快的解法)
    
#三、模型评估与模型选择#

当模型训练好后,需要在校验集上采用一些度量准则检查模型预测的效果,可通过两个步骤去实现:
   1)校验集的划分(train_test_split、交叉验证)
   2)评价指标(sklearn.metrics)

在选择预测性能最好的模型过程中,我们还需要对模型中的一些超参数进行设置,如线性回归模型中的正则参数λ,以及例如OLS中的特征的数目等参数去选择模型。但是我们去确定参数时,是通过给定一定范围的数值作为输入的,该参数的搜索范围我们一般在Scikitlearn中使用的是网格搜索(GridSearch),且在Scikitlearn中,已经将交叉验证与网格搜索合并为一个函数:sklearn.model_selection.GridSearchCV。
  在Scikitlearn中的modelselection模块提供的模型选择功能中,对于线性模型,留一交叉验证(N折交叉验证,亦称为leave-oneout cross-validation,LOOCV)有更简便的计算方式,因此Scikitlearn还提供了RidgeCV类和LassoCV类实现了这种方式。
  
  RidgeCV中超参数λ用alpha表示,RidgeCV(alphas=(0.1,1.0,10.0),
  fit_intercept=True,normalize=False,scoring=None,cv=None,gcv_mode=None,store_cv_values=False)
  
  LassoCV的使用与RidgeCV类似,Scikitlearn还提供一个与Lasso类似的LARS(least angle regression,最小角回归),二者仅仅是优化方法不同,目标函数相同。有一点需要注意的是当数据集中特征维数很多且存在共线性时,LassoCV更合适。
  
  模型的评价指标,在上一章中,我们已经确定了有如下几种准则:
   (1)、开平均方误差(rooted mean squared error , RMSE):RMSE= 1 N ∑ i = 1 N ( y i ^ − y i ) 2 \sqrt{\frac{1}{N}\sum_{i=1}^{N}(\hat{y_{i}}-y_{i})^{2}} N1i=1N(yi^yi)2
   (2)、平均绝对误差(mean absolute error, MAE):MAE= 1 N ∑ i = 1 N ∣ y i ^ − y i ∣ \frac{1}{N}\sum_{i=1}^{N}|\hat{y_{i}}-y_{i}| N1i=1Nyi^yi
   (3)、R2 score:即考虑预测值和真值之间的差异,也考虑了问题本身真值之间的差异(scikit learn线性回归的缺省评价准则)
         S S r e s = ∑ i = 1 N ( y i ^ − y i ) 2 SS_{res}=\sum_{i=1}^{N}(\hat{y_{i}}-y_{i})^{2} SSres=i=1N(yi^yi)2
         S S t o t = ∑ i = 1 N ( y i − y ˉ ) 2 SS_{tot}=\sum_{i=1}^{N}(y_{i}-\bar{y})^{2} SStot=i=1N(yiyˉ)2
         R 2 = 1 − S S r e s S S t o t R^{2}=1-\frac{SS_{res}}{SS_{tot}} R2=1SStotSSres
  所以, R 2 R^{2} R2越大,模型越好。
  
  我们的模型评估和选择,是在Scikitlearn上面做的,这个工具包封装了比较好的API,非常方便我们使用,下面是几种比较常见的API,有兴趣的话,可以去官方文档看下。
这里写图片描述

在模型的评价中,除了上述的指标外,我们也可以通过可视化将更为直观的将结果显示出来,比如
  1)检查残差的分布
  2)打印出预测值与真值的散点图
  
 比如波士顿房价中预测残差的分布图:
这里写图片描述
前面我们已经说过,极大似然估计假设残差的分布正是为0均值的正态分布。上图中,残差也近似0均值的正太分布,说明拟合的还可以。
在看下预测值与真值的散点图:
这里写图片描述
当散点图如上所示,说明预测值和真值之间相关性很强,也说明模型效果愈佳。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值