LASSO回归(L1回归L1正则化)举例说明:正则化项使不重要的特征系数逐渐为零0的过程

详细步骤说明β₃如何在LASSO回归中变为零

为了深入理解LASSO回归如何将回归系数β₃缩减为零,我们将通过更详细的步骤,结合数学推导和计算,来演示这一过程。

1. 问题描述

我们有一个用于预测房屋价格 y y y 的数据集,包含以下特征:

  • 面积 ( x 1 x_1 x1)
  • 卧室数量 ( x 2 x_2 x2)
  • 距市中心距离 ( x 3 x_3 x3)

数据集如下:

样本编号面积 ( x 1 x_1 x1)卧室数量 ( x 2 x_2 x2)距市中心距离 ( x 3 x_3 x3)价格 ( y y y)
150210200
26039250
37037300
48046350
59044400

我们希望建立一个线性回归模型:
y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 3 y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3 y=β0+β1x1+β2x2+β3x3

并使用LASSO回归来估计参数,使得β₃被缩减为零。

2. 数据标准化

在进行LASSO回归前,我们需要对数据进行标准化,以确保各特征在同一尺度上,防止正则化项对不同量级的特征产生不平衡影响。

2.1 计算均值和标准差

计算均值:

  • x ˉ 1 = 50 + 60 + 70 + 80 + 90 5 = 70 \bar{x}_1 = \frac{50 + 60 + 70 + 80 + 90}{5} = 70 xˉ1=550+60+70+80+90=70
  • x ˉ 2 = 2 + 3 + 3 + 4 + 4 5 = 3.2 \bar{x}_2 = \frac{2 + 3 + 3 + 4 + 4}{5} = 3.2 xˉ2=52+3+3+4+4=3.2
  • x ˉ 3 = 10 + 9 + 7 + 6 + 4 5 = 7.2 \bar{x}_3 = \frac{10 + 9 + 7 + 6 + 4}{5} = 7.2 xˉ3=510+9+7+6+4=7.2
  • y ˉ = 200 + 250 + 300 + 350 + 400 5 = 300 \bar{y} = \frac{200 + 250 + 300 + 350 + 400}{5} = 300 yˉ=5200+250+300+350+400=300

计算标准差:

  • s x 1 = ∑ ( x 1 i − x ˉ 1 ) 2 n = 14.1421 s_{x_1} = \sqrt{\frac{\sum (x_{1i} - \bar{x}_1)^2}{n}} = 14.1421 sx1=n(x1ixˉ1)2 =14.1421
  • s x 2 = ∑ ( x 2 i − x ˉ 2 ) 2 n = 0.7483 s_{x_2} = \sqrt{\frac{\sum (x_{2i} - \bar{x}_2)^2}{n}} = 0.7483 sx2=n(x2ixˉ2)2 =0.7483
  • s x 3 = ∑ ( x 3 i − x ˉ 3 ) 2 n = 2.1360 s_{x_3} = \sqrt{\frac{\sum (x_{3i} - \bar{x}_3)^2}{n}} = 2.1360 sx3=n(x3ixˉ3)2 =2.1360
  • s y = ∑ ( y i − y ˉ ) 2 n = 70.7107 s_{y} = \sqrt{\frac{\sum (y_i - \bar{y})^2}{n}} = 70.7107 sy=n(yiyˉ)2 =70.7107

2.2 标准化数据

对于每个特征和目标变量,计算标准化值:
x i j std = x i j − x ˉ j s x j x_{ij}^{\text{std}} = \frac{x_{ij} - \bar{x}_j}{s_{x_j}} xijstd=sxjxijxˉj

y i std = y i − y ˉ s y y_i^{\text{std}} = \frac{y_i - \bar{y}}{s_y} yistd=syyiyˉ

标准化后的数据如下:

样本编号 x 1 std x_1^{\text{std}} x1std x 2 std x_2^{\text{std}} x2std x 3 std x_3^{\text{std}} x3std y std y^{\text{std}} ystd
1-1.4142-1.60361.3093-1.4142
2-0.7071-0.26730.8433-0.7071
30-0.2673-0.09370
40.70711.0690-0.56190.7071
51.41421.0690-1.49701.4142

3. 建立LASSO回归模型

