什么是 Lasso 回归?

Lasso 回归(Least Absolute Shrinkage and Selection Operator) 是一种能自动「挑选重要特征」的线性回归——不重要的特征直接被丢弃。

生活类比:断舍离整理法

想象你搬家时要整理行李,行李箱空间有限(正则化约束)。Ridge 回归像是把每件物品都带上,但每件都只带一点点;Lasso 回归则像「断舍离」——果断地把不重要的物品完全扔掉(权重变为0),只带真正重要的东西。结果是行李箱里的物品少了很多,但每件都是精华。

逐步理解:

  • 第一步:先了解 Ridge 回归——用 L2 惩罚(权重平方和)让权重变小
  • 第二步:Lasso 的不同——用 L1 惩罚(权重绝对值和):$\alpha \sum |w_j|$
  • 第三步:L1 的魔法——L1 惩罚会把不重要的权重直接压到 精确的 0(而不是接近 0)
  • 第四步:这意味着 Lasso 自动做了「特征选择」——从100个特征中挑出5个最重要的

适用场景

  • 特征选择:自动识别最重要的特征,将无关特征权重置零
  • 稀疏解需求:当需要简洁、可解释的模型时
  • 高维数据:特征数量远大于样本数量的场景
  • 基因数据分析:从数万个基因中找出关键基因
  • 模型压缩:减少模型存储和计算开销

历史渊源

问题背景:Ridge 回归解决了多重共线性问题,但有个遗憾——它会收缩所有权重,却不会把任何权重变成精确的零。当你有100个特征但只有5个真正有用时,Ridge 给不出"哪些特征该扔掉"的答案。

关键突破:1996年,斯坦福统计学家 Robert Tibshirani 提出了 Lasso——把 Ridge 的 L2 惩罚(权重平方和)换成 L1 惩罚(权重绝对值和)。这个看似微小的改动带来了质的飞跃:L1 的菱形约束区域有"尖角",损失函数的等高线更容易在尖角处相切,而尖角恰好在坐标轴上——这意味着某些权重会被精确压到零!

深远影响:Lasso 实现了自动特征选择,在基因组学(从数万个基因中找关键基因)、金融(从大量因子中筛选有效因子)等高维场景中不可替代。

趣闻:Lasso 的全称是"Least Absolute Shrinkage and Selection Operator"——Tibshirani 显然是先想好了"Lasso"(套索)这个酷名字,再凑出了这个缩写。套索的意象很贴切:像牛仔的套索一样,把不重要的特征"套住"并拉到零。

发展脉络

1970
Ridge
L2正则化
无稀疏性
->
1996
Lasso
L1正则化
高度相关特征
->
2005
Elastic Net
L1+L2混合
推断需求
->
2008
Group Lasso
分组选择

局限性

  • 特征高度相关时不稳定:当多个特征高度相关时,Lasso 倾向于随机选择其中一个
  • 需要调参:正则化参数 $\alpha$ 需要通过交叉验证选择
  • 最多选择 n 个特征:当特征数 p > 样本数 n 时,Lasso 最多只能选择 n 个特征
  • 无闭式解:需要使用坐标下降等迭代算法求解

解决方案:Elastic Net 结合 L1 和 L2 正则化,可以处理高度相关特征的问题

工业界地位

广泛使用

Lasso 是需要稀疏解时的首选方法,在工业界应用广泛:

  • 基因组学:从数万个基因中识别关键致病基因
  • 金融量化:从大量因子中选择有效因子
  • 广告点击预测:特征选择,减少模型复杂度
  • 医学诊断:识别关键诊断指标,提高可解释性

Lasso 的独特价值:在需要可解释性的场景(如医疗诊断、金融风控),Lasso 能够给出"哪些特征重要"的明确答案,这是黑盒模型无法提供的。

交互式可视化

观察 Lasso 如何将不重要的特征权重置零

1
3
20
试一试:
  • 调高 α,观察权重如何一个接一个变为精确的 0——这就是特征选择!
  • 与 Ridge 对比:Ridge 的权重缩小但永远不为 0,Lasso 会果断「删掉」不重要的特征
  • 找到那个 α 值,让模型只保留 2-3 个非零特征——这就是最精简的模型

预测 vs 真实值

特征权重

模型信息:

R² 分数:

非零特征数: --

L1 vs L2 正则化对比:

数学原理

直觉引入:如果你有 100 个特征但只有少数几个真正有用,怎么办?Lasso 的 L1 惩罚能自动把无用特征的权重压到精确的 0——相当于自动做特征选择。这是 Ridge 做不到的。

目标函数(MSE + L1 惩罚):

$$\min_w \sum_{i=1}^n (y_i - w^T x_i)^2 + \alpha \sum_{j=1}^p |w_j|$$

为什么 L1 能产生稀疏解?——几何直觉:

L1 约束区域是菱形(有尖角),损失函数的等高线是椭圆。椭圆与菱形最容易在尖角处相切——尖角恰好在坐标轴上,意味着某些 $w_j = 0$。

求解:坐标下降法

L1 不可导(在 0 处),无法用普通梯度下降。坐标下降每次只优化一个 $w_j$:

$$w_j = \frac{S(z_j, \alpha)}{\sum_{i=1}^n x_{ij}^2}$$

其中软阈值函数:

$$S(z, \alpha) = \text{sign}(z) \cdot \max(|z| - \alpha, 0)$$

当 $|z_j| \leq \alpha$ 时,$w_j$ 被直接"截断"为 0。$\alpha$ 越大,越多特征被淘汰。

Elastic Net(弹性网络):结合 L1 和 L2 的优点:$\alpha_1\sum|w_j| + \alpha_2\sum w_j^2$。既能做特征选择,又能处理相关特征组(Lasso 在相关特征中只会选一个,Elastic Net 会保留整组)。