回归预测模型:MATLAB岭回归和Lasso回归

1. 岭回归和Lasso回归的基本原理

1.1 岭回归:

岭回归(Ridge Regression) 是一种用于共线性数据分析的技术。共线性指的是自变量之间存在高度相关关系。岭回归通过在损失函数中添加一个L2正则项( λ ∑ j = 1 n β j 2 \lambda \sum_{j=1}^{n} \beta_j^2 λj=1nβj2)来减小回归系数的大小,从而控制模型的复杂度和防止过拟合。这里的 λ \lambda λ是正则化强度参数。

1.2 Lasso回归:

Lasso回归(Least Absolute Shrinkage and Selection Operator) 通过在损失函数中添加一个L1正则项( λ ∑ j = 1 n ∣ β j ∣ \lambda \sum_{j=1}^{n} |\beta_j| λj=1nβj)来进行变量选择和复杂度调控。Lasso回归倾向于产生一些精确为零的系数,从而实现了变量的自动选择,有助于提高模型的解释能力。

2. MATLAB中岭回归和Lasso回归的实现

岭回归实现:

MATLAB使用ridge函数实现岭回归。此函数要求自变量矩阵进行中心化和标准化。

Lasso回归实现:

MATLAB通过lasso函数实现Lasso回归,提供了一个方便的接口来执行变量选择和正则化。

3. 实例分析

假设我们有一组数据,包括多个自变量(X1, X2, …, Xn)和一个因变量(Y),我们将使用岭回归和Lasso回归来建模,并比较结果。

3.1 岭回归分析代码
clc,clear
% 设置随机数种子以保证结果的可复现性
rng(0);% 生成模拟数据
n_samples = 100;
n_features = 5;
X = randn(n_samples, n_features);
true_coeffs = [3.5; -2; 0; 4; -1]; % 真实系数
Y = X * true_coeffs + randn(n_samples, 1) * 1.5; % 添加噪声% 继续进行岭回归分析
lambda = 0.1:0.1:10; % 设置一系列的正则化强度参数
ridgeCoeffs = ridge(Y, X, lambda, 0)% 绘制岭回归系数随lambda变化的图
figure;
plot(lambda, ridgeCoeffs(2:end, :)); % 从第二行开始绘制,因为ridge函数的第一行是截距项
xlabel('Lambda');
ylabel('Coefficients');
title('Ridge Regression Coefficients vs. Lambda');
legend(arrayfun(@(n) sprintf('Coeff %d', n), 1:n_features, 'UniformOutput', false), 'Location', 'Best');
grid on;
3.2 Lasso回归分析代码
clc,clear
% 设置随机数种子以保证结果的可复现性
rng(0);% 生成模拟数据
n_samples = 100;
n_features = 5;
X = randn(n_samples, n_features);
true_coeffs = [3.5; -2; 0; 4; -1]; % 真实系数
Y = X * true_coeffs + randn(n_samples, 1) * 1.5; % 添加噪声% Lasso回归分析
[B, FitInfo] = lasso(X, Y, 'CV', 10); % 进行Lasso回归,并使用10折交叉验证% 选取最佳Lambda值对应的系数
idxLambda1SE = FitInfo.Index1SE;
coef = B(:, idxLambda1SE);%最佳Lambda值对应的系数
coef0 = FitInfo.Intercept(idxLambda1SE);%最佳Lambda值对应的截距项
disp('最佳Lambda值对应的系数:')
disp(coef)
disp('最佳Lambda值对应的截距项:')
disp(coef0)
lassoPlot(B, FitInfo, 'PlotType', 'Lambda', 'XScale', 'log');%绘制系数路径
lassoPlot(B, FitInfo, 'PlotType', 'CV');%绘制交叉验证误差

4. 求解结果

4.1 岭回归:


绘制每个系数随 λ \lambda λ变化的图:

4.2 Lasso回归:

5. 结果解释和应用

  • 岭回归:通过调整 λ \lambda λ值,可以观察不同正则化强度对模型系数的影响。较大的 λ \lambda λ值会使系数更小,有助于减少过拟合。
  • Lasso回归:Lasso回归结果可以帮助我们识别哪些变量对预测最重要,因为不重要的变量系数会被压缩到0。

6. 结论

岭回归和Lasso回归都是处理高维数据和防止过拟合的有效方法。岭回归通过L2正则化减小系数值,而Lasso回归既可以通过L1正则化减小系数值,又可以实现变量选择。在实际应用中,选择哪一种方法取决于具体问题和数据集的特点。

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

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

相关文章

JavaWeb:关于登录认证的简单拓展

前提介绍 本文基于文章-------JavaWeb:SpringBootWeb登录认证 --黑马笔记 -------再做简单拓展 如果没有关于登录认证知识的基础,可以先看上面所说的的文章,文章在专栏javaweb中,下面我为了大家观看,直接放了链接。…

26. 可变参数和Collection集合工具类

可变参数与Collections 1. 可变参数1. 概述2. 格式3. 代码示例4. 注意事项 2. Collections集合工具类2.1 概述2.2 方法2.3 代码示例2.4 注意事项 1. 可变参数 1. 概述 可变参数(Variable Arguments)是指在参数列表中允许传入不定个数的参数。在许多编程…

《动手学深度学习(PyTorch版)》笔记7.6

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

嵌入式Qt 第一个Qt项目

