彩笔运维勇闯机器学习--lasso回归

news/2025/9/22 10:23:36/文章来源:https://www.cnblogs.com/MrVolleyball/p/19104632

前言

彩笔运维勇闯机器学习,今天我们来讨论一下lasso回归,本期又是一起数学推理过程展示

坐标下降法

目标找到一组参数,使目标函数值最小。比如\(f(x,y)=3x^2+5xy+10y^2\),要找到\(x,y\)使得\(f(x,y)\)取值最小

\[x_j^{(k+1)} = \arg \min_{x_j} f(x_1^{(k+1)}, \dots, x_{j-1}^{(k+1)}, x_j, x_{j+1}^{(k)}, \dots, x_n^{(k)}) \]

每次固定\(x_j\)之外的所有变量,对\(x_j\)进行最小化,然后不断的迭代\(x_j\)

推导过程

我们就以上述提到的函数来推导一下,加深对这个过程的理解$$f(x,y)=3x2+5xy+10y2$$

1)首先先寻找一个点,\((1,1)\),计算此时的函数值

\[f(1,1)=3x^2+5xy+10y^2=18 \]

2)分别对x,y求偏导

对x求偏导,并且令其导数为0:

\[\frac {\partial f}{\partial x}=6x+5y=0,x=-\frac{5}{6}y \]

同理对y求偏导

\[\frac {\partial f}{\partial y}=5x+20y=0,y=-\frac{1}{4}x \]

3)开始迭代,第一轮

调整x,固定y

\[x=-\frac{5}{6}y=-\frac{5}{6}·1 = -\frac{5}{6} \]

调整y,固定x

\[y=-\frac{1}{4}x=-\frac{1}{4}·-\frac{5}{6}=\frac{5}{24} \]

此时函数值为:

\[f(-\frac{5}{6},\frac{5}{24})=3x^2+5xy+10y^2 \approx 2.3438 \]

第一轮结束:

  • 函数最小值\(f(x,y)=2.3438\)
  • \(|Δx|=|-\frac{5}{6}-1| \approx 1.8333\)
  • \(|Δy|=|\frac{5}{24}-1| \approx 0.7917\)

4)第二轮

重复第一轮的操作

调整x,固定y

\[x=-\frac{5}{6}y=-\frac{5}{6}·\frac{5}{24} = -\frac{25}{144} \]

此时函数值为:

\[f(-\frac{25}{144},\frac{5}{24})=3x^2+5xy+10y^2 \approx 0.4883 \]

调整y,固定x

\[y=-\frac{1}{4}x=-\frac{1}{4}·-\frac{25}{144}=\frac{25}{576} \]

此时函数值为:

\[f(-\frac{25}{144},\frac{25}{576})=3x^2+5xy+10y^2 \approx 0.1221 \]

第二轮结束:

  • 函数最小值\(f(x,y)=0.1221\)
  • \(|Δx|=|-\frac{25}{6}-(-\frac{5}{6})| \approx 0.6597\)
  • \(|Δy|=|\frac{25}{576}-\frac{5}{24}| \approx 0.1649\)

5)不断的迭代,直至收敛

随着迭代次数的不断增加,\(|Δx|\)\(Δy\)\(f(x,y)\)都在不断减小

\(|Δx|\)\(Δy\)均小于\(10^{-4}\),可以认为函数收敛

凸函数

通过上述的过程模拟,可以找到函数最小值时x,y分别是多少

对于函数\(f(x,y)=3x^2+5xy+10y^2\),可以直接计算偏导数为0,从而求出最小值

\[\frac {\partial f}{\partial x}=6x+5y=0,x=-\frac{5}{6}y \]

\[\frac {\partial f}{\partial y}=5x+20y=0,y=-\frac{1}{4}x \]

解方程组:

\[\begin{cases} x=-\frac{5}{6}y \\ y=-\frac{1}{4}x \end{cases} \]

\[\begin{cases} x=0 \\ y=0 \end{cases} \]

