当前位置: 首页 > news >正文

【漫话机器学习系列】101.特征选择法之Lasso(Lasso For Feature Selection)

Lasso 特征选择法详解

1. Lasso 回归简介

Lasso(Least Absolute Shrinkage and Selection Operator,最小绝对收缩和选择算子)是一种基于 L1 范数正则化的线性回归方法。它不仅能够提高模型的泛化能力,还可以自动进行特征选择,即将一些不重要的特征的系数收缩到 0,从而减少模型的复杂度。


2. Lasso 回归的数学公式

Lasso 回归的目标函数如下:

\min_w \sum_{i=1}^{n} (y_i - X_i w)^2 + \alpha \sum_{j=1}^{k} |w_j|

其中:

  • X_i 是输入数据,
  • w 是待求的回归系数,
  • y_i 是目标值,
  • α 是正则化超参数(也称为阿尔法参数),用于控制正则化的强度,
  • \sum |w_j| 是 L1 范数的正则化项。

与 Ridge 回归(L2 正则化)不同,Lasso 使用L1 范数作为正则化项。L1 正则化的特点是可以使部分回归系数直接变为 0,从而进行特征选择


3. Lasso 正则化的作用

Lasso 主要通过 L1 正则化来调整回归系数,使其具有以下特性:

  1. 降低过拟合风险

    • 在高维数据中,普通线性回归可能会导致模型过拟合(overfitting),而 Lasso 通过对系数施加约束,使模型更加稳健。
  2. 特征选择(Feature Selection)

    • 由于 L1 正则化可以直接使某些特征的系数变为 0,因此 Lasso 可以自动筛选出最重要的特征,而忽略不重要的特征,从而提高模型的可解释性。
  3. 模型稀疏性(Sparsity)

    • Lasso 生成的模型是稀疏的(即许多特征的权重为 0),这在高维数据中尤为重要。例如,在基因数据分析、文本分类等应用中,特征的数量可能远远大于样本数,Lasso 能够有效减少模型复杂度。

4. Lasso 与 Ridge 的区别

Lasso 和 Ridge 都是常用的正则化方法,但它们在数学性质和应用上有所不同。

对比项Lasso(L1 正则化)Ridge(L2 正则化)
正则化项( \sumw_j
影响方式可以使权重变为 0,进行特征选择只会缩小权重,但不会变为 0
计算复杂度计算较难(非凸优化)计算较简单(凸优化)
适用场景适用于高维稀疏数据适用于所有特征都重要的情况

📌 总结:如果你的数据集有很多无关特征,建议使用 Lasso;如果所有特征都可能重要,建议使用 Ridge。


5. Lasso 回归中的超参数 α

Lasso 回归中的 α 参数决定了正则化的强度:

  • α 越大,正则化越强,更多的权重被收缩为 0,最终选出的特征更少。
  • α 过小,则正则化效果减弱,Lasso 退化为普通的线性回归。

如何选择合适的 α\alphaα?

通常使用交叉验证(Cross Validation)来选择最优的 α 值。例如,在 Scikit-Learn 中,我们可以使用 LassoCV 进行自动调优:

from sklearn.linear_model import LassoCV

lasso_cv = LassoCV(alphas=[0.1, 0.01, 0.001, 0.0001], cv=5)
lasso_cv.fit(X_train, y_train)

print("Optimal alpha:", lasso_cv.alpha_)

这将自动选择最优的 α 值,以获得最佳的特征选择效果。


6. Lasso 的应用场景

6.1 机器学习

Lasso 在机器学习中常用于:

  • 特征选择(Feature Selection):Lasso 能够筛选出最重要的特征,减少维度,提高模型可解释性。
  • 高维数据分析:适用于数据集中特征数量远大于样本数量的情况,如文本数据、基因数据等。
  • 稀疏回归问题:当数据具有稀疏性(即大部分特征无关)时,Lasso 通过自动选择特征提高模型性能。

6.2 自然语言处理(NLP)

  • 在 NLP 任务中,Lasso 可以用于词特征选择,帮助识别最重要的单词,而忽略不重要的词。

6.3 经济和金融预测

  • 在经济学和金融预测模型中,许多变量可能相关但不重要,Lasso 能够剔除不相关变量,提高预测精度。

7. Lasso 的局限性

尽管 Lasso 具有强大的特征选择能力,但也有一些局限:

  1. 特征共线性问题

    • 当多个特征高度相关时,Lasso 可能会随机选择其中一个,并将其他特征的系数设为 0。相比之下,Ridge 会均匀分配权重。
  2. 计算复杂度

    • Lasso 由于 L1 范数的不可微性质,优化问题较 Ridge 更复杂,计算成本更高。
  3. 在某些情况下可能导致欠拟合

    • 如果 α 过大,可能会丢失重要特征,导致模型欠拟合(underfitting)。

8. 总结

Lasso 是一种强大的特征选择方法,适用于高维数据,能够减少过拟合,提高模型可解释性。

核心要点:

  • Lasso 使用 L1 正则化,使部分特征权重变为 0,实现特征选择。
  • 与 Ridge(L2 正则化)不同,Lasso 生成稀疏模型,适用于高维数据。
  • α 超参数控制正则化强度,通常通过交叉验证选择最优值。
  • Lasso 适用于文本分析、基因数据、经济金融建模等领域。
  • Lasso 在特征共线性严重时可能表现不佳,此时 Elastic Net(L1+L2 结合)可能是更好的选择。

如果你的数据集存在大量无关特征,Lasso 可能是最好的选择!

相关文章:

  • 离子阱量子计算机的原理与应用:开辟量子计算的新天地
  • 代码随想录|62.不同路径,63.不同路径Ⅱ,343.整数拆分
  • 论文笔记(七十二)Reward Centering(四)
  • Linux系统移植之对NXP的Uboot修改后移植
  • 给SQL server数据库表字段添加注释SQL,附修改、删除注释SQL及演示
  • Comfyui Windows Desktop桌面版便携版安装教程
  • 深入了解 MySQL 中的 JSON_CONTAINS
  • com库原理使用
  • Python 环境管理介绍
  • 【DeepSeek-R1背后的技术】系列十一:RAG原理介绍和本地部署(DeepSeek+RAGFlow构建个人知识库)
  • 基于 go-rwt 在 Windows 环境下对 Go Web 应用进行 HTTP 压力测试
  • 数仓搭建实操(传统数仓oracle):DWD数据明细层
  • Python绘画案例2——用Python写动态小人发射爱心~~,包含源码
  • C++ 类和对象(友元、内部类、匿名对像)
  • c++第一课(基础c)
  • 【Python爬虫(55)】Scrapy进阶:深入剖析下载器与下载中间件
  • 服务器系统都更新到windowsserver2025了
  • 完美解决:.vmx 配置文件是由 VMware 产品创建,但该产品与此版 VMware Workstation 不兼容
  • 如何将 Excel 数据转换为 SQL 脚本:从入门到实战
  • 机器学习---KNN算法核心原理和思路分析
  • 体坛联播|安切洛蒂预计执教巴西国家队,利拉德确诊跟腱撕裂
  • 中介在网上非法贩婴“一个孩子8.5万元”?丹阳警方介入
  • QFII一季度现身超300家公司:持有南京银行市值最高,5家青睐立航科技
  • 新华时评·首季中国经济观察丨用好用足更加积极的财政政策
  • 台媒称美派遣前军官出任“汉光演习”资深观察员,国防部回应
  • 牛市早报|特朗普称或将“大幅降低”对华关税,外交部回应