(五)线性回归

线性回归小结

  线性回归可以说是机器学习中最基本的问题类型了,这里就对线性回归的原理和算法做一个小结。

1. 线性回归的模型函数和损失函数

  线性回归遇到的问题一般是这样的。我们有 m 个样本,每个样本对应于 n 维特征和一个结果输出,如下:

(x(0)1,x(0)2,...x(0)n,y0),(x(1)1,x(1)2,...x(1)n,y1),...(x(m)1,x(m)2,...x(m)n,yn) ( x 1 ( 0 ) , x 2 ( 0 ) , . . . x n ( 0 ) , y 0 ) , ( x 1 ( 1 ) , x 2 ( 1 ) , . . . x n ( 1 ) , y 1 ) , . . . ( x 1 ( m ) , x 2 ( m ) , . . . x n ( m ) , y n )

  我们的问题是,对于一个新的 (x(x)1,x(x)2,...x(x)n) ( x 1 ( x ) , x 2 ( x ) , . . . x n ( x ) ) , 他所对应的 yx y x 是多少呢? 如果这个问题里面的 y y 是连续的,则是一个回归问题,否则是一个分类问题。

  对于 n 维特征的样本数据,如果我们决定使用线性回归,那么对应的模型是这样的:

hθ(x1,x2,...xn)=θ0+θ1x1+...θnxn h θ ( x 1 , x 2 , . . . x n ) = θ 0 + θ 1 x 1 + . . . θ n x n

  其中 θi (i=0,1,2...n) θ i   ( i = 0 , 1 , 2... n ) 为模型参数, xi (i=0,1,2...n) x i   ( i = 0 , 1 , 2... n ) 为每个样本的 n n 个特征值。这个表示可以简化,我们增加一个特征 x0=1,这样 hθ(x0,x1,...xn)=i=0nθixi h θ ( x 0 , x 1 , . . . x n ) = ∑ i = 0 n θ i x i
  进一步用矩阵形式表达更加简洁如下:
hθ(X)=Xθ h θ ( X ) = X θ

  其中, 假设函数 hθ(X) h θ ( X ) 为m x 1的向量, θ θ 为n x 1的向量,里面有 n 个代数法的模型参数。X为m x n维的矩阵。m 代表样本的个数,n 代表样本的特征数。

  得到了模型,我们需要求出需要的损失函数,一般线性回归我们用均方误差作为损失函数。损失函数的代数法表示如下:

J(θ0,θ1...,θn)=i=0m(hθ(x0,x1,...xn)yi)2 J ( θ 0 , θ 1 . . . , θ n ) = ∑ i = 0 m ( h θ ( x 0 , x 1 , . . . x n ) − y i ) 2

  进一步用矩阵形式表达损失函数:
J(θ)=12(XθY)T(XθY) J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y )

  由于矩阵法表达比较的简洁,后面我们将统一采用矩阵方式表达模型函数和损失函数。

2. 线性回归的算法

  对于线性回归的损失函数 J(θ)=12(XθY)T(XθY) J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y ) ,我们常用的有两种方法来求损失函数最小化时候的 θ θ 参数:一种是梯度下降法,一种是最小二乘法

  如果采用梯度下降法,则 θ θ 的迭代公式是这样的:

θ=θαXT(XθY) θ = θ − α X T ( X θ − Y )

  通过若干次迭代后,我们可以得到最终的 θ θ 的结果

  如果采用最小二乘法,则 θ θ 的结果公式如下:

θ=(XTX)1XTY θ = ( X T X ) − 1 X T Y

  当然线性回归,还有其他的常用算法,比如牛顿法和拟牛顿法,这里不详细描述。

3. 线性回归的推广:多项式回归

  回到我们开始的线性模型, hθ(x1,x2,...xn)=θ0+θ1x1+...+θnxn h θ ( x 1 , x 2 , . . . x n ) = θ 0 + θ 1 x 1 + . . . + θ n x n , 如果这里不仅仅是 x 的一次方,比如增加二次方,那么模型就变成了多项式回归。这里写一个只有两个特征的 p 次方多项式回归的模型:

hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x21+θ4x22+θ5x1x2 h θ ( x 1 , x 2 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 + θ 5 x 1 x 2

  我们令 x0=1,x1=x1,x2=x2,x3=x21,x4=x22,x5=x1x2 x 0 = 1 , x 1 = x 1 , x 2 = x 2 , x 3 = x 1 2 , x 4 = x 2 2 , x 5 = x 1 x 2 ,这样我们就得到了下式:
hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x3+θ4x4+θ5x5 h θ ( x 1 , x 2 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 + θ 5 x 5

  可以发现,我们又重新回到了线性回归,这是一个五元线性回归,可以用线性回归的方法来完成算法。对于每个二元样本特征 (x1,x2) ( x 1 , x 2 ) ,我们得到一个五元样本特征 (1,x1,x2,x21,x22,x1x2) ( 1 , x 1 , x 2 , x 1 2 , x 2 2 , x 1 x 2 ) ,通过这个改进的五元样本特征,我们重新把不是线性回归的函数变回线性回归。

4. 线性回归的推广:广义线性回归

  在上一节的线性回归的推广中,我们对样本特征端做了推广,这里我们对于特征 y 做推广。比如我们的输出 Y Y 不满足和X的线性关系,但是 lnY l n Y X X 满足线性关系,模型函数如下:

lnY=Xθ

  这样对与每个样本的输入 y y ,我们用 lny去对应, 从而仍然可以用线性回归的算法去处理这个问题。我们把 lny l n y 一般化,假设这个函数是单调可微函数 g(.) g ( . ) ,则一般化的广义线性回归形式是:

g(Y)=XθY=g1(Xθ) g ( Y ) = X θ 或 者 Y = g − 1 ( X θ )

  这个函数 g(.) g ( . ) 我们通常称为联系函数。

5. 线性回归的正则化

  为了防止模型的过拟合,我们在建立线性模型的时候经常需要加入正则化项。一般有L1正则化和L2正则化。

  线性回归的L1正则化通常称为Lasso回归,它和一般线性回归的区别是在损失函数上增加了一个L1正则化的项,L1正则化的项有一个常数系数 α α 调节损失函数的均方差项和正则化项的权重,具体Lasso回归的损失函数表达式如下:

J(θ)=12n(XθY)T(XθY)+α||θ||1 J ( θ ) = 1 2 n ( X θ − Y ) T ( X θ − Y ) + α | | θ | | 1

  其中 n n 为样本个数,α 为常数系数,需要进行调优。 ||θ||1 | | θ | | 1 为L1范数。
  Lasso回归可以使得一些特征的系数变小,甚至还是一些绝对值较小的系数直接变为0。增强模型的泛化能力。

  Lasso回归的求解办法一般有坐标轴下降法(coordinate descent)和最小角回归法( Least Angle Regression)

  线性回归的L2正则化通常称为Ridge回归,它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项,和Lasso回归的区别是Ridge回归的正则化项是L2范数,而Lasso回归的正则化项是L1范数。具体Ridge回归的损失函数表达式如下:

J(θ)=12(XθY)T(XθY)+12α||θ||22 J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y ) + 1 2 α | | θ | | 2 2

  其中 α α 为常数系数,需要进行调优。 ||θ||2 | | θ | | 2 为L2范数。

  Ridge回归在不抛弃任何一个特征的情况下,缩小了回归系数,使得模型相对而言比较的稳定,但和Lasso回归比,这会使得模型的特征留的特别多,模型解释性差

  Ridge回归的求解比较简单,一般用最小二乘法。这里给出用最小二乘法的矩阵推导形式,和普通线性回归类似。
  令 J(θ) J ( θ ) 的导数为0,得到下式:

XT(XθY)+αθ=0 X T ( X θ − Y ) + α θ = 0

  整理即可得到最后的 θ θ 的结果:
θ=(XTX+αE)1XTY θ = ( X T X + α E ) − 1 X T Y

  其中E为单位矩阵。
  除了上面这两种常见的线性回归正则化,还有一些其他的线性回归正则化算法,区别主要就在于正则化项的不同,和损失函数的优化方式不同,这里就不累述了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值