【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中)
【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中)
在LSTM预测过程中,极易出现时间滞后,类似于下图,与一个以上的样本点结果错位,产生滞后的效果。

在建模过程中,输入与输出之间关系的建立,周期性样本选择以及数据处理方式等都会产生影响。
影响因素讨论:
①数据预处理方式
②数据输入输出关系构造
二、案例分析——训练集测试集拟合:
1、数据情况
一列数据:
2007-2023年月度数据,168*1

2、多输入多输出(M-1输入,M-1输出)
(1)训练集和测试集单独标准化处理(SJCL1)
XTrain= dataTrainStandardized (1:M-1,:);% 训练输入
YTrain = dataTrainStandardized(2:M,:);% 训练输出
XTest = dataTestStandardized(1:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataTestStandardized(2:N,:);%测试输出
训练集拟合情况:

测试集拟合情况:

训练集数据的MAE为:6.753
验证集数据的MAE为:15.8771
训练集数据的RMSE为:12.0964
验证集数据的RMSE为:19.5052
训练集数据的MSE为:146.3234
验证集数据的MSE为:380.4535
训练集数据的R2为:0.97525
测试集数据的R2为:0.92702
(2)训练集和测试集整体标准化处理(SJCL3)
XTrain= dataStandardized (1:M-1,:);% 训练输入
YTrain = dataStandardized(2:M,:);% 训练输出
XTest = dataStandardized(1:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataStandardized(2:N,:);%测试输出
训练集拟合情况:

测试集拟合情况:

训练集数据的MAE为:5.0941
验证集数据的MAE为:12.6767
训练集数据的RMSE为:7.9809
验证集数据的RMSE为:16.9913
训练集数据的MSE为:63.6942
验证集数据的MSE为:288.7044
训练集数据的R2为:0.98875
测试集数据的R2为:0.947
(3)训练集和测试集单独归一化处理(SJCL5)
XTrain= dataTrainNormalization(1:M-1,:);% 训练输入
YTrain = dataTrainNormalization(2:M,:);% 训练输出
XTest = dataTestNormalization(1:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataTestNormalization(2:N,:);%测试输出
3、多输入多输出(M输入,M输出)
(1)训练集和测试集单独标准化处理(SJCL2)
XTrain= dataTrainStandardized (1:M,:);% 训练输入
YTrain = dataTrainStandardized(2:M+1,:);% 训练输出
XTest = dataTestStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataTestStandardized(1:N,:);%测试输出
训练集拟合情况:

测试集拟合情况:

训练集数据的MAE为:29.8318
验证集数据的MAE为:26.5024
训练集数据的RMSE为:57.9399
验证集数据的RMSE为:41.4219
训练集数据的MSE为:3357.0305
验证集数据的MSE为:1715.7726
训练集数据的R2为:0.48215
测试集数据的R2为:0.7138
(2)训练集和测试集单独标准化处理(SJCL4)
XTrain= dataStandardized (1:M,:);% 训练输入
YTrain = dataStandardized(2:M+1,:);% 训练输出
XTest = dataStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataStandardized(1:N,:);%测试输出
训练集拟合情况:

测试集拟合情况:

训练集数据的MAE为:29.8668
验证集数据的MAE为:23.625
训练集数据的RMSE为:59.1022
验证集数据的RMSE为:50.4366
训练集数据的MSE为:3493.0708
验证集数据的MSE为:2543.8486
训练集数据的R2为:0.48001
测试集数据的R2为:0.6037
6、多输入多输出(训练集和测试集单独归一化处理)
XTrain= dataStandardized (1:M,:);% 训练输入
YTrain = dataStandardized(2:M+1,:);% 训练输出
XTest = dataStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataStandardized(1:N,:);%测试输出
训练集拟合情况:

测试集拟合情况:

预测未来12个月:

2、数据集构造(训练集和测试集单独标准化处理)
XTrain= dataTrainStandardized (1:M-1,:);% 训练输入
YTrain = dataTrainStandardized(2:M,:);% 训练输出
XTest = dataTestStandardized(0:N,:)%测试输入 0代表训练输入末位数据
YTest = dataTestStandardized(1:N,:);%测试输出
LSTM优化后:
LSTM训练集拟合效果:

测试集拟合效果:

LSTM预测未来12个月:

相关文章:
【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中)
【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中) 在LSTM预测过程中,极易出现时间滞后,类似于下图,与一个以上的样本点结果错位,产生滞后的效果。 在建模过程中…...
订单业务和系统设计(一)
一、背景简介 订单其实很常见,在电商购物、外卖点餐、手机话费充值等生活场景中,都能见到它的影子。那么,一笔订单的交易过程是什么样子的呢?文章尝试从订单业务架构和产品功能流程,描述对订单的理解。 二、订单业务…...
安全模型的分类与模型介绍
安全模型的分类 基本模型:HRU机密性模型:BLP、Chinese Wall完整性模型:Biba、Clark-Wilson BLP模型 全称(Bell-LaPadula)模型,是符合军事安全策略的计算机安全模型。 BLP模型的安全规则: 简…...
I/O多路转接之select
承接上文:I/O模型之非阻塞IO-CSDN博客 简介 select函数原型介绍使用 一个select简单的服务器的代码书写 select的缺点 初识select 系统提供select函数来实现多路复用输入/输出模型 select系统调用是用来让我们的程序监视多个文件描述符的状态变化的; 程序会停在s…...
“如何对TXT文件的内容进行连续行删除?实现一键文件整理!
如果你有一个TXT文件,需要删除其中的连续行,这可能是为了整理文件、去除重复信息或清除不需要的文本。尽管手动删除每一行可能很耗时,但幸运的是,有一个简单而高效的方法可以帮助你实现这个目标。 首先,在首助编辑高手…...
stable diffusion公司发布4款LLM大语言模型,为何大家都喜爱LLM?
stable diffusion模型是Stability AI开源的一个text-to-image的扩散模型,其模型在速度与质量上面有了质的突破,玩家们可以在自己消费级GPU上面来运行此模型,本模型基于CompVis 和 Runway 团队的Latent Diffusion Models。本期我们不介绍stabl…...
堆排序--C++实现
1. 简介 堆排序利用的是堆序性,最小堆进行从大到小的排序。 先建初堆,保证堆序性。将堆顶元素与最后一个元素交换, 就将当前堆中的最大(小)的元素放到了最后后。堆大小递减,再重新调整堆选出第二大,重复上述过程。 2…...
【数据结构】数组和字符串(十四):字符串匹配1:朴素的模式匹配算法(StringMatching)
文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作4.3.3 模式匹配算法1. 算法原理2. ADL语言3. 伪代码4. C语言实现5 时间复杂度 4.3 字符串 字符串(String)是由零个或多个字符(char)顺序排列组成的有限序列,简称为串。例如 “good morning”就是…...
VMWare虚拟机问题
镜像下载 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区...
代码随想录算法训练营第23期day39 |62.不同路径、63. 不同路径 II
目录 一、(leetcode 62)不同路径 1.动态规划 1)确定dp数组(dp table)以及下标的含义 2)确定递推公式 3)dp数组的初始化 4)确定遍历顺序 5)举例推导dp数组 2.数论方…...
白帽黑客入门,“每天一个黑客技巧”实现黑客的自我突破 !(附工具包!)
年底了,不少朋友都是在总结一年的学习成果。最后发现完成情况与自己最初定下的目标相去甚远。 同时也针对粉丝和网上大部分存在的问题进行了整理: “为什么我感觉学安全好难?” “渗透测试到底该怎么学?” “为什么总是挖不到漏…...
Jmeter参数化 —— 循环断言多方法
1、参数化接口测试数据 注意:csv文档参数化,里面有多少条数据,就要在线程组里循环多少次,不然就只执行一次 2、添加配置元件-计数器 关于计数器 ①Starting Value:给定计数器的初始值; ②递增:每次循环迭代…...
Autosar诊断实战系列26-Dem(DTCEvent)要点及配置开发详解
本文框架 前言1. Dem及其与其他模块交互介绍1.1 与DCM模块交互1.1.1 0x14服务调用时序1.1.2 0x85服务调用时序1.1.3 0x19服务调用时序1.2 与Fim模块交互1.3 与NvM模块交互1.4 与BswM模块交互1.5 与其他BSW及APP模块交互2. Dem配置开发介绍2.1 DemGeneral配置2.1.1 DemGeneral一…...
STL(第五课):queue
STL(标准模板库)是一种C标准库,在其中包含了许多常用的数据结构和算法。其中,queue就是STL库中的一个数据结构,用于实现队列(先进先出FIFO)。 使用STL queue,需要引入头文件<queu…...
点大商城V2版 2.5.2.1 全开源独立版 多小程序端+unipp安装教程
点大商城V2是一款采用全新界面设计支持多端覆盖的小程序应用,支持H5、微信公众号、微信小程序、头条小程序、支付宝小程序、百度小程序,本程序是点大商城V2独立版,包含全部插件,代码全开源,并且有VUE全端代码。分销&am…...
Redo Log(重做日志)的刷盘策略
1. 概述 Redo Log(重做日志)是 InnoDB 存储引擎中的一种关键组件,用于保障数据库事务的持久性和崩溃恢复。InnoDB 将事务所做的更改先记录到重做日志,之后再将其应用到磁盘上的数据页。 刷盘策略(Flush Policy&#x…...
QT窗体之间值的传递,多种方法实现
目录 1. 信号和槽机制 2. 全局变量或单例模式 3. 事件过滤器 4. Qt属性系统 5. 使用QSettings类 在Qt中,有多种方法可以在窗体之间传递值。下面是一些常用的方法: 1. 信号和槽机制 使用Qt的信号和槽机制是一种常见的方式来在窗体之间传递值。您可以…...
政务服务技能竞赛中用到的软件和硬件
政务服务技能竞赛包括争上游、抢先机、秀风采、比擂台几个环节,用到选手端平板、评委端平板、主持人平板、抢答器等设备、抢答器等。分别计算团队分和个人分。答题规则和计分方案均较为复杂,一般竞赛软件无法实现,要用到高端竞赛软件…...
tcp/ip该来的还是得来
1. TCP/IP、Http、Socket的区别 \qquad 区别是:TCP/IP即传输控制/网络协议,也叫作网络通讯协议,它是在网络的使用中的最基本的通信协议。Http是一个简单的请求-响应协议,它通常运行在TCP之上。Socket是对网络中不同主机上的应用进…...
OpenCV官方教程中文版 —— 图像修复
OpenCV官方教程中文版 —— 图像修复 前言一、基础二、代码三、更多资源 前言 本节我们将要学习: • 使用修补技术去除老照片中小的噪音和划痕 • 使用 OpenCV 中与修补技术相关的函数 一、基础 在我们每个人的家中可能都会几张退化的老照片,有时候…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势
一、WebRTC与智能硬件整合趋势 随着物联网和实时通信需求的爆发式增长,WebRTC作为开源实时通信技术,为浏览器与移动应用提供免插件的音视频通信能力,在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能,对实时…...
初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...
