线性回归——lasso回归和岭回归(ridgeregression)

wuliyttaotao wuliyttaotao     2022-12-09     414

关键词:

线性回归很简单,用线性函数拟合数据,用 mean square error (mse) 计算损失(cost),然后用梯度下降法找到一组使 mse 最小的权重。

lasso 回归和岭回归(ridge regression)其实就是在标准线性回归的基础上分别加入 L1 和 L2 正则化(regularization)。

本文的重点是解释为什么 L1 正则化会比 L2 正则化让线性回归的权重更加稀疏,即使得线性回归中很多权重为 0,而不是接近 0。或者说,为什么 L1 正则化(lasso)可以进行 feature selection,而 L2 正则化(ridge)不行。

线性回归——最小二乘

线性回归(linear regression),就是用线性函数 \\(f(\\bm x) = \\bm w^\\top \\bm x + b\\) 去拟合一组数据 \\(D = \\(\\bm x_1, y_1), (\\bm x_2, y_2), ..., (\\bm x_n, y_n)\\\\) 并使得损失 \\(J = \\frac1n\\sum_i = 1^n (f(\\bm x_i) - y_i)^2\\) 最小。线性回归的目标就是找到一组 \\((\\bm w^*, b^*)\\),使得损失 \\(J\\) 最小。

线性回归的拟合函数(或 hypothesis)为:
\\[ f(\\bm x) = \\bm w^\\top \\bm x + b \\tag1 \\]

cost function (mse) 为:
\\[ \\beginsplit J &= \\frac1n\\sum_i = 1^n (f(\\bm x_i) - y_i)^2 \\\\ & = \\frac1n\\sum_i = 1^n (\\bm w^\\top \\bm x_i + b - y_i)^2 \\endsplit \\tag2 \\]

Lasso回归和岭回归

Lasso 回归和岭回归(ridge regression)都是在标准线性回归的基础上修改 cost function,即修改式(2),其它地方不变。

Lasso 的全称为 least absolute shrinkage and selection operator,又译最小绝对值收敛和选择算子、套索算法。

Lasso 回归对式(2)加入 L1 正则化,其 cost function 如下:
\\[ J = \\frac1n\\sum_i = 1^n (f(\\bm x_i) - y_i)^2 + \\lambda \\|w\\|_1 \\tag3 \\]

岭回归对式(2)加入 L2 正则化,其 cost function 如下:
\\[ J = \\frac1n\\sum_i = 1^n (f(\\bm x_i) - y_i)^2 + \\lambda \\|w\\|_2^2 \\tag4 \\]

Lasso回归和岭回归的同和异:

  • 相同:
    • 都可以用来解决标准线性回归的过拟合问题。
  • 不同:
    • lasso 可以用来做 feature selection,而 ridge 不行。或者说,lasso 更容易使得权重变为 0,而 ridge 更容易使得权重接近 0。
    • 从贝叶斯角度看,lasso(L1 正则)等价于参数 \\(\\bm w\\) 的先验概率分布满足拉普拉斯分布,而 ridge(L2 正则)等价于参数 \\(\\bm w\\) 的先验概率分布满足高斯分布。具体参考博客 从贝叶斯角度深入理解正则化 -- Zxdon

为什么 lasso 更容易使部分权重变为 0 而 ridge 不行?

lasso 和 ridge regression 的目标都是 \\(\\min_\\bm w, b J\\),式(3)和(4)都是拉格朗日形式,其中 \\(\\lambda\\) 为拉格朗日乘子,我们也可以将 \\(\\min_\\bm w, b J\\) 写成如下形式:

  • lasso regression:
    \\[ \\beginarraycl \\min \\limits_w, b & \\dfrac1n\\sum_i = 1^n (\\bm w^\\top \\bm x_i + b - y_i)^2 \\\\ \\texts.t. &\\|w\\|_1 \\le t \\endarray \\tag5 \\]

  • ridge regression:
    \\[ \\beginarraycl \\min \\limits_w, b & \\dfrac1n\\sum_i = 1^n (\\bm w^\\top \\bm x_i + b - y_i)^2 \\\\ \\texts.t. &\\|w\\|_2^2 \\le t \\endarray \\tag6 \\]

式(5)和(6)可以理解为,在 \\(\\bm w\\) 限制的取值范围内,找一个点 \\(\\hat\\bm w\\) 使得 mean square error 最小,\\(t\\) 可以理解为正则化的力度,式(5)和(6)中的 \\(t\\) 越小,就意味着式(3)和(4)中 \\(\\lambda\\) 越大,正则化的力度越大 。

