机器学习:线性模型-多重共线性问题的解决-Lasso

除了岭回归,最常被提到的模型还有Lasso。Lasso全称最小绝对收缩和选择算子(least absolute shrinkage and selection operator),由于这个名字过于复杂,所以简称为Lasso。和岭回归一样,Lasso是被创造来作用于多重共线性问题的算法,不过Lasso使用的是系数ω的L1范式(L1范式是系数ω的绝对值)乘以正则化系数α,所以Lasso的损失函数表达式为:
m i n ω ∣ ∣ X ω − y ∣ ∣ 2   2 + α ∣ ∣ ω ∣ ∣ 1 \large\boldsymbol{\mathop{min}\limits_\omega||X\omega-y||_2\,^2+\alpha||\omega||_1} ωminXωy22+αω1
许多博客和机器学习教材会说,Lasso与岭回归非常相似,都是利用正则项来对原本的损失函数形成一个惩罚,以此来防止多重共线性。这种说法不不是非常严谨,看一下Lasso的数学过程。当使用最小二乘法来求解Lasso中的参数ω时,依然对损失函数进行求导:
机器学习:线性模型-多重共线性问题的解决-Lasso_第1张图片
前半部分在之前的博文《机器学习:线性模型-多重共线性问题的解决-岭回归》中推导过,后半部分对ω求导和岭回归有很大不同,假设所有系数都为正:
在这里插入图片描述
将含ω的项合并,α是常数,为实现矩阵相加,让它乘以一个结构为 n ∗ n n*n nn的单位矩阵 I I I
在这里插入图片描述
问题又回到了要求 X T X X^TX XTX的逆必须存在。在岭回归中,通过正则化系数α能够向方阵 X T X X^TX XTX加上一个单位矩阵,以此来防止方阵 X T X X^TX XTX的行列式为0,而现在L1范式所带的正则项在求导之后并不带有ω这个项,因此无法对 X T X X^TX XTX造成任何影响。也就是说,Lasso无法解决特征之间”精确相关“的问题。使用最小二乘法求解线性回归时,如果线性回归无解或者报除零错误,换Lasso不能解决任何问题。
岭回归 vs Lasso:岭回归可以解决特征间的精确相关系导致的最小二乘法无法使用的问题,而Lasso不行。
幸运的是,在现实中较少遇到“精确相关”的多重共线性问题,大部分多重共线性问题是“高度相关“的,如果假设方阵 X T X X^TX XTX的逆是一定存在的,则可以有:
在这里插入图片描述
通过增大α,可以为ω的计算增加一个负项,从而限制参数估计中ω的大小,而防止多重共线性引起的参数ω被估计过大导致模型失准的问题。Lasso不是从根本上解决多重共线性问题,而是限制多重共线性带来的影响。何况,这还是在假设所有的系数都为正的情况下,假设系数ω无法为正,则很有可能需要将正则项参数α设定为负,因此α可以取负数,并且负数越大,对共线性的限制也越大。
所有这些让Lasso成为一个神奇的算法,尽管它是为了限制多重共线性被创造出来的,然而世人其实并不使用它来抑制多重共线性,反而接受了它在其他方面的优势。事实上,岭回归和Lasso的不同就是L1和L2正则化,而这两个正则化的核心差异就是他们对系数ω的影响:两个正则化都会压缩系数的大小,对标签贡献更少的特征的系数会更小,也会更容易被压缩。不过,L2正则化只会将系数压缩到尽量接近0,但L1正则化主导稀疏性,因此会将系数压缩到0。这个性质,让Lasso成为了线性模型中的特征选择工具首选,在下篇博文中,将使用Lasso来选择特征。

你可能感兴趣的:(算法,机器学习,统计)