《Python 应用机器学习:代码实战指南》笔记21 全面理解 LASSO 回归:从原理到实战解析
在机器学习和统计建模中,线性回归是最早也是最常用的预测模型之一。然而,当数据维度增高、特征相关性加强或样本数量有限时,传统的最小二乘线性回归往往会出现过拟合、参数不稳定等问题。为了解决这些问题,我们引入了。在众多正则化方法中,**LASSO 回归(L1 正则化回归)因其独特的“特征选择”功能而备受关注。它不仅能提高模型的泛化能力,还可以自动筛除不重要的特征,简化模型结构。
一、引言:为什么我们需要 LASSO 回归?
在机器学习和统计建模中,线性回归是最早也是最常用的预测模型之一。然而,当数据维度增高、特征相关性加强或样本数量有限时,传统的最小二乘线性回归往往会出现过拟合、参数不稳定等问题。为了解决这些问题,我们引入了正则化技术。在众多正则化方法中,**LASSO 回归(L1 正则化回归)因其独特的“特征选择”功能而备受关注。它不仅能提高模型的泛化能力,还可以自动筛除不重要的特征,简化模型结构。
二、LASSO 回归是什么?
LASSO 是英文 Least Absolute Shrinkage and Selection Operator 的缩写,中文常称为“最小绝对收缩和选择算子”。它是在线性回归的损失函数中加入了一个惩罚项,这个惩罚项是回归系数绝对值和的加权值。与标准线性回归只追求拟合误差最小化不同,LASSO 回归同时关注误差与模型复杂度之间的平衡。
核心公式
传统线性回归优化目标可以表示为:
最小化 (预测误差平方和)
而 LASSO 回归 则在此基础上加入了惩罚项:
最小化(预测误差平方和 + λ × 所有参数绝对值之和)
其中 λ 是正则化参数,用于控制惩罚力度。
三、LASSO 的独门秘诀:为什么能自动“选特征”
最关键的地方在于 惩罚项采用的是 L1 范数(绝对值和),和我们常见的 L2 正则(平方和惩罚)不同:
-
L2(比如 Ridge 回归) 会让参数“更小更稳定”,但很少把系数压缩为真的 0;
-
L1(LASSO) 则有能力将一些系数压缩至 恰好等于 0,意味着这些特征完全被“丢弃”。
这就像是给模型装上了自动筛选器:对模型贡献不大的特征,会被惩罚得越来越小甚至归零,这等于是帮我们做了特征选择。这对于特征数量多、相关性强的数据集尤为重要。
四、LASSO 的直觉:惩罚背后的故事
可以把 LASSO 惩罚想象成一个预算委员会对模型参数的严格审核:
-
当 λ 很小时,惩罚很弱,LASSO 近似普通线性回归;
-
当 λ 增大时,委员会更严苛地要求模型“少用参数”,迫使很多系数趋近甚至等于零;
-
当 λ 极大时,更多变量被摒弃,模型变得极简。
这种机制帮助模型避免过拟合,同时提升了预测时的解释能力。特别是在高维数据或者强共线性数据中,LASSO 被证明是非常有效的工具。
五、比较:LASSO vs Ridge vs 传统线性回归
| 方法 | 是否带正则化 | 是否执行特征选择 | 模型复杂度 |
|---|---|---|---|
| 线性回归 | ❌ | ❌ | 容易过拟合 |
| Ridge 回归 | ✅(L2) | ❌ | 更稳定,但全量保留特征 |
| LASSO 回归 | ✅(L1) | ✅ | 自动筛除无关特征,提高泛化 |
这种比较帮助我们快速理解:如果你的目标是“既要预测准确又要模型简洁”,LASSO 是非常值得优先尝试的方法。
六、LASSO 在实践中的意义
LASSO 并不只是一个学术概念,它在现实世界的数据分析里有着广泛应用:
-
在高维基因数据中,从成千上万的基因表达变量中筛选出与疾病相关的重要变量;
-
在金融风险预测中剔除噪声特征,提高模型稳定性;
-
在机器学习建模流程中,作为特征选择的前置步骤,从而提升后续模型表现。
这些应用场景中,LASSO 的双重功能(减轻过拟合 & 自动特征选择)让数据科学家们趋之若鹜。
七、结论:LASSO 的核心价值
回顾本文重点:
🎯 LASSO 是线性回归加 L1 惩罚的正则化方法
🎯 它通过惩罚系数绝对值,实现特征压缩和自动选择
🎯 在面对高维数据、噪声特征和过拟合风险时尤为有用
🎯 是理解与提升模型泛化能力的重要工具
对于任何希望提升数据建模能力的读者来说,真正理解 LASSO 的原理并掌握如何调整 λ,将会是提升预测准确性和模型解释性的关键一步。
(本文内容基于Pyrcz, M.J., 2024, Applied Machine Learning in Python: A Hands-on Guide with Code [e-book]. Zenodo. doi:10.5281/zenodo.15169138章节整理) (https://geostatsguy.github.io/MachineLearningDemos_Book/)
更多推荐


所有评论(0)