【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 中与修补技术相关的函数 一、基础 在我们每个人的家中可能都会几张退化的老照片,有时候…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