该函数最小值是\(f(x,y)=0\),且\(x=0,y=0\)

直接用偏导数可以计算出函数最小值,有前提条件,那就是该函数是凸函数。凸函数的定义:在函数上任意两点连接的线段总是在函数图上方或者重合

watermarked-lasso_1

局部最优解与全局最优解

如果函数不是凸函数,而是类似于这种,在某一个定义域内是凸函数

watermarked-lasso_2

使用坐标下降法的时候,选择的初始值如果在\((x1,x2)\)之间,那找到的最小值就是局部最小,而非全局最小。之前介绍的梯度下降法也有同样的问题

那要怎么解决这个问题呢?不好意思,我也不会,还没学习到,所以暂时略过,后面再说 -_- !

lasso回归

介绍完坐标下降法之后,最后来到了本文的主题,lasso回归,为什么lasso回归能够降低无用参数的影响?lasso回归就是添加了一个参数的绝对值之和作为惩罚项,用线性回归为例,线性回归的损失函数常用MSE

\[\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \]

lasso的数学表达:

\[\mathcal{L} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |β_j| \]

我们通过一个例子,来说明lasso回归的工作流程。有一个数学模型:2个特征分别为\(x_1\)\(x_2\),分别使用不带lasso惩罚项与带lasso惩罚项来进行推导

样本 \(β_1\) \(β_2\) y
1 1 1 2
2 2 1 2
3 3 2 4.5

最小二乘法

不带lasso惩罚项,就直接用最小二乘法求解,在之前的小结中曾经推倒过多元回归中最小二乘法的计算公式:

\[β=(X^TX)^{-1}X^Ty_i \]

首先特征矩阵\(X\)
$ X=
\begin{pmatrix}
1 & 1 \
2 & 1 \
3 & 2
\end{pmatrix}
$, \(X\)的转置
$ X^T=
\begin{pmatrix}
1 & 2 & 3 \
1 & 1 & 2 \
\end{pmatrix}
$

矩阵乘法,\(X^T·X= \begin{pmatrix} 1 & 2 & 3 \\ 1 & 1 & 2 \end{pmatrix} \begin{pmatrix} 1 & 1 \\ 2 & 1 \\ 3 & 2 \end{pmatrix} = \begin{pmatrix} 14 & 9 \\ 9 & 6 \end{pmatrix} \)

矩阵求逆常用初等变换法以及伴随矩阵法,对于上述演示数据,笨办法我直接用伴随矩阵求出来,但是都ai时代了,我决定使用chatgpt法(机智如我-_-) :\((X^TX)^{-1} = \begin{pmatrix} 2 & -3 \\ -3 & \frac{14}{3} \end{pmatrix} \)

根据矩阵结合律,我先算一下后面:\(X^T·y_i = \begin{pmatrix} 1 & 2 & 3 \\ 1 & 1 & 2 \end{pmatrix} \begin{pmatrix} 2 \\ 3 \\ 4.5 \end{pmatrix} = \begin{pmatrix} 21.5 \\ 14 \end{pmatrix} \)

最终计算出系数 \(\beta =(X^TX)^{-1}X^Ty_i = \begin{pmatrix} 2 & -3 \\ -3 & \frac{14}{3} \end{pmatrix} \begin{pmatrix} 21.5 \\ 14 \end{pmatrix} = \begin{pmatrix} 1 \\ \frac{2.5}{3} \end{pmatrix} \approx \begin{pmatrix} 1 \\ 0.8333 \end{pmatrix} \)

最终,通过最小二乘法,拟合函数为

\[y = x_1+0.8333x_2 \]

带lasso惩罚项

为了计算方便,先将公式简化,把n去掉,因为同时缩放n倍,对于结果比对没有影响

\[\mathcal{L} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |β_j| = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |β_j| \]

lasso有一个超参数\(\lambda\),我们先设置一下\(\lambda = 2\),用坐标下降法:

1)首先寻找一个点\(\beta=(0,0)\),计算出函数值

