【MATLAB第12期】基于LSTM长短期记忆网络的多输入多输出回归预测模型思路框架,含滑动窗口, 预测未来,单步预测与多步预测对比,多步预测步数对预测结果影响分析

简介: 【MATLAB第12期】基于LSTM长短期记忆网络的多输入多输出回归预测模型思路框架,含滑动窗口, 预测未来,单步预测与多步预测对比,多步预测步数对预测结果影响分析

【MATLAB第12期】基于LSTM(RNN作为对比)长短期记忆网络的多输入多输出回归预测模型思路框架,含滑动窗口, 预测未来,单步预测与多步预测对比,多步预测步数对预测结果影响分析


更新:2022.11.5更新RNN模型,预测结果附后


一、数据说明


本文总共1400个数据 。滑动窗口为12,预测步数为100(预测1301-1400数据). 多步预测值为3 。


训练集输入样本数据格式: 128612 // 128612 输入 1286 *3输出

即: 样本1: 1-12 个数据 → 预测 13-15

样本2:2-13 个数据 →预测 14-16

样本1286:1286-1297 个数据 →预测1298:1300


测试集输入样本格式 10012 // 10012 输入 100*3输出

即: 样本1: 1289-1300 个数据 → 预测 1301-1303

样本2:1290-1301 个数据 → 预测 1302-1304

样本100:1388-1399 个数据 → 预测 1400-1402

%% 建立神经网络层
layers = [
    sequenceInputLayer(1,"Name","input")             % 输入特征数
    lstmLayer(20,"Name","lstm",'OutputMode','last')  % 隐藏单元
    dropoutLayer(0.1,"Name","drop")                  % 遗忘门
    fullyConnectedLayer(duobuyuce,"Name","fc")       % 全连接层
    regressionLayer("Name","regressionputput")];     % 回归输出
%% 定义训练参数
options = trainingOptions('adam', ...
    'MaxEpochs',200, ...                             % 迭代轮数
    'GradientThreshold',1, ...                       % 梯度阈值
    'InitialLearnRate',0.01, ...                     % 学习率
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',125, ...
    'LearnRateDropFactor',0.2, ...
    'Verbose',0, ...
    'MiniBatchSize',32,...                          % BatchSize批数量
    'Plots','training-progress');

二、多步预测分析


研究多步预测分别为1 / 2 /3时对应的预测效果

(解释说明:若为1时,前12个数据预测后第13步数据;若为2时,前12个数据预测后第14步数据;若为3时,前12个数据预测后第15步数据)


**单步逐步预测:**YPred_1:取测试集预测结果中,100个样本中每个样本分别预测的第一个值即 (1289-1399)→1301-1400(第100次预测时,样本100:1388-1399 个数据 → 预测 1400)


**双步逐步预测:**YPred_2:取测试集预测结果中,100个样本中每个样本分别预测的第二个值即 (1289-1399)→1302-1401(删去预测的第1401值) +YPred_1预测的第一个值 1301(第100次预测时,样本100:1388-1399 个数据 → 预测 1401)


**三步逐步预测:**YPred_3:取测试集预测结果中,100个样本中每个样本分别预测的第三个值即(1289-1399)→ 1303-1402 (删去预测的第1401-1402值)+YPred_1预测的前两个值 1301-1302(第100次预测时,样本100:1388-1399 个数据 → 预测 1402)


三、预测结果分析


YPred_1预测结果

MAE = 0.0659

RMSE = 0.0813

MAPE = 0.0073

R = 0.9779

用训练集最后的12个值预测未来100个值

YPred_2预测结果
MAE = 0.1013
RMSE = 0.1246
MAPE = 0.0112
R = 0.9483

用训练集最后的12个值预测未来100个值

YPred_3预测结果
MAE = 0.1452
RMSE = 0.1770
MAPE = 0.0161
R = 0.8956



四、结论


通过以上可以看出, 单步预测效果要比多步(间隔)预测好。


五、预测未来思路


*(目前这部分源码还没有案例,后期会更新)

*

我们可以增大多步预测数值,来预测未来结果 ,如前面所说 ,多步预测参数为3,滑动窗口为12时,可以通过输入1388-1399预测1400-1402 。那么输入1389-1400就可以预测到1403数据了 。


有两种思路:


第一种思路预测结果会较差,即用未来预测结果预测未来 ,即我用1390-1401(此时1401为预测结果)预测1402-1404, 1391-1402预测1403-1404…… 这种思路缺点是会造成误差积累, 影响数据特征处理,最后会逐步趋于一条直线。


第二种思路预测结果,即调大多步预测值,一般适合数据量足够,且呈周期性变化,且数据趋势没有明显异常情况。如要预测未来20个值,除了调整滑动窗口,还可以增大多步预测值,如滑动窗口保持不变,多步预测设置为10 ,即我用1389-1400预测 1401-1420 ,一步到位。

第二种思路优点是短期预测结果会更接近现实,缺点是调参困难,如滑动窗口设置合理性, 以及无法预测超长期数据 ,比如总共1400数据,你想预测未来1000个数据,如果历史数据基本保持一个趋势还好, 但如果数据曲线比较复杂,就会导致训练样本数不够,或者说不具备代表性。


六、RNN预测模型

RNN参数基本与LSTM保持一致

YPred_1预测结果:

YPred_2预测结果:

YPred_3预测结果:



七、获取方式


后台回复“LSTM多输入多输出”可获取下载方式

有偿望理解。

后续将在此链接永久更新预测未来的案例代码,以及自己调试参数的心得,拭目以待吧!

如果觉得本文对你有帮助的话,麻烦点个关注收藏,后期会出视频操作,对数据处理这块儿进行讲解。

































相关文章
|
2天前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
2天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
1月前
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
54 18
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
86 17
|
2月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
63 10
|
2月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
72 10
|
2月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
2月前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
2月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将深入探讨网络安全漏洞、加密技术和安全意识等方面的问题,并提供一些实用的建议和解决方案。我们将通过分析网络攻击的常见形式,揭示网络安全的脆弱性,并介绍如何利用加密技术来保护数据。此外,我们还将强调提高个人和企业的安全意识的重要性,以应对日益复杂的网络威胁。无论你是普通用户还是IT专业人士,这篇文章都将为你提供有价值的见解和指导。

热门文章

最新文章