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

【漫话机器学习系列】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 可能是最好的选择!


http://www.kler.cn/a/558531.html

相关文章:

  • 【力扣Hot 100】堆
  • 【uni-app】对齐胶囊容器组件
  • Future和FutureTask实现类详解以及使用。
  • 阿里云CDN转https个人测试证书过期更换
  • CentOS 7.9 解决 python3 报错 ModuleNotFoundError: No module named ‘_ssl‘ 的问题
  • Gradio全解11——使用transformers.agents构建Gradio UI(6)
  • 字节跳动2面、美团2面Java面试真题总结
  • 跟着 Lua 5.1 官方参考文档学习 Lua (7)
  • vscode settings(一):全局| 用户设置常用的设置项
  • UE_C++ —— Delegates
  • Selenium控制已经打开的浏览器(Chrome,Edge)
  • 计算机网络之路由协议(RIP路由协议)
  • 选择排序(详解)c++
  • 智能控制基础应用-C#Codesys共享内存实现数据高速交互
  • 十、OSG学习笔记-多线程(OpenThreads)
  • android 网络防护 手机网络安全怎么防
  • ArcGIS Pro在洪水淹没分析中的应用与实践
  • 全面汇总windows进程通信(二)
  • MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
  • 基于SpringBoot的二手交易系统