\[\begin{aligned} \mathcal{L} &= \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |β_j| \\&= ((2-\beta_1-\beta_2)^2 + (3-2\beta_1-\beta_2)^2 + (4.5-3\beta_1-2\beta_2)^2 + (\lambda\sum_{j=1}^{p}|\beta|)) \\&= 4+9+20.25 = 33.25 \end{aligned} \]

2)先分别求偏导

\[\begin{aligned} \frac {\partial f}{\partial \beta_1} &= ((2-\beta_1-\beta_2)^2 + (3-2\beta_1-\beta_2)^2 + (4.5-3\beta_1-2\beta_2)^2 + (\lambda\sum_{j=1}^{p}|\beta|))' \\&= 28\beta_1+18\beta_2-43 + (\lambda\sum_{j=1}^{p}|\beta|)' \end{aligned} \]

这里的惩罚项并没有进行导数计算,原因一会再说,先记为\(f_{absolute}'=(\lambda\sum_{j=1}^{p}|\beta|)'\)

所以最终对\(\beta_1\)求偏导:

\[\frac {\partial f}{\partial \beta_1} = 28\beta_1+18\beta_2-43 + f_{absolute}' \]

同理对\(\beta_2\)求偏导:

\[\frac {\partial f}{\partial \beta_2} = 18\beta_1+12\beta_2-28 + f_{absolute}' \]

由于绝对值在0处不可导,所以绝对值的导数需要分段来研究

\[\frac{\partial f_{absolute}}{\beta_i} = \lambda(|\beta_i|)' = \left\{ \begin{array}{ll} \lambda·\beta_i \qquad ,\beta_i>0 \\ 0 \qquad ,\beta_i=0 \\ -\lambda·\beta_i \qquad ,\beta_i<0 \end{array} \right. \]

3)第一次迭代,\(\beta=(0,0)\),更新\(\beta_1\),固定\(\beta_2=0\)

\[\begin{aligned} \frac {\partial f}{\partial \beta_1} &= 28\beta_1+18\beta_2-43 + f_{absolute}' = 28\beta_1 - 43 + \lambda(|\beta_i|)' \\&= \left\{ \begin{array}{ll} 28\beta_1-43+2 \qquad ,\beta_1>0 \\ 28\beta_1-43 \qquad ,\beta_1=0 \\ 28\beta_1-43-2 \qquad ,\beta_1<0 \end{array} \right. \end{aligned} \]

令偏导数为0

\[\begin{aligned} \beta_1 = \left\{ \begin{array}{ll} \frac{41}{28} \approx 1.464 \qquad ,\beta_1>0 \\ \frac{43}{28} \qquad ,\beta_1=0 \\ \frac{45}{28} \approx 1.607 \qquad ,\beta_1<0 \end{array} \right. \end{aligned} \]

由于\(\beta_1<=0\)与计算结果矛盾,所以\(\beta_1=1.464\)

4)第一次迭代,固定\(\beta_1=1.464\),更新\(\beta_2\)

\[\begin{aligned} \frac {\partial f}{\partial \beta_2} &= 18\beta_1+12\beta_2-28 + f_{absolute} = 12\beta_2-28 + \lambda(|\beta_i|)' \\&= \left\{ \begin{array}{ll} 26.352+12\beta_2-28+2 \qquad ,\beta_2>0 \\ 26.352+12\beta_2-28 \qquad ,\beta_2=0 \\ 26.352+12\beta_2-28-2 \qquad ,\beta_2<0 \end{array} \right. \end{aligned} \]

令偏导数为0

\[\begin{aligned} \beta_2 = \left\{ \begin{array}{ll} \frac{-0.352}{12} \approx -0.0293 \qquad ,\beta_2>0 \\ \frac{1.648}{12} \approx 0.1373 \qquad ,\beta_2=0 \\ \frac{3.648}{12} = 0.304 \qquad ,\beta_2<0 \end{array} \right. \end{aligned} \]

这个。。。。怎么全是矛盾的??计算出来的\(\beta_2\)都不对,那\(\beta_2\)到底取值是什么,这里要用次梯度来解决这个问题,一会再详细讨论,这里只需要知道,\(\beta_2\)取值在[-0.0293, 0.304]之间,而最优解就是0

5)计算函数值

\[\begin{aligned} \mathcal{L}(1.464, 0) &= \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |β_j| \\&= ((2-\beta_1-\beta_2)^2 + (3-2\beta_1-\beta_2)^2 + (4.5-3\beta_1-2\beta_2)^2 + (\lambda\sum_{j=1}^{p}|\beta|)) \\&\approx 0.2872+0.0582+0.2446+2.928 = 3.518 \end{aligned} \]

6)第一轮小结

  • 函数最小值\(\mathcal{L}(x,y)=3.518\),从33.25下降而来
  • \(|Δ\beta_1|=|0-1.464| \approx 1.464\)
  • \(|Δ\beta_2|=|0-0| = 0\)

第一次迭代就已经把\(\beta_2\)给家人们打下来了,\(\beta_2\)对于寻找函数最小值,已经没有意义了,换句话来说,该特征对于提升模型性能意义不大

但是依然需要继续寻找最合适的\(\beta_1\),直至收敛,所以还需要继续迭代下去,下面就不演示了

继续迭代。。。。最终经过lasso回归的拟合函数应该是这样的:

\[y=\beta_1x_1 \]

可以看到,lasso回归有可能把一些特征的系数压缩成0了,从而去掉该特征对于目标函数的影响,从而降低该特征的影响,提高了模型了泛化能力

次梯度

在刚才的推导中,遇到了这个问题,\( \begin{aligned} \beta_2 = \left\{ \begin{array}{ll} \frac{-0.352}{12} \approx -0.0293 \qquad ,\beta_2>0 \\ \frac{1.648}{12} \approx 0.1373 \qquad ,\beta_2=0 \\ \frac{3.648}{12} = 0.304 \qquad ,\beta_2<0 \end{array} \right. \end{aligned} \)\(\beta_2\)与所有的结果都是矛盾的,之所以会出现这种情况,是由于对绝对值求导数导致的。我们都知道,绝对值在0的时候是不可导的

\(\beta=0\)的时候,需要使用次梯度的概念,什么是次梯度,我这里也不班门弄斧的搬概念了,大家有兴趣自己去google一下

这里只需要记住次梯度是一个集合,它的范围就是,若\( \begin{aligned} \beta_2 = \left\{ \begin{array}{ll} \ a \qquad ,\beta_2>0 \\ \ b \qquad ,\beta_2<0 \end{array} \right. \end{aligned} \),那\(\beta=0\)的次梯度是\([a,b]\)之间

更直接一点,如果我们在次梯度集合中,找到为0的选项,那就意味着找到了函数的最小值点

这也说明了,lasso回归不能直接用导数为0的方法来找最优解,需要用到坐标下降法的原因

小结

笔者写这篇文章的时候真是头皮发麻,“凸函数”、“最优解”等名词让我回想起学生时代被高数、微积分支配的恐惧,如今再次面对,竟然能够坦然处之,甚至觉得莫名亲切,进而会心一笑。被动接受与主动求索,还真是不一样

联系我

  • 联系我,做深入的交流

至此,本文结束
在下才疏学浅,有撒汤漏水的,请各位不吝赐教...

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

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

相关文章

IP地址的配置

原IP地址为172.16.69.251

工业检测为啥首选黑白相机?4 个核心优势,彩色相机比不了 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

202504_CHIMA模拟_Shiro流量分析

流量分析, WebShell, ShiroTags:流量分析,WebShell,Shiro 0x00. 题目 题目表述 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202504_CHIMA_analyse 0x01. WP …

vscode彻底删除安装过的插件和个人配置信息

前言 今天上班打开电脑发现以前修改的vscode背景图片不见了,配置改了跟多次,也卸载重装很多次,都没用,最后检查了一下发现是个人配置没有删掉1、先到电脑设置里面把vscode卸载,虽然卸载了但是用户的配置信息还会在…

船舶运动控制,PID控制算法,反步积分控制器

一、控制架构设计 控制器协同机制PID层:处理常规跟踪误差(位置/航向偏差) 反步积分层:补偿模型不确定性和高频扰动 前馈补偿:抵消风浪流等确定性干扰二、PID控制算法实现 1. 标准PID结构 % 经典PID控制器代码(增…

光隔离探头与高压差分探头的可替代性讨论

一、原理 光隔离探头主要依靠光电转换原理工作。如图1所示,当探头检测到线路中的电流或电压信号时,这些电信号会通过电光转换器转化为光信号。光信号通过光纤传输,随后通过光电还原器重新转化为电信号,最终输入到示…

冰箱 EMC 测试中 RE 超标?近场探头定位干扰源实操指南

在现代科技的快速发展中,电子设备的广泛应用使得电磁兼容性(EMC)问题日益突出。对于像冰箱这样的常见家电产品,EMC测试显得尤为重要,其中辐射发射(RE)测试是评估其电磁兼容性的关键环节。当冰箱在RE测试中出现超…

【笔记】人工智能原理

【笔记】人工智能原理,

【通达信公式性能优化】:高级技巧揭秘,提升执行效率的10大策略 - Leone

目录摘要 关键字 1. 通达信公式性能优化概论1.1 为什么要进行通达信公式优化 1.2 优化的目标与方法概述2. 理解通达信公式的执行机制公式的基本组成与执行流程公式元素解析 数据处理流程公式性能的基本评估方法评估指标…

HTTPS 映射如何做?(HTTPS 映射配置、SNI 映射、TLS 终止、内网映射与 iOS 真机验证实战)

本文详解 HTTPS 映射方案(TLS 终止、SNI 映射、TLS 透传)、NGINX/HAProxy 配置要点、常见故障排查与证书管理,并介绍如何在 iOS 真机上用抓包大师(Sniffmaster)验证映射与 TLS 握手,便于快速定位问题。在生产与开…

STM32 FreeRTOS + LwIP 集成实践:基于 MQTT 的通信示例 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

数分3

回忆: \[\]

基于模拟退火算法解决带容量限制车辆路径问题(CVRP)的MATLAB实现

一、问题建模 1.1 数学描述 目标函数:其中:\(R_k\):第k条路径的边集合 \(dij\):节点i到j的距离 \(K\):使用车辆数 \(λ\):车辆使用惩罚系数约束条件:每个客户仅被访问一次 车辆从仓库出发并返回 路径载重不超过…

完整教程:分片后的聚合分页处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:HDR 动态元数据生成:场景自适应与质检脚本

深入解析:HDR 动态元数据生成:场景自适应与质检脚本pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&qu…

CSS-渐变

CSS渐变:<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{margin:…

H3C交换机取消分页,H3C交换机关闭分页功能

H3C交换机取消分页,H3C交换机关闭分页功能默认H3C交换机有分页显示功能,就是下面的MORE,如下图 关闭分页:system-view //进入全局模式user-interface vty 0 4 //进入用户界面,vty ,全称为Virtual Teletype Termi…

Codeforces Round 1052 (Div. 2) E. Yet Another MEX Problem

Codeforces Round 1052 (Div. 2) E. Yet Another MEX Problem https://codeforces.com/contest/2146/problem/E 场上秒了却没时间做的题目。 题意 \(\huge w(l,r) = \sum_{i \in [l,r]} [b_i > mex(l,r)]\)。 \(\la…

基于Python+Vue开发的美容预约管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于…

马大姐携手纷享销客启动CRM,打造快消行业数字化新标杆

作为休闲食品行业的持续领跑者,马大姐凭借传统酥糖、酒心巧克力等产品承载着中国传世技艺文化,始终以缔造品质上乘、健康美味为理念。近日,其 CRM 项目启动会成功举行。马大姐集团执行总裁苗盈晖、副总裁马立永、信…