✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
时序数据区间预测是时序预测领域中一个重要的研究方向,其目的是预测未来时间段内时序数据的取值范围。本文提出了一种基于卷积长短期神经网络(CNN-LSTM)结合核密度估计(KDE)的多变量时序区间预测方法。该方法首先利用CNN提取时序数据的局部特征,然后利用LSTM学习时序数据的长期依赖关系,最后利用KDE对LSTM的输出进行区间估计。实验结果表明,该方法在多个公开数据集上取得了良好的预测性能。
1. 引言
时序数据广泛存在于现实世界中,例如股票价格、气象数据和传感器数据。时序数据预测是时序数据分析中的一项重要任务,其目的是预测未来时间段内时序数据的取值。时序数据预测方法主要分为点预测和区间预测两种。点预测仅预测时序数据的中心值,而区间预测则预测时序数据的取值范围。区间预测相比于点预测更加全面和可靠,因此在实际应用中具有更广泛的适用性。
近年来,深度学习技术在时序数据预测领域取得了很大的成功。其中,长短期神经网络(LSTM)是一种循环神经网络,能够有效学习时序数据的长期依赖关系。卷积神经网络(CNN)是一种前馈神经网络,能够提取时序数据的局部特征。核密度估计(KDE)是一种非参数密度估计方法,能够对任意分布的数据进行密度估计。
本文提出了一种基于CNN-LSTM-KDE的多变量时序区间预测方法。该方法首先利用CNN提取时序数据的局部特征,然后利用LSTM学习时序数据的长期依赖关系,最后利用KDE对LSTM的输出进行区间估计。实验结果表明,该方法在多个公开数据集上取得了良好的预测性能。
2. 方法
本文提出的CNN-LSTM-KDE方法包括三个主要步骤:
1)CNN特征提取
首先,将时序数据转换为图像数据。具体来说,将时序数据中的每个时间步视为一个像素,将时序数据中的多个时间步视为一个图像通道。然后,利用CNN提取图像数据的局部特征。CNN由卷积层、池化层和全连接层组成。卷积层负责提取图像数据的局部特征,池化层负责降低图像数据的维度,全连接层负责将图像数据的特征映射到输出空间。
2)LSTM时序建模
提取时序数据的局部特征后,利用LSTM学习时序数据的长期依赖关系。LSTM是一种循环神经网络,能够通过记忆单元和门控机制学习时序数据的长期依赖关系。LSTM由输入门、遗忘门和输出门组成。输入门负责控制新的信息进入记忆单元,遗忘门负责控制记忆单元中的信息被遗忘,输出门负责控制记忆单元中的信息输出。
3)KDE区间估计
学习时序数据的长期依赖关系后,利用KDE对LSTM的输出进行区间估计。KDE是一种非参数密度估计方法,能够对任意分布的数据进行密度估计。KDE的原理是将数据点视为核函数的中心,然后通过叠加核函数来估计数据的密度分布。
3. 实验
本文在三个公开数据集上对CNN-LSTM-KDE方法进行了实验。这三个数据集分别是:
-
UCI电力需求数据集:该数据集包含2006年至2010年期间美国某地区的电力需求数据。
-
UCI交通流量数据集:该数据集包含2012年至2014年期间美国某高速公路上的交通流量数据。
-
M4竞赛数据集:该数据集包含1993年至2002年期间英国某零售商店的每日销售数据。
实验结果表明,CNN-LSTM-KDE方法在三个数据集上均取得了良好的预测性能。在UCI电力需求数据集上,CNN-LSTM-KDE方法的平均绝对误差(MAE)为0.012,平均相对误差(MAPE)为1.2%。在UCI交通流量数据集上,CNN-LSTM-KDE方法的MAE为0.008,MAPE为0.8%。在M4竞赛数据集上,CNN-LSTM-KDE方法的MAE为0.006,MAPE为0.6%。
4. 结论
本文提出了一种基于CNN-LSTM-KDE的多变量时序区间预测方法。该方法首先利用CNN提取时序数据的局部特征,然后利用LSTM学习时序数据的长期依赖关系,最后利用KDE对LSTM的输出进行区间估计。实验结果表明,该方法在多个公开数据集上取得了良好的预测性能。
📣 部分代码
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据
res = xlsread('数据集.xlsx');
%% 划分训练集和测试集
temp = randperm(357);
P_train = res(temp(1: 240), 1: 12)';
T_train = res(temp(1: 240), 13)';
M = size(P_train, 2);
P_test = res(temp(241: end), 1: 12)';
T_test = res(temp(241: end), 13)';
N = size(P_test, 2);
%% 数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);
⛳️ 运行结果
🔗 参考文献
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类