一.创建Qt项目 打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项 弹出New Project对话框,选择Qt Widgets Application 选择【Choose】按钮,弹出如下对话框 设置项目名称和路径,按照向导进行下一步 选…

EMC学习笔记(二十六)降低EMI的PCB设计指南(六)

降低EMI的PCB设计指南(六) 1.PCB布局1.1 带键盘和显示器的前置面板PCB在汽车和消费类应用中的应用1.2 敏感元器件的布局1.3 自动布线器 2.屏蔽2.1 工作原理2.2 屏蔽接地2.3 电缆屏蔽至旁路2.4 缝隙天线:冷却槽和缝隙 tips:资料主要…

MySQL篇----第二十一篇

系列文章目录 文章目录 系列文章目录前言一、什么是乐观锁二、什么是悲观锁三、什么是时间戳四、什么是行级锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、…

无人机概述及系统组成,无人机系统的构成

无人机的定义 无人驾驶航空器,是一架由遥控站管理(包括远程操纵或自主飞行)的航空器,也称遥控驾驶航空器,以下简称无人机。 无人机系统的定义 无人机系统,也称无人驾驶航空器系统,是指一架无人…

屏幕字体种类介绍

[ Script and font support in Windows ] [Windows 中的脚本和字体支持] 在Windows 2000 以前,Windows 的每个主要版本都会添加对新脚本的文本显示支持。本文介绍了每个主要版本中的更改。 Since before Windows 2000, text-display support for new scr…

idea中vue文件如何快捷打出html标签结构,不写<

例如写一个<button></button>标签&#xff1a;快捷键如下 先写一个button&#xff0c;然后再按tab键即可自动生成一对标签。 演示&#xff1a; 步骤一&#xff1a; 步骤二&#xff1a;

STM32 STD/HAL库驱动W25Q64模块读写字库数据+OLED0.96显示例程

STM32 STD/HAL库驱动W25Q64 模块读写字库数据OLED0.96显示例程 &#x1f3ac;原创作者对W25Q64保存汉字字库演示&#xff1a; W25Q64保存汉字字库 &#x1f39e;测试字体显示效果&#xff1a; &#x1f4d1;功能实现说明 利用W25Q64保存汉字字库&#xff0c;OLED显示汉字的时…

寒假作业——2/13

作业1 作业2 cp cp 当前的文件位置 复制到哪个位置 格式 : cp 路径/文件 路径/目录名/重新命名的目录名 mv mv 当前的文件位置 复制到哪个位置 格式 : mv 路径/文件 路径/目录名/重新命名的目录名 也可进行重命名操作 find 查找文件 find 目标路径 -name 文件名 后续…

leetcode(数组)128.最长连续序列(c++详细解释)DAY8

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 示例 1&a…

政安晨:在Jupyter中【示例演绎】Matplotlib的官方指南(二){Image tutorial}·{Python语言}

咱们接着上一篇&#xff0c;这次咱们讲使用Matplotlib绘制图像的简短尝试。 我的这个系列的上一篇文章在这里&#xff1a; 政安晨&#xff1a;在Jupyter中【示例演绎】Matplotlib的官方指南&#xff08;一&#xff09;{Pyplot tutorial}https://blog.csdn.net/snowdenkeke/ar…

IM聊天系统为什么需要做消息幂等?如何使用Redis以及Lua脚本做消息幂等【第12期】

0前言 消息收发模型 第一张图是一个时序图&#xff0c;第二张图是一个标清楚步骤的流程图&#xff0c;更加清晰。消息的插入环节主要在2步。save部分。主要也是对这个部分就行消息幂等的操作。 前情提要&#xff1a;使用Redis发布 token 以及lua脚本来共同完成消息的幂等 目…

119.乐理基础-五线谱-五线谱的标记

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;音值组合法&#xff08;二&#xff09; 力度记号&#xff1a;简谱里什么意思&#xff0c;五线谱也完全是什么意思&#xff0c;p越多就越弱&#xff0c;f越多就越强&#xff0c;然后这些渐强、渐弱、sf、fp这些标记…

Proteus -模拟串口被关闭后怎样打开

Proteus -模拟串口被关闭后怎样打开 点击恢复弹出窗口&#xff0c;即可重新打开

WPF中值转换器的使用

什么是值转换器 在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;值转换器&#xff08;Value Converter&#xff09;是一种机制&#xff0c;允许你在绑定时转换绑定源和绑定目标之间的值。值转换器实现了 IValueConverter 接口&#xff0c;该接口…

【华为 ICT HCIA eNSP 习题汇总】——题目集12

1、企业网络内部常常采用私有 IP 地址进行通信&#xff0c;以下哪个地址属于私有 IP 地址&#xff1f; A、0.1.1.1 B、127.5.4.3 C、128.0.0.5 D、172.24.35.36 考点&#xff1a;网络层 解析&#xff1a;&#xff08;D&#xff09; A类 IP 地址中&#xff0c;10.0.0.0 ~ 10.255…

深入学习《大学计算机》系列之第1章 1.7节——图灵机的一个例子

一.欢迎来到我的酒馆 第1章 1.7节&#xff0c;图灵机的一个例子。 目录 一.欢迎来到我的酒馆二.图灵机2.1 艾伦-图灵简介2.2 图灵机简介 三.图灵机工作原理3.1 使用图灵机打印二进制数3.2 图灵机工作原理总结 四.总结 二.图灵机 本节内容主要介绍计算机科学之父——艾伦-图灵、…