【机器学习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.rhkb.cn/news/349638.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快捷回复话术分享:如何应对顾客愤怒骂人?

在客服的日常工作中,面对情绪激动、甚至愤怒发泄骂人的顾客是常见的挑战。初入此行业的小伙伴们往往在遭遇顾客的激烈情绪时感到手足无措,不知道如何妥善回应。为此,本文将分享一些实用的快捷回复话术和技巧,帮助新手客服更好地处…

flink源码系列:RPC通信

这里写目录标题 1. 本节课目的2.开始本节内容2.1.RPC概念3.2.大数据组件常见的RPC实现技术3.3.Pekko(Akka)3.3.1. Akka、Pekko基本概念3.3.2.Pekko Demo事例3.3.2.1.PekkoData 类3.3.2.2.PekkoRpcReceiverActor类3.3.2.3.PekkoRpcSenderActor 类3.3.2.4.…

使用QT制作QQ登录界面

mywidget.cpp #include "mywidget.h"Mywidget::Mywidget(QWidget *parent): QWidget(parent) {/********制作一个QQ登录界面*********************/this->resize(535,415);//设置登录窗口大小this->setFixedSize(535,415);//固定窗口大小this->setWindowTi…

图片转Base64

在Python中, 可以使用内置的base64模块以及图像处理库(如PIL, 也称为Pillow)来将图片转换为Base64编码的字符串. 以下是一个简单的示例, 说明如何实现这一过程:首先, 需要安装Pillow库(如果尚未安装), 可以使用pip来安装: pip install pillow然后, 可以使用以下Python代码将图片…

【kyuubi-spark】从0-1部署kyuubi集成spark执行spark sql到k8s读取iceberg的minio数据

一、背景 团队在升级大数据架构 前端使用trino查询,对trino也进行了很多优化,目前测试来看,运行还算稳定,但是不可避免的trino的任务总会出现失败的情况。原来的架构是trino失败后去跑hive,而hive是跑mapreduce依赖于…

VBA语言専攻每周资料领取通知

通知20240615 各位学员∶本周MF系列VBA技术资料增加626-630讲,T3学员看到通知后请免费领取,领取时间6月14日晚上19:00-6月15日晚上20:00。本次增加内容: MF626:将列标题转换为数字 MF627:拆分日期和时间 MF628:从工作表中随机取数 MF629:从工作表中…

【MySQL】日志详解

本文使用的MySQL版本是8 日志概览 它们记录了数据库系统中的不同操作和事件,以便于故障排除、性能优化和数据恢复。本文将介绍MySQL中常见的几种日志,同时也会介绍一点常用的选项。 官方文档:MySQL :: MySQL 8.0 Reference Manual :: 7.4 M…

【FAS】《CN103106397B》

原文 CN103106397B-基于亮瞳效应的人脸活体检测方法-授权-2013.01.19 华南理工大学 方法 / 点评 核心方法用的是传统的形态学和模板匹配,亮点是双红外发射器做差分 差分:所述FPGA芯片控制两组红外光源(一近一远)交替亮灭&…

【算法专题--链表】相交链表--高频面试题(图文详解,小白一看就会!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 --- 数学思维 ⭐双指针 --- 按链表长度计算 🥝 判断相交 🍇 求出交点 🍍实现步骤 四、总结与提炼 五、共勉 一、前言 相交链表这道题,可以说是--链表专题--&#xf…

【C++进阶学习】第一弹——继承(上)——探索代码复用的乐趣

前言: 在前面,我们已经将C的初阶部分全部讲完了,包括类与对象、STL、栈和队列等众多内容,今天我们就进入C进阶部分的学习,今天先来学习第一弹——继承 目录 一、什么是继承?为什么会有继承? 二…

C语言详解(文件操作)1

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…

【成品设计】基于物联网的停车管理系统设计与实现

《基于物联网的停车管理系统设计与实现》 整体功能: 本次课题中,主要设计的是一款基于物联网技术的校园停车的管理系统,该系统能更方便得让管理员对停车场进行管理,同时也能够满足和方便用户使用。针对此种现象,就需…

推流工具OBS的下载使用

一、下载安装 OBS,windows版本官网下载地址 二、推流步骤 安装好之后,打开软件 1、右下角,打开设置 2、输入推流地址,一般为rtmp格式开头的推流地址 输入完成后,应用并确定关闭窗口 3、“来源”里面新建媒体源、新…

[Shell编程学习路线]——探讨Shell中变量的作用范围(export)

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月14日10点14分 🀄️文章质量:95分 文章目录 ————前言———— 定义变量: 输出变…

【C语言】一篇文章带你深度理解函数

目录 1. 函数的概念 2. 库函数 2.1 标准库和头文件 2.2 库函数的使用方法 2.2.1 举例 sqrt 2.2.2 库函数文档的一般格式 3. 自定义函数 3.1 函数的语法形式 3.2 函数的举例 4. 形参和实参 4.1 实参 4.2 形参 4.3 实参和形参的关系 5. …

“三夏”农忙:EasyCVR/EasyDSS无人机技术助推现代农业走向智能化

随着科技的飞速发展,无人机技术已经逐渐渗透到我们生活的方方面面。其中,无人机在农业领域的应用尤为引人注目。它们不仅提高了农业生产的效率,还为农民带来了更便捷、更智能的种植方式。 无人机在农业应用场景中,通过搭载各种设备…

生命在于学习——Python人工智能原理(3.3)

三、深度学习 4、激活函数 激活函数的主要作用是对神经元获得的输入进行非线性变换,以此反映神经元的非线性特性。常见的激活函数有线性激活函数、符号激活函数、Sigmod激活函数、双曲正切激活函数、高斯激活函数、ReLU激活函数。 (1)线性…

Go Module详解

文章目录 基本介绍相关环境变量Go Module的使用初始化项目(go mod init)管理依赖项(go mod edit)获取依赖项(go mod download)整理依赖项(go mod tidy)导入vendor目录(go…

Zynq学习笔记--AXI4-Stream到视频输出IP是如何工作的?

目录 1. 简介 2. 原理详解 2.1 示例工程 2.2 AXI4-Stream to Video Out 3. Master/Slave Timing Mode 3.1 Slave Timing Mode 3.2 Master Timing Mode 4. 总结 1. 简介 本文主要介绍了 AXI4-Stream 到视频输出 的内容。其中,示例工程展示了一个具体的设计&…

后端项目实战--瑞吉外卖项目软件说明书

瑞吉外卖项目软件说明书 一、项目概述 瑞吉外卖项目是一个外卖服务平台,用户可以通过该平台浏览餐厅菜单、下单、支付以及追踪订单状态。产品原型就是一款产品成型之前的一个简单的框架,就是将页面的排版布局展现出来,使产品得初步构思有一…