标准化后,我们的模型为:
y std = β 1 x 1 std + β 2 x 2 std + β 3 x 3 std y^{\text{std}} = \beta_1 x_1^{\text{std}} + \beta_2 x_2^{\text{std}} + \beta_3 x_3^{\text{std}} ystd=β1x1std+β2x2std+β3x3std

由于数据已中心化,截距项为零。

LASSO的目标函数为:
min ⁡ β { 1 2 n ∑ i = 1 n ( y i std − ∑ j = 1 3 β j x i j std ) 2 + λ ∑ j = 1 3 ∣ β j ∣ } \min_{\beta} \left\{ \frac{1}{2n} \sum_{i=1}^{n} \left( y_i^{\text{std}} - \sum_{j=1}^{3} \beta_j x_{ij}^{\text{std}} \right)^2 + \lambda \sum_{j=1}^{3} |\beta_j| \right\} βmin 2n1i=1n(yistdj=13βjxijstd)2+λj=13βj

4. 选择正则化参数 λ

为了使β₃缩减为零,需要选择合适的λ值。为了演示,我们将尝试不同的λ值,观察β₃的变化。

5. 使用坐标下降法求解

由于LASSO的目标函数是凸的且可分离,我们可以使用坐标下降法逐步更新每个参数。

5.1 计算必要的量

首先,计算每个特征与目标变量的相关性(即协方差):
z ~ j = 1 n ∑ i = 1 n x i j std y i std \tilde{z}_j = \frac{1}{n} \sum_{i=1}^{n} x_{ij}^{\text{std}} y_i^{\text{std}} z~j=n1i=1nxijstdyistd

  • 计算 z ~ 1 \tilde{z}_1 z~1
    z ~ 1 = 1 5 ( ( − 1.4142 ) ( − 1.4142 ) + ( − 0.7071 ) ( − 0.7071 ) + 0 + 0.7071 × 0.7071 + 1.4142 × 1.4142 ) = 1 \tilde{z}_1 = \frac{1}{5} \left( (-1.4142)(-1.4142) + (-0.7071)(-0.7071) + 0 + 0.7071 \times 0.7071 + 1.4142 \times 1.4142 \right) = 1 z~1=51((1.4142)(1.4142)+(0.7071)(0.7071)+0+0.7071×0.7071+1.4142×1.4142)=1
  • 计算 z ~ 2 \tilde{z}_2 z~2
    z ~ 2 = 1 5 ( ( − 1.6036 ) ( − 1.4142 ) + ( − 0.2673 ) ( − 0.7071 ) + 0 + 1.0690 × 0.7071 + 1.0690 × 1.4142 ) ≈ 0.946 \tilde{z}_2 = \frac{1}{5} \left( (-1.6036)(-1.4142) + (-0.2673)(-0.7071) + 0 + 1.0690 \times 0.7071 + 1.0690 \times 1.4142 \right) \approx 0.946 z~2=51((1.6036)(1.4142)+(0.2673)(0.7071)+0+1.0690×0.7071+1.0690×1.4142)0.946
  • 计算 z ~ 3 \tilde{z}_3 z~3
    z ~ 3 = 1 5 ( 1.3093 × ( − 1.4142 ) + 0.8433 × ( − 0.7071 ) + 0 + ( − 0.5619 ) ( 0.7071 ) + ( − 1.4970 ) ( 1.4142 ) ) ≈ − 0.993 \tilde{z}_3 = \frac{1}{5} \left( 1.3093 \times (-1.4142) + 0.8433 \times (-0.7071) + 0 + (-0.5619)(0.7071) + (-1.4970)(1.4142) \right) \approx -0.993 z~3=51(1.3093×(1.4142)+0.8433×(0.7071)+0+(0.5619)(0.7071)+(1.4970)(1.4142))0.993

5.2 更新公式

对于每个参数βₖ,更新公式为:
β k = S ( z ~ k , λ ) 1 \beta_k = \frac{S\left( \tilde{z}_k, \lambda \right)}{1} βk=1S(z~k,λ)

