Lasso回归算法: 坐标轴下降法与最小角回归法小结
Posted 程序猿-小秦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lasso回归算法: 坐标轴下降法与最小角回归法小结相关的知识,希望对你有一定的参考价值。
前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结。里面对线程回归的正则化也做了一个初步的介绍。提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归。但是对于Lasso回归的解法没有提及,本文是对该文的补充和扩展。以下都用矩阵法表示,如果对于矩阵分析不熟悉,推荐学习张贤达的《矩阵分析与应用》。
1. 回顾线性回归
首先我们简要回归下线性回归的一般形式:
hθ(X)=Xθhθ(X)=Xθ
需要极小化的损失函数是:
J(θ)=12(Xθ−Y)T(Xθ−Y)J(θ)=12(Xθ−Y)T(Xθ−Y)
如果用梯度下降法求解,则每一轮θθ迭代的表达式是:
θ=θ−αXT(Xθ−Y)θ=θ−αXT(Xθ−Y)
其中αα为步长。
如果用最小二乘法,则θθ的结果是:
θ=(XTX)−1XTYθ=(XTX)−1XTY
2. 回顾Ridge回归
由于直接套用线性回归可能产生过拟合,我们需要加入正则化项,如果加入的是L2正则化项,就是Ridge回归,有时也翻译为脊回归。它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项,和一个调节线性回归项和正则化项权重的系数αα。损失函数表达式如下:
J(θ)=12(Xθ−Y)T(Xθ−Y)+12α||θ||22J(θ)=12(Xθ−Y)T(Xθ−Y)+12α||θ||22
其中αα为常数系数,需要进行调优。||θ||2||θ||2为L2范数。
Ridge回归的解法和一般线性回归大同小异。如果采用梯度下降法,则每一轮θθ迭代的表达式是:
θ=θ−(βXT(Xθ−Y)+αθ)θ=θ−(βXT(Xθ−Y)+αθ)
其中ββ为步长。
如果用最小二乘法,则θθ的结果是:
θ=(XTX+αE)−1XTYθ=(XTX+αE)−1XTY
其中E为单位矩阵。
模型变量多的缺点呢?有,这就是下面说的Lasso回归。
3. 初识Lasso回归
Lasso回归有时也叫做线性回归的L1正则化,和Ridge回归的主要区别就是在正则化项,Ridge回归用的是L2正则化,而Lasso回归用的是L1正则化。Lasso回归的损失函数表达式如下:
J(θ)=12n(Xθ−Y)T(Xθ−Y)+α||θ||1J(θ)=12n(Xθ−Y)T(Xθ−Y)+α||θ||1
其中n为样本个数,αα为常数系数,需要进行调优。||θ||1||θ||1为L1范数。
4. 用坐标轴下降法求解Lasso回归
坐标轴下降法顾名思义,是沿着坐标轴的方向去下降,这和梯度下降不同。梯度下降是沿着梯度的负方向下降。不过梯度下降和坐标轴下降的共性就都是迭代法,通过启发式的方式一步步迭代求解函数的最小值。
坐标轴下降法的数学依据主要是这个结论(此处不做证明):一个可微的凸函数J(θ)J(θ), 其中θθ是nx1的向量,即有n个维度。如果在某一点θ¯¯¯θ¯,使得J(θ)J(θ)在每一个坐标轴θ¯¯¯iθ¯i(i = 1,2,...n)上都是最小值,那么J(θ¯¯¯i)J(θ¯i)就是一个全局的最小值。
于是我们的优化目标就是在θθ的n个坐标轴上(或者说向量的方向上)对损失函数做迭代的下降,当所有的坐标轴上的θiθi(i = 1,2,...n)都达到收敛时,我们的损失函数最小,此时的θθ即为我们要求的结果。
下面我们看看具体的算法过程:
1. 首先,我们把θθ向量随机取一个初值。记为θ(0)θ(0) ,上面的括号里面的数字代表我们迭代的轮数,当前初始轮数为0.
2. 对于第k轮的迭代。我们从θ(k)1θ1(k)开始,到θ(k)nθn(k)为止,依次求θ(k)iθi(k)。θ(k)iθi(k)的表达式如下:
θ(k)i∈argminθiJ(θ(k)1,θ(k)2,...θ(k)i−1,θi,θ(k−1)i+1,...,θ(k−1)n)θi(k)∈argmin⏟θiJ(θ1(k),θ2(k),...θi−1(k),θi,θi+1(k−1),...,θn(k−1))
也就是说θ(k)iθi(k)是使J(θ(k)1,θ(k)2,...θ(k)i−1,θi,θ(k−1)i+1,...,θ(k−1)n)J(θ1(k),θ2(k),...θi−1(k),θi,θi+1(k−1),...,θn(k−1))最小化时候的θiθi的值。此时J(θ)J(θ)只有θ(k)iθi(k)是变量,其余均为常量,因此最小值容易通过求导求得。
如果上面这个式子不好理解,我们具体一点,在第k轮,θθ向量的n个维度的迭代式如下:
θ(k)1∈argmin线性回归
线性回归 scikit-learn LinearRegression最小二乘法梯度下降SDG多项式回归学习曲线岭回归Lasso回归