【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 中与修补技术相关的函数 一、基础 在我们每个人的家中可能都会几张退化的老照片,有时候…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
算法刷题-回溯
今天给大家分享的还是一道关于dfs回溯的问题,对于这类问题大家还是要多刷和总结,总体难度还是偏大。 对于回溯问题有几个关键点: 1.首先对于这类回溯可以节点可以随机选择的问题,要做mian函数中循环调用dfs(i&#x…...
Electron简介(附电子书学习资料)
一、什么是Electron? Electron 是一个由 GitHub 开发的 开源框架,允许开发者使用 Web技术(HTML、CSS、JavaScript) 构建跨平台的桌面应用程序(Windows、macOS、Linux)。它将 Chromium浏览器内核 和 Node.j…...

第2课 SiC MOSFET与 Si IGBT 静态特性对比
2.1 输出特性对比 2.2 转移特性对比 2.1 输出特性对比 器件的输出特性描述了当温度和栅源电压(栅射电压)为某一具体数值时,漏极电流(集电极电流...