\\(\\bm x \\in R^2\\) 为例,式(5)中对 \\(\\bm w\\) 的限制空间是方形,而式(6)中对 \\(\\bm w\\) 的限制空间是圆形。因为 lasso 对 \\(\\bm w\\) 的限制空间是有棱角的,因此 \\(\\arg \\min_w, b \\frac1n\\sum_i = 1^n (\\bm w^\\top \\bm x_i + b - y_i)^2\\) 的解更容易切在 \\(\\bm w\\) 的某一个维为 0 的点。如下图所示:

技术图片
Fig.1[1] Lasso (left) and ridge (right) regression.

Fig. 1 中的坐标系表示 \\(\\bm w\\) 的两维,一圈又一圈的椭圆表示函数 \\(J = \\frac1n\\sum_i = 1^n (\\bm w^\\top \\bm x_i + b - y_i)^2\\) 的等高线,椭圆越往外,\\(J\\) 的值越大,\\(\\bm w^*\\) 表示使得损失 \\(J\\) 取得全局最优的值。使用 Gradient descent,也就是让 \\(\\bm w\\) 向着 \\(\\bm w^*\\) 的位置走。如果没有 L1 或者 L2 正则化约束,\\(\\bm w^*\\) 是可以被取到的。但是,由于有了约束 \\(\\|w\\|_1 \\le t\\)\\(\\|w\\|_2^2 \\le t\\)\\(\\bm w\\) 的取值只能限制在 Fig. 1 所示的灰色方形和圆形区域。当然调整 \\(t\\) 的值,我么能够扩大这两个区域。

等高线从低到高第一次和 \\(\\bm w\\) 的取值范围相切的点,即是 lasso 和 ridge 回归想要找的权重 \\(\\hat\\bm w\\)

lasso 限制了 \\(\\bm w\\) 的取值范围为有棱角的方形,而 ridge 限制了 \\(\\bm w\\) 的取值范围为圆形,等高线和方形区域的切点更有可能在坐标轴上,而等高线和圆形区域的切点在坐标轴上的概率很小。这就是为什么 lasso(L1 正则化)更容易使得部分权重取 0,使权重变稀疏;而 ridge(L2 正则化)只能使权重接近 0,很少等于 0。

正是由于 lasso 容易使得部分权重取 0,所以可以用其做 feature selection,lasso 的名字就指出了它是一个 selection operator。权重为 0 的 feature 对回归问题没有贡献,直接去掉权重为 0 的 feature,模型的输出值不变。

对于 ridge regression 进行 feature selection,你说它完全不可以吧也不是,weight 趋近于 0 的 feature 不要了不也可以,但是对模型的效果还是有损伤的,这个前提还得是 feature 进行了归一化。

References

[1] Tibshirani, R. (1996). Regression Shrinkage and Selection Via the Lasso. Journal Of The Royal Statistical Society: Series B (Methodological), 58(1), 267-288. doi: 10.1111/j.2517-6161.1996.tb02080.x
[2] Lasso算法 -- 维基百科
[3] 机器学习总结(一):线性回归、岭回归、Lasso回归 -- 她说巷尾的樱花开了
[4] 从贝叶斯角度深入理解正则化 -- Zxdon

岭回归与lasso回归

线性回归的一般形式过拟合问题及其解决方法问题:以下面一张图片展示过拟合问题解决方法:(1):丢弃一些对我们最终预测结果影响不大的特征,具体哪些特征需要丢弃可以通过PCA算法来实现;(2):使用正则化技术,保留所有... 查看详情

岭回归和lasso回归(转)

...输入,得到不同的输出。    那么,什么是线性回归,什么是非线性回归呢?线性回归与非线性回归&nbs 查看详情

lasso回归算法:坐标轴下降法与最小角回归法小结

前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结。里面对线程回归的正则化也做了一个初步的介绍。提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归。但是对于Lasso回归的解法没有... 查看详情

机器学习之线性回归岭回归lasso回归(代码片段)

...标称型数据,而回归的目标变量是连续型数据,主要包括线性回归,岭回归,lasso回归,前向逐步回归。2、线性回归线性回归主要用于处理线性数据,结果易于理解,计算复杂度不高,但是处理不了非线性数据。线性回归用最适... 查看详情

从零开始实现线性回归岭回归lasso回归多项式回归模型

**声明:版权所有,转载请联系作者并注明出处:**http://blog.csdn.net/u013719780?viewmode=contents**知乎专栏:**https://www.zhihu.com/people/feng-xue-ye-gui-zi/columns此系列文章会同时在我的知乎专栏上更新In [6]:importnumpya 查看详情

线性回归scikit-learnlinearregression最小二乘法梯度下降sdg多项式回归学习曲线岭回归lasso回归(代码片段)

