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

【机器学习300问】110、什么是Lasso回归模型?

        LASSO回归的全称是Least Absolute Shrinkage and Selection Operator,中文叫“最小绝对收缩和选择算子”,用一个比喻来初步感受一下它的作用:

        想象你在整理一个杂乱无章的房间,里面堆满了各种物品(代表众多的预测变量),有些物品对你来说很有价值(真正影响结果的变量),而有些则是可有可无的杂物(与结果关系不大或无关的变量)。Lasso回归就像是一个高效的空间整理师,它不仅帮你整理出最重要的几样物品,还会把那些不重要的杂物直接扔出门外,让你的房间变得干净整洁,同时也更容易找到你需要的东西。

Lasso回归可以有效应对多重共线性问题,即使在预测变量高度相关的情况下也能表现良好。

一、Lasso回归的原理

(1)数学表达

J = \frac{1}{2n} [\sum_{i=1}^n (y_i - \sum_{j=1}^p \beta_j x_{ij})^2 + \alpha \sum_{j=1}^p |\beta_j|]

在这个表达式中:

第一部分:\frac{1}{2n} \sum_{i=1}^n (y_i - \sum_{j=1}^p \beta_j x_{ij})^2是回归模型的均方误差(MSE)

第二部分:\alpha \sum_{j=1}^p |\beta_j|是参数向量的L1范数乘以一个调节参数α

n代表样本的数量,p 代表自变量的数量,y_i代表因变量的第i个观测值,\beta_j代表第j个回归系数,x_{ij}代表第i个观测的第j个自变量的值。α是正则化参数,它控制着L1惩罚的强度。

(2)文字说明

        LASSO的目标函数包括数据拟合项和惩罚项,其中惩罚项是系数的L1范数,这使得部分系数严格收缩到零,从而实现自动的特征选择。

        Lasso回归的目标是最小化误差平方和,同时施加所有系数的绝对值之和的惩罚。这种类型的正则化(L1正则化)可以导致系数的某些估计值精确地等于0。这意味着,Lasso回归可以有效地进行变量选择,并确定最重要的变量。L1正则化有助于处理特征数量可能多于样本数量的问题,防止模型过拟合,并且可以增强模型的预测能力。

        这个过程就好比是用一根神奇的橡皮筋绑在所有物品上,然后逐渐拉紧。对于那些不那么重要的物品(即对预测结果贡献小的变量),橡皮筋会直接把它们的“价值”(系数)拉到零,仿佛它们从未存在过,从而实现了变量的选择性剔除;而对于关键物品(重要变量),即便橡皮筋拉得很紧,它们依然能保持一定的“体积”(非零系数),因为它们对房间的布局(模型结果)至关重要。

        Lasso的L1惩罚项尤其在变量的数量很大时有用,当中只有少数几个因素实际影响响应变量,因此该方法能够自动进行特征选择并输出一个简洁模型。一个合适的α值可以通过交叉验证获得,α的最佳值应平衡误差平方和的减少和模型复杂度的降低(即系数的稀疏性)。

二、Lasso回归的局限性

        Lasso回归非常强大,拥有特征选择、处理多重共线性等优点,但也存在局限性:

(1)计算成本与速度

        Lasso回归没有显式解,这意味着不能像求解普通线性回归那样直接得到参数估计。相反,需要依赖迭代算法,如坐标下降法或最小角回归等。这些算法虽然有效,但相比有显式解的方法,计算成本较高,尤其是在处理大规模数据集时,可能会显得较慢。

(2)连续型变量的处理

        Lasso回归采用的L1范数惩罚可能导致对连续型变量的变化非常敏感。即使变量的小幅变动也可能引起系数的大幅度变化,有时甚至将重要变量的系数“挤压”至零,这可能不是我们期望的结果。相比之下,岭回归使用L2范数惩罚,对连续变量的处理更为温和。

(3)变量选择的不稳定性

        Lasso回归在变量选择上的结果可能不稳定,特别是当存在多个高度相关的预测变量时。数据的微小变化或正则化参数λ的轻微调整都可能导致选入或排除的变量发生变化,这种现象被称为“阈值效应”。

(4)系数的非唯一性

        在某些情况下,Lasso回归得到的系数解可能不是唯一的,特别是当存在多个变量高度相关时。这增加了结果解释的难度。虽然Lasso可以减少模型的复杂度,避免过拟合,但过度的正则化(即选择较大的λ值)可能会引入偏差,导致模型欠拟合,即无法充分捕捉数据的真实结构。尽管稀疏性是Lasso的一个吸引人的特性,它意味着模型只保留少数重要的特征,但在某些场景下,如果所有的特征都对预测有贡献,过于追求稀疏性可能会牺牲模型的预测性能。

http://www.lryc.cn/news/366413.html

相关文章:

  • Qt实现麦克风音频输入保存wav文件
  • docker_如何推送镜像到仓库(hub.docker.com)
  • 【Python】认识 Python
  • Vue根据后端返回的tabList动态渲染组件信息
  • 二轴机器人大米装箱机:技术创新引领智能包装新潮流
  • rtl8723DU移植 android4.4 4418 (第二部分蓝牙部分)
  • 【Vue】组件的存放目录问题
  • 开发PlugLink插件:自动生成并发布博客文章
  • Ant Design Pro
  • 加密软件好用的是哪个?为什么这么多人说迅软DSE加密软件好用?
  • 大模型日报2024-06-07
  • Day49 动态规划part08
  • React -- memo允许你的组件在 props 没有改变的情况下跳过重新渲染。
  • 路径
  • 逆波兰表达式
  • git(其六)--总结
  • kafka-生产者拦截器(SpringBoot整合Kafka)
  • 每日一题:聊聊 Redis 过期键的删除策略
  • 边缘计算的AI小板——OrangePi AI Pro
  • RDMA (2)
  • vue.config.js中,devServer对象用于配置开发服务器的行为
  • JVM 运行流程
  • android-JNI
  • Go_unsafe包
  • 【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十三)
  • 企业建站响应式网站建设平台版源码系统 海量模版可选择 带完整的安装代码以及搭建教程
  • 在 VSCode 中搭建 Flutter 开发环境并运行项目
  • 如何执行VMware P2V迁移|VMware Converter和替代方案
  • 03-3.2.3 队列的链式存储的实现
  • Spring AI 第二讲 之 Chat Model API 第八节Anthropic 3 Chat