【MATLAB第68期】基于MATLAB的LSTM长短期记忆网络多变量时间序列数据多步预测含预测未来(非单步预测)

2023-11-08

【MATLAB第68期】基于MATLAB的LSTM长短期记忆网络多变量时间序列数据多步预测含预测未来(非单步预测)

输入前25个时间,输出后5个时间

一、数据转换

1、原始数据

5列时间序列数据,70行样本
70×5 数据矩阵结构
在这里插入图片描述

2、数据转换

将总数据data划分成141cell,且每行为55的数据
14行中,每行代表5个变量的5天数据。
多步预测:根据前25天数据预测后5天数据
即51cell 预测 11cell

如:1~5行cell 预测第6行(1-25天,预测26-30天)
2~6行cell 预测第7行(6-30天,预测31-35天)
······
9-13行cell 预测第14行(41-65天,预测66-70天)

其次,将data_y弄成525,与data_x序列长度一致
data_add(n,1) ={zeros(5,20)};,增添零值
即将data_y 由5
5 变换为 5*25

二、参数设置

%% LSTM网络训练
inputsize =5;
outputsize =5;
layers=[sequenceInputLayer(inputsize);
        bilstmLayer(200);
        dropoutLayer(0.2);
        fullyConnectedLayer(outputsize);
        regressionLayer();
        ];
    
 opts = trainingOptions('adam', ...
    'MaxEpochs',2000, ...
    'GradientThreshold',1,...
    'ExecutionEnvironment','cpu',...
    'InitialLearnRate',0.005, ...
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',125, ...   %2个epoch后学习率更新
    'LearnRateDropFactor',0.2, ...
    'Shuffle','once',...  % 时间序列长度
    'L2Regularization',0.005,...%正则项系数初始值。建议一开始将正则项系数λ设置为0,先确定一个比较好的learning rate。然后固定该learning rate,给λ一个值(比如1.0),然后根据validation accuracy,将λ增大或者减小10倍(增减10倍是粗调节,当你确定了λ的合适的数量级后,比如λ = 0.01,再进一步地细调节,比如调节为0.020.030.009之类。
    'SequenceLength',25,...
    'MiniBatchSize',10,...%比如mini-batch size设为100,则权重更新的规则为:%也就是将100个样本的梯度求均值,替代online learning方法中单个样本的梯度值
    'Verbose',1,...
'Plots','training-progress');

三、预测

1、测试集效果

输入data_x最后一行数据 ,即41-65天
输出 [1-20构造数据]+ 66-70天数据
筛选后5天数据 。
在这里插入图片描述
在这里插入图片描述

2、预测未来

在这里插入图片描述

若需要预测未来5天 P1(71-75),则只需要输入
第46-70天 5个变量数据
就会得到 [1*20构造数据]+第71-75天数据

若需要预测未来10天 P2(76-80),则只需要输入
第51-75天 (71-75天数据由P1提供)5个变量数据
就会得到 [1*20构造数据]+第76-80天数据

若需要预测未来15天 P3(81-85),则只需要输入
第56-80天 (76-80天数据由P2提供)5个变量数据
就会得到 [1*20构造数据]+第81-85天数据

四、代码获取

后台私信回复“第68期”可获取下载链接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【MATLAB第68期】基于MATLAB的LSTM长短期记忆网络多变量时间序列数据多步预测含预测未来(非单步预测) 的相关文章

  • 数组中 2 个百分位之间的平均元素

    我有 2 个长度为 200 的向量 例如 A 和 B 然后我使用以下方法找到数组 A 的每第二个百分位数 A1 prctile A 1 2 100 1 这样A1是一个长度为50的数组 现在我想找到A1中每两个元素内的A元素的平均值 即A的第
  • MATLAB 中元胞数组的左连接

    I ve 2 cellMATLAB 中的数组 例如 A jim 4 paul 5 sean 5 rose 1 第二个 B jim paul george bill sean rose 我想做一个 SQL 左连接 这样我就可以得到 B 中的所
  • 与超类和子类构造函数接口

    我在 matlab 文档和之前有关使用 matlab 继承和类构造函数创建接口的问题中找不到帮助 为了使其整洁 放在一个包内 我可以将其压缩如下 而不是拖拽代码 一套 MyPkg有一个超类Super和一些子类Sub1 Sub2 我的大多数属
  • Matlab 的快速 JSON 解析器

    您知道 Matlab 中有一个非常快速的 JSON 解析器吗 目前我正在使用JSONlab http www mathworks com matlabcentral fileexchange 33381 jsonlab a toolbox
  • 在 Matlab 中对列进行排序

    我有 2 列使用 textscan 导入的数据 数据看起来像这样 其中U is undetect and D is detect mydata 51 U 57 D 48 U 47 D my data 4x1 double 4x1 char
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • 在 matlab/octave 中将数据集分成两个子集 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 将数据集分为两个子集 例如 训练 和 测试 其中 训练集包含 80 的数据 测试集包含剩余的 20 分裂的意思是生成一个长度等于的逻辑索引
  • MATLAB 中的抗锯齿线和标记

    您好 我在 MATLAB 中有一张图像 我希望这条线是平滑的 看看从 0 4 到 0 8 的线 这太可怕了 当在图中使用 LineSmoothing on 运算符时 我得到了这个 我在线条上做得很好 但它也使标记变得平滑 而且它们太可怕了
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • Microsoft Visual C++ 2008 和 R2007b 的 Mex 类型

    我想对 vs2008 和 matlab2007b 使用 mex 类型 我尝试了下面的代码 include
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • 在 MATLAB 中将数据拟合到 B 样条

    我正在尝试估计矩阵形式的时间序列数据中的缺失值 列代表时间点 即现在 我想将矩阵的每一行拟合到 B 样条曲线 并用它来估计缺失值 我可以使用 MATLAB 将数据拟合到普通样条曲线 但我完全陷入尝试找出如何拟合数据以创建 B 样条曲线的困境
  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • 白色像素簇提取

    我正在研究指纹毛孔提取项目 并陷入毛孔 白色像素簇 提取的最后阶段 我有两个输出图像 我们可以从中获取毛孔 但不知道该怎么做 这两个图像的尺寸不同 image1 的尺寸为 240 320 image2 的尺寸为 230 310 这是我的图像
  • 将组合字符串和数字输入的元胞数组写入文本文件

    考虑以下 DateTime 2007 01 01 00 00 2007 02 01 00 00 2007 03 01 00 00 Headers Datetime Data Dat 100 200 300 Data DateTime num
  • 如何以编程方式指定 MATLAB 编辑器键绑定

    我想将键盘键绑定设置为Windows 默认设置我想在启动时使用startup m因为我希望在大量系统上设置此设置 首选项对话框中的等效设置是 MATLAB gt Keyboard gt Shortcuts gt Active Setting
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • Keras LSTM 密集层多维输入

    我正在尝试创建一个 keras LSTM 来预测时间序列 我的 x train 形状像 3000 15 10 示例 时间步长 特征 y train 形状像 3000 15 1 我正在尝试构建一个多对多模型 每个序列 10 个输入特征产生 1
  • LSTM 批次与时间步

    我按照 TensorFlow RNN 教程创建了 LSTM 模型 然而 在这个过程中 我对 批次 和 时间步长 之间的差异 如果有的话 感到困惑 并且我希望得到帮助来澄清这个问题 教程代码 见下文 本质上是根据指定数量的步骤创建 批次 wi
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa

随机推荐

  • 真题详解(Flynn分类)-软件设计(四十六)

    真题详解 计算机总线 软件设计 四十五 https blog csdn net ke1ying article details 130046829 Flynn分类将计算机分为四类 单指令流单数据流机器 SISD 早期的机器 在某个时钟周期
  • C++ 读取结束的判断

    cin 可以用来从键盘输入数据 将标准输入重定向为文件后 cin 也可以用来从文件中读入数据 在输入数据的多少不确定 且没有结束标志的情况下 该如何判断输入数据已经读完了呢 从文件中读取数据很好办 到达文件末尾就读取结束了 从控制台读取数据
  • shell脚本系列:6、shell扩展

    shell脚本系列 6 shell扩展 文章目录 shell脚本系列 6 shell扩展 1 花括号扩展 2 波浪号扩展 3 shell参数扩展 4 命令替换 5 算术扩展 6 进程替换 7 分词 8 文件名扩展 8 1 模式匹配 9 引号
  • 【upload-labs】————8、Pass-07

    闯关界面 前后端检测判断 查看源代码 文件后缀大小写 去除 DATA 关键词过滤 在这里可以发现所有的都考虑到了 但是却没有考虑后缀为 的情况 在windows中PHP会自动去除后缀名中最后的 我们可以通过这种方式来绕过 加 来绕过
  • 探索多线程使用同一个数据库connection的后果

    在项目中看到有用到数据库的连接池 心里就思考着为什么需要数据库连接池 只用一个连接会造成什么影响 只用一个connection 1 猜想 jdbc的事务是基于connection的 如果多线程共用一个connection 会造成多线程之间的
  • C++安装Dlib库教程(保姆级别)以及踩坑指南

    在网上搜索了一圈 发现大家好像都很喜欢使用Python来开发AI 后来我也用了一下Python 发现 emmm 真香 但是我知道一定也有人再使用C 进行开发 那么我就先来说说几种安装Dlib库的方法趴 除了使用vcpkg 我们这次从官网的角
  • 微信小程序自定义底部导航栏

    文章目录 概要 功能 源码 细节 改进 概要 微信小程序自定义底部导航栏 原生实现 不包含其他任何第三方组件 比较干净 开箱即用 效果预览 功能 可自定义底部导航栏列表样式 可自定义每个菜单的默认 激活后的图标和文字样式 可自定义是否添加中
  • 【gitlab项目迁移】

    需求 将gitlab项目从A组迁移到B组 经查 有两种方式 一种是项目在网页压缩后export 再import 另一种是终端操作 但是我的项目分支过多 文件过大 30M左右 方法一会报错文件过大 最后采取方法二 方法1 网页端导入 可以参考
  • Jquery mobile学习教程之Jquery mobile 二 页面结构

    Jquery Mobile基本框架 在jQuery Mobile中 有一个基本的页面框架模型 就是在页面中通过将一个 标记的 data role 属性设置为 page 形成一个容器或视图 而在这个容器中最直接的子节点应该就是 data ro
  • ftp文件采集

    本地文件根据文件名过滤 import org springframework stereotype Service import java io File import java text ParseException import jav
  • Sevice Computing服务计算:开发 web 服务程序Cloudgo

    Sevice Computing 开发 web 服务程序Cloudgo 1 概述 2 基础知识 3 开发实践 3 1 框架选择 3 2 搭建简单web服务器 3 3 测试运行 1 使用 curl 测试 2 使用 ab 测试 并解释重要参数
  • 深入学习jquery源码之empty()与返回值remove()

    深入学习jquery源码之empty 与返回值remove empty 概述 删除匹配的元素集合中所有的子节点 把所有段落的子元素 包括文本节点 删除 p Hello span Person span a href and person a
  • idea .gitignore文件不生效(亲测有效)

    文章目录 1 确认 gitignore 文件位置 2 检查 gitignore 文件语法和模式匹配 3 清除 Git 缓存并重新提交文件 4 检查全局忽略规则 5 检查其他工具或配置 当您在 IntelliJ IDEA 中发现 gitign
  • 假如我是超级卷王。。。

    我最喜欢我的发型 因为它天生自然卷 而且是内卷 公司在十八层 为了能坐上电梯 我每次走到三层去等往下的电梯 先坐到1楼再上去 为了能带薪拉屎 我每次提前半个小时占坑 一边等shi意一边刷抖音 外面兄弟急的满头大汗 我静静享受这片刻悠闲 我的
  • 未能注册模块 HSIDCandRead.ocx HRESULT -2147010895

    昨天遇到一个这样的问题 安装程序的过程中提示 未注册模块 HSIDCandRead ocx HRESULT 2147010895 经过 多次测试后发现是缺少VC 环境 在安装VC 2005和VC 2008后 安装一切正常
  • _signature、a_bogus、X-Bogus、msToken生成【2023.8.24】全站通用a-bogus

    本文以教学为基准 本文提供的可操作性不得用于任何商业用途和违法违规场景 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任 包含关注 点赞等 没露任何版权请审核员认真对待谢谢 2022 12
  • CW Attack论文阅读与总结

    论文链接 https arxiv org abs 1709 03842 在阅读 Towards Evaluating the Robustness of Neural Networks 这篇基于优化的CW攻击方法过程中 本文提取了原文中各小
  • excel 拼接单引号

    A1 效果
  • 浏览器的默认样式及去除

    目录 前言 一 reset 二 normalize 总结 前言 通常情况 浏览器都会为元素设置一些默认样式 默认样式的存在会影响到页面的布局 通常情况下编写网页时必须要去除浏览器的默认样式 PC端的页面 一 reset reset css
  • 【MATLAB第68期】基于MATLAB的LSTM长短期记忆网络多变量时间序列数据多步预测含预测未来(非单步预测)

    MATLAB第68期 基于MATLAB的LSTM长短期记忆网络多变量时间序列数据多步预测含预测未来 非单步预测 输入前25个时间 输出后5个时间 一 数据转换 1 原始数据 5列时间序列数据 70行样本 70 5 数据矩阵结构 2 数据转换