【机器学习】Lasso回归(L1正则,MAP+拉普拉斯先验)

本文介绍了Lasso回归的基本原理,包括其如何通过引入L1正则化来防止过拟合,并达到特征选择的目的。同时,文章还探讨了拉普拉斯分布与Lasso回归的关系,以及在不可导情况下的优化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

目前这个方法还没有一个正规的中文名,如果从lasso这个单词讲的话,叫套索。那么套索是啥呢,就是套马脖子的东西,见下图: 

å¥ç´¢

就是拿这个东西把动物脖子套住,不要它随便跑。lasso 回归就是这个意思,就是让回归系数不要太大,以免造成过度拟合(overfitting)。所以呢,lasso regression是个啥呢,就是一个回归,并且回归系数不要太大。

具体的实现方式是加了一个L1正则的惩罚项。

拉普拉斯分布

在概率论与统计学中,拉普拉斯分布是以皮埃尔-西蒙·拉普拉斯的名字命名的一种连续概率分布。由于它可以看作是两个不同位置的指数分布背靠背拼接在一起,所以它也叫作双指数分布。两个相互独立同概率分布指数随机变量之间的差别是按照指数分布的随机时间布朗运动,所以它遵循拉普拉斯分布。

如果随机变量的概率密度函数为:

那么它就是拉普拉斯分布。记为:

其中,是位置参数,是尺度参数。

与正态分布有一些差别。在均值处变化的相当迅速。

数字特征:

MAP概率推导

推导方式与贝叶斯线性回归类似贝叶斯线性回归(最大后验估计+高斯先验)

对于线性回归y_i=h_\theta(x_i)=w^Tx_i,有t_i=y_i+\epsilon _i

记误差,则

对参数w的分布加入先验分布信息(注不加任何先验就是普通的线性回归),w\sim Laplace(0,{1\over \lambda})

可以得到MAP方程:

取对数得:

上面的所有t都应改为t_i,记Tt的集合。

等价于:

至此,我们已经通过MAP最大后验估计加上对于参数w的Laplace先验分布得到了带L1正则项的线性回归目标函数。

正则项的意义

对于上面的目标函数,我们还可以写成以下这种带约束条件的形式:

妙处就在这个地方,在第一范数的约束下,一部分回归系数刚好可以被约束为0。这样的话,就达到了特征选择的效果。至于为什么大家可以看看下图 (在岭回归(L2正则在干嘛!)中有介绍过了)。

èæ°

不再详细解释了,如果有需要可以参阅之前的博客。

L1正则项不可导的梯度下降方法

对于凸函数不可导的情形,如L1正则项在0点处不可导,我们可以使用坐标下降法或者次梯度方法。

 

参考文章:

Sparsity and Some Basics of L1 Regularization

Lasso回归的坐标下降法推导

### L1和L2正则化的概率学意义及统计学解释 在机器学习中,L1和L2正则化不仅可以通过优化目标函数来防止过拟合,还可以从概率学和统计学的角度进行解释。以下是它们的概率学意义及统计学解释: #### 1. L1正则化的概率学意义 L1正则化可以被看作是对模型参数的先验分布假设为拉普拉斯分布的结果。拉普拉斯分布的概率密度函数(PDF)形式如下: \[ p(w_i) = \frac{\lambda}{2} e^{-\lambda |w_i|} \] 其中 \( w_i \) 是模型的权重参数,\( \lambda \) 是控制分布宽度的超参数[^1]。 当我们在损失函数中加入L1正则化项时,实际上是在最大化后验概率 \( P(W|X, Y) \),即贝叶斯推断中的最大后验估计(MAP)。具体来说,L1正则化等价于假设权重参数 \( W \)先验分布是拉普拉斯分布。由于拉普拉斯分布具有尖锐的峰值和较重的尾部,这使得L1正则化倾向于将一些权重精确地缩减为零,从而实现稀疏性[^3]。 #### 2. L2正则化的概率学意义 L2正则化可以被看作是对模型参数的先验分布假设为高斯分布的结果。高斯分布的概率密度函数(PDF)形式如下: \[ p(w_i) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{w_i^2}{2\sigma^2}} \] 其中 \( w_i \) 是模型的权重参数,\( \sigma^2 \) 是高斯分布的方差[^4]。 类似地,当我们在损失函数中加入L2正则化项时,也是在最大化后验概率 \( P(W|X, Y) \)。L2正则化等价于假设权重参数 \( W \)先验分布是高斯分布。由于高斯分布的形状较为平滑,这使得L2正则化倾向于将权重值均匀地缩小到接近零,但不会完全为零,因此无法直接实现稀疏性[^5]。 #### 3. 统计学意义 从统计学角度来看,L1和L2正则化的主要作用是通过引入惩罚项来减少模型的复杂度,从而避免过拟合。L1正则化通过稀疏化权重参数,可以自动选择特征,减少无关特征的影响;而L2正则化通过平滑权重参数,可以降低模型对噪声数据的敏感性[^2]。 此外,L1正则化适用于特征数量较多且存在大量冗余特征的情况,因为它能够自动选择重要的特征并剔除不重要的特征。而L2正则化适用于特征数量较少且所有特征都可能对模型有贡献的情况,因为它能够有效地抑制权重过大导致的过拟合问题。 ```python # 示例代码:L1和L2正则化在回归模型中的实现 from sklearn.linear_model import Lasso, Ridge import numpy as np # 数据生成 np.random.seed(42) X = np.random.rand(100, 10) y = X @ np.array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0]) + np.random.randn(100) * 0.1 # L1正则化(Lassolasso = Lasso(alpha=0.1) lasso.fit(X, y) print("L1正则化后的权重:", lasso.coef_) # L2正则化(Ridge) ridge = Ridge(alpha=0.1) ridge.fit(X, y) print("L2正则化后的权重:", ridge.coef_) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值