其中 S ( z , λ ) S(z, \lambda) S(z,λ) 是软阈值函数:
S ( z , λ ) = { z − λ , if  z > λ 0 , if  ∣ z ∣ ≤ λ z + λ , if  z < − λ S(z, \lambda) = \begin{cases} z - \lambda, & \text{if } z > \lambda \\ 0, & \text{if } |z| \leq \lambda \\ z + \lambda, & \text{if } z < -\lambda \end{cases} S(z,λ)= zλ,0,z+λ,if z>λif zλif z<λ

5.3 尝试不同的 λ 值

5.3.1 λ = 0.5
  • 更新 β₁:
    β 1 = S ( 1 , 0.5 ) = 1 − 0.5 = 0.5 \beta_1 = S(1, 0.5) = 1 - 0.5 = 0.5 β1=S(1,0.5)=10.5=0.5
  • 更新 β₂:
    β 2 = S ( 0.946 , 0.5 ) = 0.946 − 0.5 = 0.446 \beta_2 = S(0.946, 0.5) = 0.946 - 0.5 = 0.446 β2=S(0.946,0.5)=0.9460.5=0.446
  • 更新 β₃:
    β 3 = S ( − 0.993 , 0.5 ) = − 0.993 + 0.5 = − 0.493 \beta_3 = S(-0.993, 0.5) = -0.993 + 0.5 = -0.493 β3=S(0.993,0.5)=0.993+0.5=0.493

结果: β₃未缩减为零。

5.3.2 λ = 0.993
  • 更新 β₁:
    β 1 = S ( 1 , 0.993 ) = 1 − 0.993 = 0.007 \beta_1 = S(1, 0.993) = 1 - 0.993 = 0.007 β1=S(1,0.993)=10.993=0.007
  • 更新 β₂:
    β 2 = S ( 0.946 , 0.993 ) = 0 ( 因为  ∣ 0.946 ∣ < 0.993 ) \beta_2 = S(0.946, 0.993) = 0 \quad (\text{因为 } |0.946| < 0.993) β2=S(0.946,0.993)=0(因为 ∣0.946∣<0.993)
  • 更新 β₃:
    β 3 = S ( − 0.993 , 0.993 ) = − 0.993 + 0.993 = 0 \beta_3 = S(-0.993, 0.993) = -0.993 + 0.993 = 0 β3=S(0.993,0.993)=0.993+0.993=0

结果: β₃被缩减为零,但β₂也被缩减为零,β₁非常小。

5.3.3 λ = 0.7
  • 更新 β₁:
    β 1 = S ( 1 , 0.7 ) = 1 − 0.7 = 0.3 \beta_1 = S(1, 0.7) = 1 - 0.7 = 0.3 β1=S(1,0.7)=10.7=0.3
  • 更新 β₂:
    β 2 = S ( 0.946 , 0.7 ) = 0.946 − 0.7 = 0.246 \beta_2 = S(0.946, 0.7) = 0.946 - 0.7 = 0.246 β2=S(0.946,0.7)=0.9460.7=0.246
  • 更新 β₃:
    β 3 = S ( − 0.993 , 0.7 ) = − 0.993 + 0.7 = − 0.293 \beta_3 = S(-0.993, 0.7) = -0.993 + 0.7 = -0.293 β3=S(0.993,0.7)=0.993+0.7=0.293

结果: β₃仍未缩减为零。

5.3.4 λ = 0.993

此时λ等于β₃的绝对值。

  • 更新 β₃:
    β 3 = S ( − 0.993 , 0.993 ) = 0 \beta_3 = S(-0.993, 0.993) = 0 β3=S(0.993,0.993)=0

结果: β₃被缩减为零。

5.4 结论

当 λ ≥ 0.993 时,β₃会被缩减为零。然而,过大的 λ 也会导致其他参数缩减过多,模型可能无法很好地拟合数据。

6. 验证模型性能

为了验证模型性能,我们可以计算残差平方和(RSS):
RSS = ∑ i = 1 n ( y i std − ∑ j = 1 3 β j x i j std ) 2 \text{RSS} = \sum_{i=1}^{n} \left( y_i^{\text{std}} - \sum_{j=1}^{3} \beta_j x_{ij}^{\text{std}} \right)^2 RSS=i=1n(yistdj=13βjxijstd)2

对于 λ = 0.993,参数为:

  • β₁ = 0.007
  • β₂ = 0
  • β₃ = 0

代入计算,可以发现模型无法很好地拟合数据。

7. 权衡与选择

为了在变量选择和模型拟合之间取得平衡,我们需要选择一个合适的 λ,使得:

  • β₃被缩减为零,达到变量选择的目的。
  • 其他参数(β₁和β₂)仍能保持较大的值,保证模型的拟合能力。

通过尝试 λ = 0.8,我们得到:

  • β₁ = 1 - 0.8 = 0.2
  • β₂ = 0.946 - 0.8 = 0.146
  • β₃ = -0.993 + 0.8 = -0.193

此时 β₃ 仍未为零,但值已经较小。

8. 最终选择

根据模型的实际需求,我们可能接受一个较小但非零的 β₃,或者通过交叉验证等方法找到最佳的 λ。

9. 总结

通过以上详细的计算步骤,我们可以得出:

  • LASSO回归通过增加正则化参数 λ,逐渐缩减回归系数的值。
  • 当 λ 达到某个阈值时,特定的系数(如 β₃)会被精确地缩减为零,实现变量选择。
  • 选择合适的 λ 需要在模型的复杂度和拟合效果之间进行权衡,通常通过交叉验证来确定。

10. 结论

通过更详细的步骤,我们展示了在LASSO回归中,如何通过调整正则化参数 λ,使得回归系数 β₃ 精确地缩减为零。这一过程体现了LASSO回归在变量选择和模型稀疏性方面的独特优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145405.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

pdf文件怎么直接翻译?使用这些工具让翻译变得简单

在全球化日益加深的职场环境中&#xff0c;处理外语PDF文件成为了许多职场人士面临的共同挑战。 面对这些“加密”的信息宝库&#xff0c;如何高效、准确地将英文pdf翻译成对应语言&#xff0c;成为了提升工作效率的关键。 以下是几款在PDF翻译领域表现出色的软件&#xff0c…

基于 UniApp 平台的学生闲置物品售卖小程序设计与实现

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

寄存器二分频电路

verilog代码 module div2_clk ( input clk, input rst,output clk_div);reg clk_div_r; assign clk_div clk_div_r;always(posedge clk) beginif(rst)beginclk_div_r < 1b0;endelsebeginclk_di…

pytorch实现RNN网络

目录 1.导包 2. 加载本地文本数据 3.构建循环神经网络层 4.初始化隐藏状态state 5.创建随机的数据&#xff0c;检测一下代码是否能正常运行 6. 构建一个完整的循环神经网络 7.模型训练 8.个人知识点理解 1.导包 import torch from torch import nn from torch.nn imp…

API安全推荐厂商瑞数信息入选IDC《中国数据安全技术发展路线图》

近日&#xff0c;全球领先的IT研究与咨询公司IDC发布报告《IDC TechScape&#xff1a;中国数据安全技术发展路线图&#xff0c;2024》。瑞数信息凭借其卓越的技术实力和广泛的行业应用&#xff0c;被IDC评选为“增量型”技术曲线API安全的推荐厂商。 IDC指出&#xff0c;数据安…

Liveweb视频汇聚平台支持GB28181转RTMP、HLS、RTSP、FLV格式播放方案

GB28181协议凭借其在安防流媒体行业独有的大统一地位&#xff0c;目前已经在各种安防项目上使用。雪亮工程、幼儿园监控、智慧工地、物流监控等等项目上目前都需要接入安防摄像头或平台进行直播、回放。而GB28181协议作为国家推荐标准&#xff0c;目前基本所有厂家的安防摄像头…

Netty源码解析-请求处理与多路复用

Netty基本介绍&#xff0c;参考 Netty与网络编程 摘要 Netty源码系列-NioEventLoop 1.1 Netty给Channel分配Nio Event Loop的规则 看下图&#xff0c;EventLoopGroup是线程组&#xff0c;每个EventLoop是一个线程&#xff0c;那么线程处理请求是怎么分配的呢&#xff1f;我…

Docker 以外置数据库方式部署禅道

2.安装步骤 2.1.参考资料 禅道官网文档: https://www.zentao.net/book/zentaopms/docker-1111.html https://www.zentao.net/book/zentaopms/405.html 2.2.详细步骤 ssh 登录服务器创建目录 /opt/zentao /opt/zentao/data /opt/zentao/db cd /opt mkdir zentao mkdir zentao…

回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量…

java -versionbash:/usr/lib/jvm/jdk1.8.0_162/bin/java:无法执行二进制文件:可执行文件格式错误

实验环境&#xff1a;Apple M1在VMwareFusion使用Utubun Jdk文件错误 &#xfffc; 尝试&#xff1a; 1、重新在网盘下载java1.8 2、在终端通过命令下载 3、确保 JDK 正确安装在系统中&#xff0c;可以通过 echo $JAVA_HOME 检查 JAVA_HOME 环境变量是否设置正确。 &#xfff…

十种果冻的做法

菠萝果冻 1.在菠萝的1/5处切开&#xff0c;切去顶做盖子用&#xff0c;用水果刀在四周划一圈使皮和果肉分离 2.注意底部切透了&#xff0c;用水果刀把菠萝肉挖出&#xff0c;菠萝肉切丁用盐水浸泡备用 3.把菠萝丁放入料理机中加入少许纯净水&#xff0c;打成菠萝汁备用 4.打好…

【学习笔记】数据结构(六 ②)

树和二叉树&#xff08;二&#xff09; 文章目录 树和二叉树&#xff08;二&#xff09;6.3.2 线索二叉树 6.4 树和森林6.4.1 树的存储结构6.4.2 森林与二叉树的转换6.4.3 树和森林的遍历 6.5 树与等价问题6.5.1 等价定义6.5.2 划分等价类的方法6.5.3 划分等价类的具体操作 - 并…

【IoTDB 线上小课 07】多类写入接口,快速易懂的“说明书”!

【IoTDB 视频小课】稳定更新中&#xff01;第七期来啦~ 关于 IoTDB&#xff0c;关于物联网&#xff0c;关于时序数据库&#xff0c;关于开源... 一个问题重点&#xff0c;3-5 分钟&#xff0c;我们讲给你听&#xff1a; 一条视频了解写入接口 了解我们的友友们&#xff0c;应该…

[Linux]Vi和Vim编辑器

Vi和Vim编辑器 Linux系统会内置vi文本编辑器, 类似于windows中的记事本 Vim具有程序编辑的能力, 可以看作是Vi的增强版本, 可以进行语法检查, 代码补全,代码编译和错误调整等功能 Vi和Vim的模式 快速入门 使用vim开发一个Hello.java程序 通过Xshell连接Linux系统命令行输入…

XML:DOM4j解析XML

XML简介&#xff1a; 什么是XML&#xff1a;XML 是独立于软件和硬件的信息传输工具。 XML 的设计宗旨是传输数据&#xff0c;而不是显示数据。XML 标签没有被预定义。您需要自行定义标签。XML不会做任何事情&#xff0c;XML被设计用来结构化、存储以及传输信息。 XML可以发明…

企业内网安全

企业内网安全 1.安全域2.终端安全3.网络安全网络入侵检测系统异常访问检测系统隐蔽信道检测系统 4.服务器安全基础安全配置入侵防护检测 5.重点应用安全活动目录邮件系统VPN堡垒机 6.蜜罐体系建设蜜域名蜜网站蜜端口蜜服务蜜库蜜表蜜文件全民皆兵 1.安全域 企业出于不同安全防…

[备忘]测算.net中对象所占用的内存

.net 基础库中应该是没有直接提供计算某个对象所占内存的方法。简单查了下&#xff0c;找到几种方式&#xff1a; 1、运行态用工具进行内存分析 比如&#xff0c;微软这篇教程中有介绍。《使用 .NET 对象分配工具分析内存使用情况》https://learn.microsoft.com/zh-cn/visuals…

优数:助力更高效的边缘计算

在数字化时代的浪潮中&#xff0c;数据已成为企业最宝贵的资产之一。随着物联网&#xff08;IoT&#xff09;设备的激增和5G技术的兴起&#xff0c;我们正迅速步入一个新时代&#xff0c;在这个时代中&#xff0c;数据不仅在量上爆炸性增长&#xff0c;更在速度和实时性上提出了…

idea 恢复 pom 文件呈现灰色并带删除线

今天在 idea 中导入别人的项目时发现有几个 pom 文件是灰色的并带删除线。 可以用以下方式解决&#xff1a; 打开file - settings - build,execution,deployment - Build Tools - Maven - Ignored Files 把 pom.xml 前面的复选框去掉&#xff0c;去掉之后&#xff0c;点击 appl…

IMS 中private user id/public user id的格式

private user identity(IMPI)的格式为 "<IMSI>ims.mnc<MNC>.mcc<MCC>.3gppnetwork.org" public user identity SIP URI 格式为 sip:usernamedomain&#xff1b;而Tel URI 格式为 tel:<CC><NDC><SN> temporary public user ide…