github:https://github.com/gaowanlu/MachineLearning-DeepLearning线性回归scikit-learn关键词:LinearRegression、最小二乘法、梯度下降、SDG、多项式回归、学习曲线、岭回归、Lasso回归LinearRegression#使用scikit-learn中的线性回归模型fromoperatorimpor 查看详情

机器学习sklearn(77):算法实例(三十四)回归线性回归大家族多重共线性:岭回归与lasso岭回归(代码片段)

1最熟悉的陌生人:多重共线性逆矩阵存在的充分必要条件 行列式不为0的充分必要条件              矩阵满秩的充分必要条件           查看详情

r语言-岭回归及lasso算法(代码片段)

前文我们讲到线性回归建模会有共线性的问题,岭回归和lasso算法都能一定程度上消除共线性问题。岭回归>#########正则化方法消除共线性>###岭回归>###glmnet只能处理矩阵>library(glmnet)>library(mice)>creditcard_exp<-creditcard_... 查看详情

用python实现岭回归算法与lasso回归算法并处理iris数据集(代码片段)

在介绍岭回归算法与Lasso回归算法之前,先要回顾一下线性回归算法。根据线性回归模型的参数估计公式可知可知,得到的前提是矩阵可逆。换句话说就是样本各个特征(自变量)之间线性无关。然而在实际问题中,常常会出现... 查看详情

对数据过度拟合 Lasso 回归模型

...:我想创建一个模型来描述我的数据行为。我尝试了简单线性回归、简单多项式回归和带有正则化和交叉验证的多项式回归。我发现最后一种方法允许自动特征选择(带度数),这是我实际需要的,因为简单的线性回归表现不佳... 查看详情

matlablasso回归(可替换数据)(代码片段)

...及注释1.模型原理Lasso回归原理概述如下:Lasso回归是一种线性回归方法,它在损失函数中加上了一个L1正则项,即回归系数的绝对值之和12。Lasso回归的目的是在保持模型拟合度的同时,使得一些不重要的回归系数变为0,从而实... 查看详情

最小二乘回归,岭回归,lasso回归,弹性网络

...立性。2、当各项是相关的,且设计矩阵 X的各列近似线性相关,那么,设计矩阵会趋向于奇异矩阵,这会导致最小二乘估计对于随机误差非常敏感,产生很大的方差。例如,在没有实验设计的情况下收集到的数据,这种多重... 查看详情

机器学习sklearn(78):算法实例(三十五)回归线性回归大家族多重共线性:岭回归与lassolasso(代码片段)

3Lasso3.1Lasso与多重共线性      3.2Lasso的核心作用:特征选择  importnumpyasnpimportpandasaspdfromsklearn.linear_modelimportRidge,LinearRegression,Lassofromsklearn.model_selecti 查看详情

最小二乘法和岭回归

线性回归下面是线性回归的公式推导,没有加上L2正则化因子。假设y^=Xwhaty=Xwy^?=Xw,因为L(w)=∣∣y^?y∣∣22=∣∣Xw?y∣∣22=(Xw?y)T(Xw?y)=wTXTXw?yTXw?wTXTy+yTy,eginalignedL(w)&amp;=||haty-y||_2^2=||Xw-y||_2^2&amp;=(Xw-y)^T(Xw-y)&amp;=w^TX^TXw-y^TXw-w^T... 查看详情

岭回归和lasso回归有啥区别?

岭回归是线性回归采用L2正则化的形式,Lasso回归是采用L1正则化的形式,Lasso回归易产生稀疏解参考技术A原文链接:http://tecdat.cn/?p=20379  假设我们期望因变量由潜在协变量子集的线性组合确定。然后,LARS算法提供了一种... 查看详情

LASSO 回归是不是在 Statsmodels 中实现?

...:2017-09-1219:14:55【问题描述】:我很想在statsmodels中使用线性LASSO回归,以便能够使用“公式”表示法来编写模型,这样可以在处理许多分类变量及其交互时为我节省相当多的编码时间。但是,它似乎还没有 查看详情

机器学习岭回归和lasso回归详解以及相关计算实例-加利福尼亚的房价数据集红酒数据集(代码片段)

一,岭回归和LASSO回归1.1多重共线性处理多重共线性最直接的方法是手动移除共线性的变量:即先对数据进行相关分析,若两个特征的相关系数大于某特定值(一般为0.7),则手动移除其中一个特征,再继续做回归分析。这种做法... 查看详情

线性回归

目录写作提纲基础线性回归模型&损失函数模型表达线性模型基本形式线性模型向量形式损失函数优化方法(极小化损失函数)最小二乘OLS梯度下降GD线性回归的推广多项式回归广义线性回归正则化参考资料台湾大学《机器学... 查看详情