【MATLAB第13期】基于LSTM长短期记忆网络的多输入单输出滑动窗口回归预测模型

简介: 【MATLAB第13期】基于LSTM长短期记忆网络的多输入单输出滑动窗口回归预测模型

【MATLAB第13期】基于LSTM长短期记忆网络的多输入单输出滑动窗口回归预测模型


一、实现效果


往期文章提到了对单列时间序列数据进行滑动窗口处理的思路,本文介绍如何对多输入单输出数据进行滑动窗口的思路。实现效果如下:


训练过程

测试集拟合效果


二、数据设置:


198行(代表198天),21列数据,其中前20列为变量,第21列为因变量。

前80%数据训练,后20%数据测试


三、滑动窗口处理:


滑动窗口尺寸为7,即可认为前7天的变量作为输入,第7天的因变量作为输出。

则输入的一组样本矩阵结构由20×1变成 20×7而样本数量也从原来的198变为192 ,因为前6组变量数据作为了历史样本

输入数据样本 20198

转变后 192
20*7

四、评价指标:


RMSE = 1.1891

MAPE = 0.05319


五、部分代码:


%% LSTM 多变量单输入滑动窗口处理
clear all;
clc;
close all;
load data
% 数据处理
% 归一化(全部特征 均归一化)
output_data =data(:,end);
input_data =data(:,1:end-1);
[input_normdata,input_normopt] =mapminmax(input_data',0,1);
[output_normdata,output_normopt] = mapminmax(output_data',0,1);
k =7;          %滑动窗口处理                                                    
% 划分数据集
n = floor(0.8*size(input_normdatacell,1));%训练集,测试集样本数目划分
% LSTM 层设置,参数设置
numhidden_units1=100;
% lstm
layers = [ ...
    sequenceInputLayer(inputSize,'name','input')                             %输入层设置
 lstmLayer(numhidden_units1)                     %学习层设置
     fullyConnectedLayer(outputSize,'name','fullconnect')                     %全连接层设置(outputsize:预测值的特征维度)
    regressionLayer('name','out')];                                          %回归层
% trainoption
opts = trainingOptions('adam', ...        %优化算法
    'MaxEpochs',10, ...                   %遍历样本最大循环数
    'GradientThreshold',1,...             %梯度阈值
    'ExecutionEnvironment','cpu',...      %运算环境
    'InitialLearnRate',0.001, ...         %初始学习率
    'Plots','training-progress'...        % 打印训练进度
    );
% 网络训练
tic
net = trainNetwork(input_xtraincell,output_ytraincell,layers,opts);      %网络训练
% 预测
                                                               %预测天数                                    
yprenorm = net.predict(input_xtestcell);   %预测
ypre = mapminmax('reverse',yprenorm',output_normopt);          %预测值反归一化
yytest = mapminmax('reverse',output_ytestcell',output_normopt); 
RMSE  = sqrt(mean((ypre-yytest).^2));
MAPE  = mean((ypre-yytest)./yytest);
disp(["RMSE2  ",RMSE ])
disp(["MAPE2 ", MAPE])

六、获取方式:


后台回复‘回归滑动窗口’,即可获取下载链接。


相关文章
|
3月前
|
传感器 算法 安全
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
基于分布式模型预测控制DMPC的单向拓扑结构下异构车辆车队研究(Matlab代码实现)
131 4
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
230 2
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
145 0
|
3月前
|
传感器 机器学习/深度学习 编解码
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
【电缆】中压电缆局部放电的传输模型研究(Matlab代码实现)
138 3
|
3月前
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
236 0
|
12月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
273 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
230 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
242 10
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。

热门文章

最新文章