【MATLAB第65期】基于LSTM长短期记忆网络的多输入单输出数据预测未来思路介绍(短期预测)

【MATLAB第65期】基于LSTM长短期记忆网络的多输入单输出数据预测未来思路介绍(短期预测)

往期第13期已实现多输入单输出滑动窗口回归预测
多输入单输出滑动窗口回归预测
往期第54期已实现多输入多输出滑动窗口回归预测
多输入多输出滑动窗口回归预测

一、实现效果

本次实现多输入单输出数据预测未来思路,针对短期预测。

1.训练过程:
在这里插入图片描述

2.测试集拟合效果:
在这里插入图片描述
“RMSE2” “1.4041”
“MAPE2” “0.059405”


3.预测未来效果:

在这里插入图片描述

二、数据构造与处理:

构造原则:滑动窗口数=预测未来数量

原数据:
198行(代表198天),21列数据,其中前20列为变量,第21列为因变量。
若预测未来因变量, 需要构造现在时刻的输入,未来时刻的输出数据。
假设预测未来18个数据,则第一个样本可以为:
输入day1-18的 X1-X20数据(数据矩阵:18×20),输出day19-36的 Y19-Y36(18×1)
最后一个样本为:
输入day163-180的 X1-X20数据(数据矩阵:18×20),输出day181-198的 Y181-Y198(18×1)

前90%数据训练(146个),后10%数据测试(17个)
预测集输入数据为:
输入day181-198的 X1-X20数据(数据矩阵:18×20),输出day199-216的Y199-Y216(18×1)

三、LSTM参数设置

inputSize = size(input,1);   %数据输入x的特征维度
outputSize = k;  %数据输出y的特征维度  
numhidden_units1=100;
numhidden_units2=100;
% lstm
layers = [ ...sequenceInputLayer(inputSize,'name','input')                             %输入层设置% lstmLayer(numhidden_units1,'Outputmode','sequence')                     %学习层设置(cell层)lstmLayer(numhidden_units1,'Outputmode','sequence','name','hidden1')     %隐藏层1dropoutLayer(0.3,'name','dropout_1')                                     %隐藏层1权重丢失率,防止过拟合lstmLayer(numhidden_units2,'Outputmode','last','name','hidden2')         %隐藏层2dropoutLayer(0.3,'name','dropout_2')                                    %隐藏层2权重丢失率,防止过拟合fullyConnectedLayer(outputSize,'name','fullconnect')                     %全连接层设置(outputsize:预测值的特征维度)regressionLayer('name','out')];                                          %回归层(因为负荷预测值为连续值,所以为回归层) % trainoption
opts = trainingOptions('adam', ...        %优化算法'MaxEpochs',50, ...                   %遍历样本最大循环数'GradientThreshold',1,...             %梯度阈值'ExecutionEnvironment','cpu',...      %运算环境'InitialLearnRate',0.001, ...         %初始学习率'LearnRateSchedule','piecewise', ...  % 学习率计划'LearnRateDropPeriod',2, ...          %2个epoch后学习率更新'LearnRateDropFactor',0.9, ...        %学习率衰减速度'MiniBatchSize',1,...             % 批处理样本大小'Verbose',0, ...                      %命令控制台是否打印训练过程'Plots','training-progress'...        % 打印训练进度);

四、代码获取

后台私信回复“65期”可获得下载链接。

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

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

相关文章

neo4j终端操作

1】进入容器 (base) xiaokkkxiaokkkdeMacBook-Pro ~ % docker exec -it 77ed5fe2b52e /bin/bash 2】启动、停止neo4j root77ed5fe2b52e:/var/lib/neo4j/bin# ./neo4j start Neo4j is already running (pid:7). Run with --verbose for a more detailed error message.root7…

pycharm离线安装依赖包

一、对于单个下载离线包,然后安装 1、先去https://pypi.org/网站下载离线包,下载到本地; 2、从磁盘中找到刚刚下载包,点击确定就可以安装了 二、将本地项目所有依赖包全部下载下来,然后批量在另一个项目&#xff…

电脑IP地址错误无法上网怎么办?

电脑出现IP地址错误后就将无法连接网络,从而无法正常访问互联网。那么当电脑出现IP地址错误时该怎么办呢? 确认是否禁用本地连接 你需要先确定是否禁用了本地网络连接,如果发现禁用,则将其启用即可。 启用方法:点击桌…

【大数据Hive】Hive 内部表与外部表使用详解

目录 一、hive 内部表简介 1.1 查看内部表信息 二、hive 外部表简介 三、内部表与外部表对比 四、内部表与外部表操作演示 4.1 内部表操作 4.1.1 数据准备 4.1.2 建表sql 4.2 外部表操作 4.2.1 建表sql 4.2.2 上传数据文件到 /stu目录 4.2.3 内部表删除 4.2.4 外部…

角角の Qt学习笔记(一)

目录 一、解决在创建新项目时遇到的几个问题 二、信号和槽(非自定义) 三、调用 UI 中的元素(比如按钮) 一、解决在创建新项目时遇到的几个问题 在新建项目时,我选择的构建系统为CMake。然后勾选了Generate form&…

超级浏览器与指纹浏览器:功能与特点的比较

导语:随着互联网的快速发展,隐私和安全问题日益受到关注。在这个背景下,超级浏览器和指纹浏览器作为定制化浏览器的两个重要类型,各自具有独特的功能和特点。本文将对超级浏览器和指纹浏览器进行比较,帮助读者更好地理…

PDF Expert 3.3 for mac

PDF Expert是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 以下是PDF Expert的特点: PDF编辑:PDF Expert提供了丰富的PDF编辑功能,包括添加、删除、移动、旋转、缩放、裁…

vue中vuex的五个属性和基本用法,另加js-cookie的使用

VueX 是一个专门为 Vue.js 应用设计的状态管理构架,统一管理和维护各个vue组件的可变化状态(你可以理解成 vue 组件里的某些 data )。 Vuex有五个核心概念: state, getters, mutations, actions, modules。 1. state: vuex的基本数据&…

使用Pytest集成Allure生成漂亮的图形测试报告

目录 前言 依赖包安装 Pytest Allure Pytest Adaptor 改造基于Pytest的测试用例 生成测试报告 运行测试 生成测试报告 打开测试报告 资料获取方法 前言 之前写过一篇生成测试报告的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架&#xff…

uniapp两个单页面之间进行传参

1.单页面传参:A --> B url: .....?code JSON.stringify(param), 2.单页面传参B–>Auni.$emit() uni.$on()

elementui实现当前页全选+所有全选+翻页保持选中状

原文来自:https://blog.csdn.net/sumimg/article/details/121693305?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-121693305-blog-127570059.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm…

构建Docker容器监控系统(2)(Cadvisor +Prometheus+Grafana)

Cadvisor产品简介 Cadvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行Cadvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。 接着上一篇来继续 部署Cadvisor 被监控主机上部署Cadvisor容器…