一文搞懂多元线性回归 | 多项式回归 | 岭回归 | Lasso回归原理推导,L1、L2正则化以及代码实现


前言


一、多元线性回归

1、问题描述

在多元线性回归中,我们的目标是使用一组输入变量(或特征) x 1 , x 2 , . . . , x D x_1, x_2, ..., x_D x1,x2,...,xD 来预测一个输出变量 y y y

2、模型建模

对于第 i i i条数据,其回归方程可以表示为:

y i = w 0 + w 1 x i 1 + w 2 x i 2 + . . . + w D x i D + ϵ i \begin{equation} y_i = w_0 + w_1 x_{i1} + w_2 x_{i2} + ... +w_D x_{iD} + \epsilon_i \end{equation} yi=w0+w1xi1+w2xi2+...+wDxiD+ϵi

其中, w j w_j wj 是第 j j j 个回归系数, ϵ i \epsilon_i ϵi 是第 i i i 个观察的误差项。 w 0 w_0 w0 是截距项,也可以看作是当所有输入都为0时的输出。

误差项: 我们假设误差项 ϵ i \epsilon_i ϵi 服从均值为0、方差为 β − 1 \beta^{-1} β1 的高斯分布,即
ϵ i ∼ N ( 0 , β − 1 ) \begin{equation} \epsilon_i \sim \mathcal{N}(0, \beta^{-1}) \end{equation} ϵiN(0,β1)

这个假设意味着我们的模型预测有误差,且这些误差是随机的、独立的,并且遵循正态分布。

基函数: 在多元线性回归中,我们还可以引入基函数 ϕ ( x ) \phi(x) ϕ(x),以便我们可以对输入进行非线性转换。在这种情况下,我们的模型变为:

y i = w 0 + w 1 ϕ 1 ( x i ) + w 2 ϕ 2 ( x i ) + . . . + w D ϕ D ( x i ) + ϵ i \begin{equation} y_i =w_0 + w_1 \phi_1(x_i) + w_2 \phi_2(x_i) + ... + w_D \phi_D(x_i) + \epsilon_i \end{equation} yi=w0+w1ϕ1(xi)+w2ϕ2(xi)+...+wDϕD(xi)+ϵi

这使我们可以使用线性模型来拟合非线性关系。定义 ϕ 0 ( x ) = 1 \phi_0(x)=1 ϕ0(x)=1 ,其可以简单的表示为:
y i = ∑ j = 0 D w j ϕ j ( x i ) + ϵ i \begin{equation} y_i = \sum_{j=0}^{D} w_j \phi_j(x_i) + \epsilon_i \end{equation} yi=j=0Dwjϕj(xi)+ϵi

这里我们并不关心基函数是什么,并不影响模型的求解,常见的基函数有:

  1. 高斯基函数
    ϕ j ( x ) = e x p { − ( x − μ j ) 2 2 s 2 } \begin{equation} \phi_j(x) = exp\{-\frac{(x-\mu_j)^2}{2s^2}\} \end{equation} ϕj(x)=exp{2s2(xμj)2}
  2. Sigmoid 基函数

ϕ j ( x ) = 1 1 + e x p { − ( x − μ j ) / s } \begin{equation} \phi_j(x) = \frac{1}{1 + exp\{-(x-\mu_j)/s\}} \end{equation} ϕj(x)=1+exp{(xμj)/s}1
3. 双曲正切函数,简称 Tanh, t a n h ( x ) = 2 σ ( 2 x ) − 1 tanh(x)=2 \sigma(2x)-1 tanh(x)=2σ(2x)1
ϕ ( x ) = tanh ⁡ ( x ) = e x p { ( x − μ j ) / s } − e x p { − ( x − μ j ) / s } e x p { ( x − μ j ) / s } + e x p { − ( x − μ j ) / s } \begin{equation} \phi(x) = \tanh(x) = \frac{exp\{(x-\mu_j)/s\} - exp\{-(x-\mu_j)/s\}}{exp\{(x-\mu_j)/s\} + exp\{-(x-\mu_j)/s\}} \end{equation} ϕ(x)=tanh(x)=exp{(xμj)/s}+exp{(xμj)/s}exp{(xμj)/s}exp{(xμj)/s}

3、问题求解

3.1 精确解

已知: t = y ( x , w ) + ϵ t=y(x,w)+\epsilon t=y(x,w)+ϵ ϵ ∼ \epsilon\sim ϵ是一个高斯噪声 ϵ ∼ N ( 0 , β − 1 ) \epsilon\sim \mathcal{N}(0, \beta^{-1}) ϵN(0,β1),样本 X = { x 1 , ⋅ ⋅ ⋅ , x N } , t = { t 1 , ⋅ ⋅ ⋅ , t N } = { t n ∣ n = 1 ⋅ ⋅ ⋅ N } X=\{x_1,\cdot\cdot\cdot,x_N\},t=\{t_1,\cdot\cdot\cdot,t_N\}=\{t_n|n=1\cdot\cdot\cdot N\} X={x1,,xN}t={t1,,tN}={tnn=1N}

因为 ϵ \epsilon ϵ 是高斯分布的,所以 t t t 也会是高斯分布的,因为 t t t 是由 y ( x , w ) y(x, w) y(x,w) ϵ \epsilon ϵ 的和构成的,而 y ( x , w ) y(x, w) y(x,w) 是确定的,不会引入额外的随机性,即:

p ( t ∣ x , w , β ) = N ( t ∣ y ( x , w ) , β − 1 ) \begin{equation} p(t|x,w,\beta) = \mathcal{N}(t|y(x,w), \beta^{-1}) \end{equation} p(tx,w,β)=N(ty(x,w),β1)

ϕ i ( x i ) = x i \phi_i(x_i)=x_i ϕi(xi)=xi时, t t t在给定的 x x x的情况下是服从 N ( t ∣ y ( x , w ) , β − 1 ) \mathcal{N}(t|y(x,w), \beta^{-1}) N(ty(x,w),β1)
在这里插入图片描述
那么在给定数据集 X X X t t t的情况下,其释然函数为:
p ( t ∣ X , w , β ) = ∏ n = 1 N N ( t n ∣ w T ϕ ( x n ) , β − 1 ) \begin{equation} p(t|X,w,\beta) = \prod\limits^{N}_{n=1}\mathcal{N}(t_n|w^T\phi(x_n), \beta^{-1}) \end{equation} p(tX,w,β)=n=1NN(tnwTϕ(xn),β1)
使用极大释然估计的方法求参数 w w w β \beta β,那么对释然函数的对数求其最大时的参数 w w w β \beta β,即:

ln p ( t ∣ X , w , β ) = ∑ n = 1 N ln N ( t n ∣ w T ϕ ( x n ) , β − 1 ) = − N 2 ln ⁡ ( 2 π ) + N 2 ln ⁡ ( β − 1 2 ∑ n = 1 N β { t n − w T ϕ ( x n ) } 2 \begin{equation} \begin{align*} \text{ln}p(t|X,w,\beta) &= \sum\limits^{N}_{n=1}\text{ln}\mathcal{N}(t_n|w^T\phi(x_n), \beta^{-1}) \\ &= -\frac{N}{2}\ln(2\pi) + \frac{N}{2}\ln(\beta - \frac{1}{2}\sum\limits_{n=1}^{N}\beta\{t_n - w^T\phi(x_n)\}^2 \end{align*} \end{equation} lnp(tX,w,β)=n=1NlnN(tnwTϕ(xn),β1)=2Nln(2π)+2Nln(β21n=1Nβ{tnwTϕ(xn)}2

求解w
此时我们发现求参数 w w w时即最小化 E D ( w ) = 1 2 ∑ n = 1 N { t n − w T ϕ ( x n ) } 2 E_D(w)=\frac{1}{2}\sum\limits_{n=1}^{N}\{t_n - w^T\phi(x_n)\}^2 ED(w)=21n=1N{tnwTϕ(xn)}2,其实就等价于最小化MSE均方误差。那么 ln p ( t ∣ X , w , β ) \text{ln}p(t|X,w,\beta) lnp(tX,w,β) w w w的梯度为:

∇ ln p ( t ∣ X , w , β ) = β ∑ n = 1 N { t n − w T ϕ ( x ) } ϕ ( x n ) T \begin{equation} \nabla\text{ln}p(t|X,w,\beta)=\beta\sum\limits_{n=1}^{N}\{t_n - w^T\phi(x)\}\phi(x_n)^T \end{equation} lnp(tX,w,β)=βn=1N{tnwTϕ(x)}ϕ(xn)T
令导数等于0
∇ ln p ( t ∣ X , w , β ) = β ∑ n = 1 N { t n − w T ϕ ( x n ) } ϕ ( x n ) T = 0 \begin{equation} \nabla\text{ln}p(t|X,w,\beta)=\beta\sum\limits_{n=1}^{N}\{t_n - w^T\phi(x_n)\}\phi(x_n)^T=0 \end{equation} lnp(tX,w,β)=βn=1N{tnwTϕ(xn)}ϕ(xn)T=0
我们可以进行如下推导以求解 w w w

∑ n = 1 N t n ϕ ( x n ) T − ∑ n = 1 N w T ϕ ( x n ) ϕ ( x n ) T = 0 \begin{equation} \sum_{n=1}^{N} t_n\phi(x_n)^T - \sum_{n=1}^{N} w^T\phi(x_n)\phi(x_n)^T = 0 \end{equation} n=1Ntnϕ(xn)Tn=1NwTϕ(xn)ϕ(xn)T=0

∑ n = 1 N t n ϕ ( x n ) T − w T ( ∑ n = 1 N ϕ ( x n ) ϕ ( x n ) T ) = 0 \begin{equation} \sum_{n=1}^{N} t_n\phi(x_n)^T - w^T\left(\sum_{n=1}^{N}\phi(x_n)\phi(x_n)^T\right) = 0 \end{equation} n=1Ntnϕ(xn)TwT(n=1Nϕ(xn)ϕ(xn)T)=0

w T ( ∑ n = 1 N ϕ ( x n ) ϕ ( x n ) T ) = ∑ n = 1 N t n ϕ ( x n ) T \begin{equation} w^T\left(\sum_{n=1}^{N}\phi(x_n)\phi(x_n)^T\right) = \sum_{n=1}^{N} t_n\phi(x_n)^T \end{equation} wT(n=1Nϕ(xn)ϕ(xn)T)=n=1Ntnϕ(xn)T

w = ( ∑ n = 1 N ϕ ( x n ) ϕ ( x n ) T ) − 1 ∑ n = 1 N t n ϕ ( x n ) \begin{equation} w = \left(\sum_{n=1}^{N}\phi(x_n)\phi(x_n)^T\right)^{-1} \sum_{n=1}^{N} t_n\phi(x_n) \end{equation} w=(n=1Nϕ(xn)ϕ(xn)T)1n=1Ntnϕ(xn)
我们把它写成矩阵的形式,令 Φ = { ϕ ( x 1 ) T , ϕ ( x 2 ) T , ⋅ ⋅ ⋅ , ϕ ( x n ) T } T \Phi=\{\phi(x_1)^T, \phi(x_2)^T,\cdot\cdot\cdot,\phi(x_n)^T\}^T Φ={ϕ(x1)T,ϕ(x2)T,,ϕ(xn)T}T
Φ = [ ϕ 0 ( x 1 ) ϕ 1 ( x 1 ) ⋯ ϕ D ( x 1 ) ϕ 0 ( x 2 ) ϕ 1 ( x 2 ) ⋯ ϕ D ( x 2 ) ⋮ ⋮ ⋱ ⋮ ϕ 0 ( x N ) ϕ 1 ( x N ) ⋯ ϕ D ( x N ) ] \begin{equation} \Phi = \begin{bmatrix} \phi_0(x_1) & \phi_1(x_1) & \cdots & \phi_D(x_1) \\ \phi_0(x_2) & \phi_1(x_2) & \cdots & \phi_D(x_2) \\ \vdots & \vdots & \ddots & \vdots \\ \phi_0(x_N) & \phi_1(x_N) & \cdots & \phi_D(x_N) \end{bmatrix} \end{equation} Φ= ϕ0(x1)ϕ0(x2)ϕ0(xN)ϕ1(x1)ϕ1(x2)ϕ1(xN)ϕD(x1)ϕD(x2)ϕD(xN)
ϕ ( x n ) T = { ϕ 0 ( x n ) , ⋯   , ϕ D ( x n ) } \begin{equation} \phi(x_n)^T=\{\phi_0(x_n),\cdots,\phi_D(x_n)\} \end{equation} ϕ(xn)T={ϕ0(xn),,ϕD(xn)}
用矩阵的形式表示为:
w = ( Φ T Φ ) − 1 Φ T t \begin{equation} w=(\Phi^T\Phi)^{-1}\Phi^Tt \end{equation} w=(ΦTΦ)1ΦTt
其中 Φ † = ( Φ T Φ ) − 1 Φ T \Phi^{\dagger}=(\Phi^T\Phi)^{-1}\Phi^T Φ=(ΦTΦ)1ΦT为伪逆矩阵
w w w w 0 w_0 w0是截距,我们此时可以将其拿出来讨论
E D ( w ) = 1 2 ∑ n = 1 N { t n − w 0 − ∑ j = 1 D w j ϕ j ( x n ) } 2 \begin{equation} E_D(w)=\frac{1}{2}\sum\limits_{n=1}^{N}\{t_n - w_0 - \sum\limits^{D}_{j=1}w_j\phi_j(x_n)\}^2 \end{equation} ED(w)=21n=1N{tnw0j=1Dwjϕj(xn)}2
首先,我们对 w 0 w_0 w0 求偏导:
∂ E D ( w ) ∂ w 0 = − ∑ n = 1 N { t n − w 0 − ∑ j = 1 D w j ϕ j ( x n ) } \begin{equation} \frac{\partial E_D(w)}{\partial w_0} = -\sum_{n=1}^{N}\{t_n - w_0 - \sum_{j=1}^{D}w_j\phi_j(x_n)\} \end{equation} w0ED(w)=n=1N{tnw0j=1Dwjϕj(xn)}
然后,我们令该偏导数等于0,得到:
∑ n = 1 N { t n − w 0 − ∑ j = 1 D w j ϕ j ( x n ) } = 0 \begin{equation} \sum_{n=1}^{N}\{t_n - w_0 - \sum_{j=1}^{D}w_j\phi_j(x_n)\} = 0 \end{equation} n=1N{tnw0j=1Dwjϕj(xn)}=0
接着,我们可以将 w 0 w_0 w0 提出来,得到:
N w 0 = ∑ n = 1 N t n − ∑ n = 1 N ∑ j = 1 D w j ϕ j ( x n ) \begin{equation} Nw_0 = \sum_{n=1}^{N}t_n - \sum_{n=1}^{N}\sum_{j=1}^{D}w_j\phi_j(x_n) \end{equation} Nw0=n=1Ntnn=1Nj=1Dwjϕj(xn)
假设我们已经求出了 w j w_j wj j = 1 , 2 , . . . , D j = 1, 2, ..., D j=1,2,...,D,那么 w 0 w_0 w0 的解为:
w 0 = 1 N ( ∑ n = 1 N t n − ∑ n = 1 N ∑ j = 1 D w j ϕ j ( x n ) ) = t ˉ − ∑ j = 1 D w j ϕ j ‾ \begin{equation} \begin{align*} w_0 &= \frac{1}{N}\left(\sum_{n=1}^{N}t_n - \sum_{n=1}^{N}\sum_{j=1}^{D}w_j\phi_j(x_n)\right) \\ &=\bar{t} - \sum_{j=1}^{D}w_j\overline{\phi_j} \end{align*} \end{equation} w0=N1(n=1Ntnn=1Nj=1Dwjϕj(xn))=tˉj=1Dwjϕj
从此可以看出 w 0 w_0 w0就是目标值的平均值与训练集上基函数值的加权平均值之差
求解 β \beta β
β \beta β求导得:
− N 2 β − 1 2 ∑ n = 1 N { t n − w T ϕ ( x n ) } 2 \begin{equation} -\frac{N}{2\beta} -\frac{1}{2}\sum_{n=1}^{N}\{t_n - w^T\phi(x_n)\}^2 \end{equation} 2βN21n=1N{tnwTϕ(xn)}2
令导数等于0,即得到:
β − 1 = ∑ n = 1 N { t n − w T ϕ ( x n ) } 2 N \begin{equation} \beta^{-1} = \frac{\sum_{n=1}^{N}\{t_n - w^T\phi(x_n)\}^2}{N} \end{equation} β1=Nn=1N{tnwTϕ(xn)}2
由此可见 β − 1 \beta^{-1} β1即为残差。

3.2 梯度下降法

X X X的数据量很大时,求 w w w的精确解中的 Φ † \Phi^{\dagger} Φ中的逆矩阵的复杂度太高,可能无法求解,使用梯度下降法可以求得 w w w的近似解。
w t + 1 = w t − η ∇ E n \begin{equation} w_{t+1} = w_{t}-\eta\nabla E_n \end{equation} wt+1=wtηEn
∇ E n = − ( t n − w t T ϕ ( x n ) ) ϕ ( x n ) \begin{equation} \nabla E_n=-(t_n-w_t^T\phi(x_n))\phi(x_n) \end{equation} En=(tnwtTϕ(xn))ϕ(xn)

3.3 正则化

3.3.1 ∣ ∣ w ∣ ∣ 2 ||w||^2 ∣∣w2正则化

我们通过最小化 E D ( w ) + λ E w ( w ) E_D(w)+\lambda E_w(w) ED(w)+λEw(w)进行正则化求解参数 w w w
E w ( w ) = 1 2 w T w \begin{equation} E_w(w)=\frac{1}{2}w^Tw \end{equation} Ew(w)=21wTw

w w w的精确解:对 w w w求导,并等于0得到:
∑ n = 1 N t n ϕ ( x n ) T − ∑ n = 1 N w T ϕ ( x n ) ϕ ( x n ) T + λ w = 0 \begin{equation} \sum_{n=1}^{N} t_n\phi(x_n)^T - \sum_{n=1}^{N} w^T\phi(x_n)\phi(x_n)^T + \lambda w= 0 \end{equation} n=1Ntnϕ(xn)Tn=1NwTϕ(xn)ϕ(xn)T+λw=0

∑ n = 1 N t n ϕ ( x n ) T − w T ( ∑ n = 1 N ϕ ( x n ) ϕ ( x n ) T ) + λ w = 0 \begin{equation} \sum_{n=1}^{N} t_n\phi(x_n)^T - w^T\left(\sum_{n=1}^{N}\phi(x_n)\phi(x_n)^T\right) + \lambda w = 0 \end{equation} n=1Ntnϕ(xn)TwT(n=1Nϕ(xn)ϕ(xn)T)+λw=0

w T ( ∑ n = 1 N ϕ ( x n ) ϕ ( x n ) T + λ I ) = ∑ n = 1 N t n ϕ ( x n ) T \begin{equation} w^T\left(\sum_{n=1}^{N}\phi(x_n)\phi(x_n)^T+\lambda I \right) = \sum_{n=1}^{N} t_n\phi(x_n)^T \end{equation} wT(n=1Nϕ(xn)ϕ(xn)T+λI)=n=1Ntnϕ(xn)T

w = ( ∑ n = 1 N ϕ ( x n ) ϕ ( x n ) T + λ I ) − 1 ∑ n = 1 N t n ϕ ( x n ) \begin{equation} w = \left(\sum_{n=1}^{N}\phi(x_n)\phi(x_n)^T+\lambda I \right)^{-1} \sum_{n=1}^{N} t_n\phi(x_n) \end{equation} w=(n=1Nϕ(xn)ϕ(xn)T+λI)1n=1Ntnϕ(xn)
用矩阵的形式表示为:
w = ( Φ T Φ + λ I ) − 1 Φ T t \begin{equation} w=(\Phi^T\Phi+\lambda I )^{-1}\Phi^Tt \end{equation} w=(ΦTΦ+λI)1ΦTt
梯度下降法
加入正则化后, w w w使用梯度下降进行求解:
w t + 1 = w t − η ∇ E n − λ ∇ E w \begin{equation} w_{t+1} = w_{t}-\eta\nabla E_n-\lambda \nabla E_w \end{equation} wt+1=wtηEnλEw
∇ E n = − ( t n − w t T ϕ ( x n ) ) ϕ ( x n ) \begin{equation} \nabla E_n=-(t_n-w_t^T\phi(x_n))\phi(x_n) \end{equation} En=(tnwtTϕ(xn))ϕ(xn)
∇ E w ( w ) = w t \begin{equation} \nabla E_w(w)= w_t \end{equation} Ew(w)=wt
w t + 1 = w t + η ( t n − w t T ϕ ( x n ) ) ϕ ( x n ) − λ w t \begin{equation} w_{t+1} = w_{t} + \eta (t_n - w_t^T \phi(x_n)) \phi(x_n) - \lambda w_t \end{equation} wt+1=wt+η(tnwtTϕ(xn))ϕ(xn)λwt

3.3.2 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣正则化

Lasso回归就是多元线性回归加上了 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣正则化,求解过程参考Lasso

代码实现


二、多项式回归

1、问题描述

多项式拟合是一种数学与统计学中常见的技术,主要用于通过一个多项式函数来近似描述一组数据点的分布趋势。它是回归分析的一种,也叫多项式拟合,是机器学习和数据分析中的重要工具。
这你我门只考虑一维的数据,具体来说,如果我们有一组数据点 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) } D=\{(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\} D={(x1,y1),(x2,y2),,(xn,yn)},我们可能想找到一个多项式函数 P ( x , w ) = w 0 + w 1 x + w 2 x 2 + … + w m x m P(x,w) = w_0 + w_1x + w_2x^2 + \ldots + w_mx^m P(x,w)=w0+w1x+w2x2++wmxm,使得该函数在这些点上的值与实际的 y y y 值尽可能接近。这就是多项式拟合的主要目标。

2、模型建模

多项式回归方程:
P ( x , w ) = w 0 + w 1 x + w 2 x 2 + … + w m x m \begin{equation} P(x,w) = w_0 + w_1x + w_2x^2 + \ldots + w_mx^m \end{equation} P(x,w)=w0+w1x+w2x2++wmxm
目标:最小化均方误差 E D ( w ) E_D(w) ED(w)
E D ( w ) = 1 2 ∑ n = 1 N { P ( x n , w ) − t n } 2 \begin{equation} E_D(w)=\frac{1}{2} \sum\limits^{N}_{n=1}\{P(x_n,w)-t_n\}^2 \end{equation} ED(w)=21n=1N{P(xn,w)tn}2

3、模型求解

已知:数据集 x = { x 1 , x 2 , ⋯   , x N } , t = { t 1 , t 2 , ⋯   , t N } x=\{x_1,x_2,\cdots,x_N\},t=\{t_1,t_2,\cdots,t_N\} x={x1,x2,,xN},t={t1,t2,,tN},回归方程 P ( x , w ) = w 0 + w 1 x + w 2 x 2 + … + w m x m P(x,w) = w_0 + w_1x + w_2x^2 + \ldots + w_mx^m P(x,w)=w0+w1x+w2x2++wmxm,目标 w ∗ = arg min ⁡ w E D ( w ) = arg min ⁡ w 1 2 ∑ n = 1 N { P ( x n , w ) − t n } 2 w^* = \underset{w}{\argmin} E_D(w)= \underset{w}{\argmin}\frac{1}{2} \sum\limits^{N}_{n=1}\{P(x_n,w)-t_n\}^2 w=wargminED(w)=wargmin21n=1N{P(xn,w)tn}2

3.1精确解

我们将模型的预测值带入 E D ( w ) E_D(w) ED(w)中:
E D ( w ) = 1 2 ∑ n = 1 N { w 0 + w 1 x n + w 2 x n 2 + … + w m x n m − t n } 2 \begin{equation} E_D(w)=\frac{1}{2} \sum\limits^{N}_{n=1}\{ w_0 + w_1x_n + w_2x_n^2 + \ldots + w_mx_n^m-t_n\}^2 \end{equation} ED(w)=21n=1N{w0+w1xn+w2xn2++wmxnmtn}2
分别对w求导得到:
∂ E D ( w ) ∂ w i = ∑ n = 1 N x n i ( w 0 + w 1 x n + w 2 x n 2 + … + w m x n m − t n ) \begin{equation} \frac{\partial E_D(w)}{\partial w_i} = \sum_{n=1}^{N} x_n^i (w_0 + w_1 x_n + w_2 x_n^2 + \ldots + w_m x_n^m - t_n) \end{equation} wiED(w)=n=1Nxni(w0+w1xn+w2xn2++wmxnmtn)
一共有 m + 1 m+1 m+1个方程和 m + 1 m+1 m+1个参数,用矩阵或者消元法是可以求解的,但是我们定睛一看,如果我们把 x n = [ 1 , x n , x n 2 , … , x n m ] T \mathbf{x}_n = [1, x_n, x_n^2, \ldots, x_n^m]^T xn=[1,xn,xn2,,xnm]T看成多元线性回规中的 x n = [ 1 , x n 1 , x n 2 , … , x n m ] T \mathbf{x}_n = [1, x_{n1}, x_{n2}, \ldots, x_{nm}]^T xn=[1,xn1,xn2,,xnm]T w = [ w 0 , w 1 , … , w m ] T \mathbf{w} = [w_0, w_1, \ldots, w_m]^T w=[w0,w1,,wm]T仍然为多元线性回归中的 w w w,那么问题就变成了求解多元线性回归,那么 w w w的解就是 w = ( X T X ) − 1 X T t \mathbf{w} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{t} w=(XTX)1XTt,那么这里的 X \mathbf{X} X t \mathbf{t} t分别为
X = [ 1 x 1 x 1 2 … x 1 m 1 x 2 x 2 2 … x 2 m ⋮ ⋮ ⋮ ⋱ ⋮ 1 x N x N 2 … x N m ] \begin{equation} \mathbf{X} = \begin{bmatrix} 1 & x_1 & x_1^2 & \ldots & x_1^m \\ 1 & x_2 & x_2^2 & \ldots & x_2^m \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_N & x_N^2 & \ldots & x_N^m \end{bmatrix} \end{equation} X= 111x1x2xNx12x22xN2x1mx2mxNm
t = [ t 1 t 2 ⋮ t N ] \begin{equation} \mathbf{t} = \begin{bmatrix} t_1 \\ t_2 \\ \vdots \\ t_N \end{bmatrix} \end{equation} t= t1t2tN
在这里我们也可以直接使用矩阵的形式推导一下参数 w \mathbf{w} w的结果,那么 E D ( w ) E_D(w) ED(w)可以写成:
E D ( w ) = ( X w − t ) T ( X w − t ) = w T X T X w − 2 t T X w + t T t \begin{equation} \begin{align*} E_D(w)&=(\mathbf{X}\mathbf{w}-\mathbf{t})^T(\mathbf{X}\mathbf{w}-\mathbf{t}) \\ &= \mathbf{w}^T \mathbf{X}^T \mathbf{X} \mathbf{w} - 2 \mathbf{t}^T \mathbf{X} \mathbf{w} + \mathbf{t}^T \mathbf{t} \end{align*} \end{equation} ED(w)=(Xwt)T(Xwt)=wTXTXw2tTXw+tTt
然后,我们可以分别计算这三项关于 w \mathbf{w} w 的导数:

  1. 对于第一项 w T X T X w \mathbf{w}^T \mathbf{X}^T \mathbf{X} \mathbf{w} wTXTXw,我们可以将其看作是 w \mathbf{w} w X T X w \mathbf{X}^T \mathbf{X} \mathbf{w} XTXw 的点积,它的导数为:

∂ ∂ w w T X T X w = 2 X T X w \begin{equation} \frac{\partial}{\partial \mathbf{w}} \mathbf{w}^T \mathbf{X}^T \mathbf{X} \mathbf{w} = 2 \mathbf{X}^T \mathbf{X} \mathbf{w} \end{equation} wwTXTXw=2XTXw

  1. 对于第二项 − 2 t T X w -2 \mathbf{t}^T \mathbf{X} \mathbf{w} 2tTXw,它是 w \mathbf{w} w 的线性函数,它的导数为:

∂ ∂ w − 2 t T X w = − 2 X T t \begin{equation} \frac{\partial}{\partial \mathbf{w}} -2 \mathbf{t}^T \mathbf{X} \mathbf{w} = -2 \mathbf{X}^T \mathbf{t} \end{equation} w2tTXw=2XTt

  1. 对于第三项 t T t \mathbf{t}^T \mathbf{t} tTt,它是常数,对 w \mathbf{w} w 的导数为0。

因此,误差函数 E D ( w ) E_D(w) ED(w) 关于 w \mathbf{w} w 的梯度为:

∇ E D ( w ) = 2 X T X w − 2 X T t \begin{equation} \nabla E_D(w) = 2 \mathbf{X}^T \mathbf{X} \mathbf{w} - 2 \mathbf{X}^T \mathbf{t} \end{equation} ED(w)=2XTXw2XTt
最后令 ∇ E D ( w ) = 0 \nabla E_D(w) =0 ED(w)=0即可以解得 w = ( X T X ) − 1 X T t \mathbf{w} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{t} w=(XTX)1XTt

3.2正则化

多项式拟合如果多项式的次数偏高,很容易过拟合,我们也可以通过正则化进行求解,其求解过程与多元线性回归相同。
E D ( w ) = ( X w − t ) T ( X w − t ) \begin{equation} E_D(w)=(\mathbf{X}\mathbf{w}-\mathbf{t})^T(\mathbf{X}\mathbf{w}-\mathbf{t}) \end{equation} ED(w)=(Xwt)T(Xwt)
E w ( w ) = 1 2 w T w \begin{equation} E_w(w)=\frac{1}{2}\mathbf{w}^T\mathbf{w} \end{equation} Ew(w)=21wTw
w = ( X T X + λ I ) − 1 X T t \begin{equation} \mathbf{w}=(\mathbf{X}^T\mathbf{X}+\lambda \mathbf{I})^{-1}\mathbf{X}^T\mathbf{t} \end{equation} w=(XTX+λI)1XTt

4、代码实现


三、Lasso回归

Lasso回归就是多元线性回归加上了 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣正则化,在这里我们不再介绍其背景和建模部门,其求解过程在多元线性回归的基础加上了 L 1 L_1 L1正则化,即:
L = R S S ( w ) + E w ( w ) = ( X w − t ) T ( X w − t ) + λ ∣ ∣ w ∣ ∣ 1 = ∑ n = 1 N { t n − w T ϕ ( x n ) } 2 + λ ∣ ∣ w ∣ ∣ 1 \begin{equation} \begin{align*} \mathcal{L} &= RSS(w)+E_w(w) \\ &= (Xw-t)^T(Xw-t)+\lambda||w||_1 \\ &=\sum\limits_{n=1}^{N}\{t_n-w^T\phi (x_n)\}^2+\lambda||w||_1 \end{align*} \end{equation} L=RSS(w)+Ew(w)=(Xwt)T(Xwt)+λ∣∣w1=n=1N{tnwTϕ(xn)}2+λ∣∣w1

如果这里用的 M S E MSE MSE代替 R S S RSS RSS最后的结果也会差一个系数 N N N,这里前面也会经常使用 E D ( w ) E_D(w) ED(w),会差一个系数2

1、模型求解

首先看 R S S RSS RSS部分 R S S RSS RSS w j w_j wj进行求导得:
∇ R S S = − 2 ∑ n = 1 N ϕ j ( x n ) { t n − w T ϕ ( x n ) } = − 2 ∑ n = 1 N ϕ j ( x n ) { t n − ∑ k = 1 m w k ϕ k ( x n ) } = − 2 ∑ n = 1 N ϕ j ( x n ) { t n − ∑ k = 1 , j ≠ k m w k ϕ k ( x n ) − w j ϕ j ( x n ) } = − 2 ∑ n = 1 N ϕ j ( x n ) { t n − ∑ k = 1 , j ≠ k m w k ϕ k ( x n ) } + 2 ∑ n = 1 N w j ϕ j ( x n ) 2 } = − 2 ρ j + 2 w j z j \begin{equation} \begin{align*} \nabla RSS &= -2\sum\limits_{n=1}^{N}\phi_j (x_n)\{t_n-w^T\phi (x_n)\} \\ &= -2\sum\limits_{n=1}^{N}\phi_j (x_n)\{t_n- \sum\limits_{k=1}^{m}w_k\phi_k (x_n)\} \\ &= -2\sum\limits_{n=1}^{N}\phi_j (x_n)\{t_n- \sum\limits_{k=1,j\neq k}^{m}w_k\phi_k (x_n)- w_j\phi_j (x_n)\} \\ &= -2\sum\limits_{n=1}^{N}\phi_j (x_n)\{t_n- \sum\limits_{k=1,j\neq k}^{m}w_k\phi_k (x_n)\}+2 \sum\limits_{n=1}^{N} w_j\phi_j (x_n)^2\} \\ &= -2 \rho_j + 2w_jz_j \end{align*} \end{equation} RSS=2n=1Nϕj(xn){tnwTϕ(xn)}=2n=1Nϕj(xn){tnk=1mwkϕk(xn)}=2n=1Nϕj(xn){tnk=1,j=kmwkϕk(xn)wjϕj(xn)}=2n=1Nϕj(xn){tnk=1,j=kmwkϕk(xn)}+2n=1Nwjϕj(xn)2}=2ρj+2wjzj
∇ R S S = 0 \nabla RSS = 0 RSS=0得到 w j = ρ j / z j w_j=\rho_j/z_j wj=ρj/zj
由于 L 1 L_1 L1是不可导的,我们这里使用 L 1 L_1 L1 w j w_j wj次梯度,即:

∇ L 1 = { λ , w j > 0 [ − λ , λ ] , w j = 0 − λ w j < 0 \begin{equation} \nabla L_1= \left\{ \begin{aligned} & \lambda, & w_j>0\\ & [-\lambda, \lambda], &w_j=0\\ & -\lambda & w_j<0 \end{aligned} \right. \end{equation} L1= λ,[λ,λ],λwj>0wj=0wj<0
∇ R S S \nabla RSS RSS ∇ L 1 \nabla L_1 L1合起来:
∇ L = − 2 ρ j + 2 w j z j + { λ , w j > 0 [ − λ , λ ] , w j = 0 − λ w j < 0 \begin{equation} \nabla \mathcal{L} = -2 \rho_j + 2w_jz_j+ \left\{ \begin{aligned} & \lambda, & w_j>0\\ & [-\lambda, \lambda], &w_j=0\\ & -\lambda & w_j<0 \end{aligned} \right. \end{equation} L=2ρj+2wjzj+ λ,[λ,λ],λwj>0wj=0wj<0
∇ L = { − 2 ρ j + 2 w j z j + λ , w j > 0 [ − 2 ρ j − λ , − 2 ρ j + λ ] , w j = 0 − 2 ρ j + 2 w j z j + − λ w j < 0 \begin{equation} \nabla \mathcal{L} = \left\{ \begin{aligned} &-2 \rho_j + 2w_jz_j+ \lambda, & w_j>0\\ &[-2 \rho_j -\lambda, -2 \rho_j +\lambda], &w_j=0\\ &-2 \rho_j + 2w_jz_j+ -\lambda & w_j<0 \end{aligned} \right. \end{equation} L= 2ρj+2wjzj+λ,[2ρjλ,2ρj+λ],2ρj+2wjzj+λwj>0wj=0wj<0
∇ L = 0 \nabla \mathcal{L} = 0 L=0得到 w j w_j wj
w j = { ρ j − λ / 2 z j , w j > 0 0 , w j = 0 ρ j + λ / 2 z j w j < 0 \begin{equation} w_j = \left\{ \begin{aligned} & \frac{\rho_j - \lambda/2}{z_j}, & w_j>0\\ &0, &w_j=0\\ & \frac{\rho_j + \lambda/2}{z_j}& w_j<0 \end{aligned} \right. \end{equation} wj= zjρjλ/2,0,zjρj+λ/2wj>0wj=0wj<0
在这里插入图片描述
从上面的图可以看出,当 ∣ ρ j ∣ < λ 2 |\rho_j|<\frac{\lambda}{2} ρj<2λ w j w_j wj会缩水为0,而如果只有 R S S RSS RSS做为损失的时候,只有 ρ j = 0 \rho_j=0 ρj=0 w j w_j wj才会为0,因此lasso回归求得参数相比于正常回归对参数进行了裁剪,并且有更多的机会等于0,参数也更为稀疏。
Lasso回归使用坐标下降法更新参数 w w w,通过求解上述 w j w_j wj求解其中是的损失下降最大的进行更新,其他 w k w_k wk保持不变,直到收敛。

正则化的几何解释

L 1 L_1 L1正则化也可以写成有约束的形式:
minimize w 1 2 ( X w − t ) T ( X w − t ) subject to ∣ ∣ w ∣ ∣ 1 ≤ ϵ \begin{equation} \begin{aligned} &\underset{w}{\text{minimize}} & & \frac{1}{2}(Xw-t)^T(Xw-t) \\ &\text{subject to} & & ||w||_1 \leq \epsilon \end{aligned} \end{equation} wminimizesubject to21(Xwt)T(Xwt)∣∣w1ϵ
假设 w = { w 1 , w 2 } w=\{w_1,w_2\} w={w1,w2}是一个二维的参数,那么我们可以在平面坐标上表示出 w w w的可行域与目标。
首先我们了解一下二次型图像的概念,目标函数是一个二次型 ( X w − t ) T ( X w − t ) = w T X T X w − 2 t T X w + w T w = l o s s (Xw-t)^T(Xw-t)=w^TX^TXw-2t^TXw+w^Tw=loss (Xwt)T(Xwt)=wTXTXw2tTXw+wTw=loss,那么圆锥曲线3种可能:椭圆、抛物线、双曲线

  • 如果 d e t ( X T X ) > 0 det(X^TX) > 0 det(XTX)>0,那么目标函数对应的是椭圆
  • 如果 d e t ( X T X ) = 0 det(X^TX) = 0 det(XTX)=0,那么目标函数对应的是抛物线
    如果数据 X X X的变量之间存在多重共线性,那么 d e t ( X T X ) = 0 det(X^TX)=0 det(XTX)=0,但是我们假设变量之间不存在多重共线性,所以目标函数是椭圆曲线,接着我们只要画出可行域,找到椭圆曲线与可行域的顶点相交或相切即为最优值。

我们将 L 1 L_1 L1范数进行变形:
∥ [ w 1 w 2 ] ∥ = ∣ ∣ w 1 ∣ ∣ + ∣ ∣ w 2 ∣ ∣ ≤ ϵ \begin{equation} \left\| \begin{bmatrix} w_1 \\ w_2 \\ \end{bmatrix} \right\| = ||w_1||+||w_2|| \leq \epsilon \end{equation} [w1w2] =∣∣w1∣∣+∣∣w2∣∣ϵ
{ w 1 + w 2 ≤ ϵ , w 1 ≥ 0 , w 2 ≥ 0 w 1 − w 2 ≤ ϵ , w 1 ≥ 0 , w 2 < 0 − w 1 + w 2 ≤ ϵ , w 1 < 0 , w 2 ≥ 0 − w 1 − w 2 ≤ ϵ , w 1 < 0 , w 2 < 0 \begin{equation} \begin{cases} w_1 + w_2 \leq \epsilon, & w_1 \geq 0, w_2 \geq 0 \\ w_1 - w_2 \leq \epsilon, & w_1 \geq 0, w_2 < 0 \\ -w_1 + w_2 \leq \epsilon, & w_1 < 0, w_2 \geq 0 \\ -w_1 - w_2 \leq \epsilon, & w_1 < 0, w_2 < 0 \end{cases} \end{equation} w1+w2ϵ,w1w2ϵ,w1+w2ϵ,w1w2ϵ,w10,w20w10,w2<0w1<0,w20w1<0,w2<0
由此可见 L 1 L_1 L1范数的可行域是一个封闭的正方形,其顶点都落在坐标轴上。我们同样也可以画出1/2范数、2范数、4范数和无穷范数的可行域,那么可行域与目标曲线如下图所示:
在这里插入图片描述
从图中可以发现, L 1 L_1 L1范数更容易比 L 2 L_2 L2范数交于角点,这也更容易让 w w w取到等于0的值,从而解释了 L 1 L_1 L1范数得到的参数更为稀疏。


四、岭回归

岭回归
归就是多元线性回归加上了 ∣ ∣ w ∣ ∣ 2 ||w||^2 ∣∣w2正则化,求解过程参考第一张的3.3.1节


参考

  1. Bishop C M, Nasrabadi N M. Pattern recognition and machine learning[M]. New York: springer, 2006.
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来简单介绍一下这几种模型。 1. 线性回归模型:线性回归是一种最简单也是最常用的回归算法,它假设自变量和因变量间存在线性关系,通过最小化残差平方和来拟合直线,从而实现对目标变量的预测。特点是模型简单,易于理解和实现,但对于非线性问题效果不佳。应用场景包括市场预测、房价预测等。 2. 多项式回归模型:多项式回归是在线性回归的基础上增加了多项式特征,将自变量的高次项也考虑进去,使得模型可以适应更加复杂的数据分布。特点是可以通过添加高次项来拟合非线性数据,但过高的次数会导致过拟合。应用场景包括生物学数据分析、天气预测等。 3. 回归模型:回归是一种正则化线性回归方法,它通过对参数施加L2正则化,限制参数的大小从而避免过拟合。特点是可以抑制多重共线性,避免过拟合,但需要调整超参数。应用场景包括基因表达分析、图像处理等。 4. Lasso回归模型:Lasso回归也是一种正则化线性回归方法,不同的是它使用L1正则化,使得一些参数变为0,可以实现特征选择,即通过选择少量重要的特征来提高模型的泛化能力。特点是可以实现特征选择,可以避免过拟合,但也需要调整超参数。应用场景包括信用评分、股票预测等。 以上是对这四种模型的简要介绍,希望能够帮助你更好地理解它们。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值