3D靓图!CEEMDAN-Kmeans-VMD-CNN-GRU-Attention双重分解卷积门控单元注意力多元时序预测

devtools/2024/12/22 1:02:17/

CEEMDANKmeansVMDCNNGRUAttention_1">3D靓图!CEEMDAN-Kmeans-VMD-CNN-GRU-Attention双重分解卷积门控单元注意力多元时序预测

目录

效果一览

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

基本介绍

1.Matlab实现CEEMDAN-Kmeans-VMD-CNN-GRU-Attentionr融合K均值聚类的数据双重分解+卷积门控循环单元+注意力机制多元时间序列预测(完整源码和数据)

2.CEEMDAN分解,计算样本熵,根据样本熵进行kmeans聚类,调用VMD对高频分量二次分解, VMD分解的高频分量与前分量作为卷积门控循环单元注意力机制模型的目标输出分别预测后相加。

3.多变量单输出,考虑历史特征的影响!评价指标包括R2、MAE、RMSE、MAPE等。

4.算法新颖。⑴ CEEMDAN-Kmeans-VMD-CNN-GRU-Attention模型处理高频数据,具有更高的准确率,能够跟踪数据的趋势以及变化。⑵ VMD 模型处理非线性、非平稳以及复杂的数据,表现得比EMD 系列更好,因此将重构的数据通过VMD 模型分解,提高了模型的准确度。

5.直接替换Excel数据即可用,注释清晰,适合新手小白,直接运行主文件一键出图。

6.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
在这里插入图片描述

参考文献
在这里插入图片描述

程序设计

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%%  划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);%%  数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);%%  数据平铺
P_train =  double(reshape(P_train, f_, 1, 1, M));
P_test  =  double(reshape(P_test , f_, 1, 1, N));t_train = t_train';
t_test  = t_test' ;%%  数据格式转换
for i = 1 : Mp_train{i, 1} = P_train(:, :, 1, i);
endfor i = 1 : Np_test{i, 1}  = P_test( :, :, 1, i);
end%%  参数设置
options = trainingOptions('adam', ...      % Adam 梯度下降算法'MaxEpochs', 100, ...                  % 最大训练次数 'InitialLearnRate', 0.01, ...          % 初始学习率为0.01'LearnRateSchedule', 'piecewise', ...  % 学习率下降'LearnRateDropFactor', 0.1, ...        % 学习率下降因子 0.1'LearnRateDropPeriod', 70, ...         % 经过训练后 学习率为 0.01*0.1'Shuffle', 'every-epoch', ...          % 每次训练打乱数据集'Verbose', 1);
figure
subplot(2,1,1)
plot(T_train,'k--','LineWidth',1.5);
hold on
plot(T_sim_a','r-','LineWidth',1.5)
legend('真实值','预测值')xlabel('样本点')
ylabel('数值')
subplot(2,1,2)
bar(T_sim_a'-T_train)disp('…………测试集误差指标…………')
[mae2,rmse2,mape2,error2]=calc_error(T_test,T_sim_b');
fprintf('\n')figure
subplot(2,1,1)
plot(T_test,'k--','LineWidth',1.5);
hold on
plot(T_sim_b','b-','LineWidth',1.5)
legend('真实值','预测值')

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340


http://www.ppmy.cn/devtools/92480.html

相关文章

基于S7-200 SMART实现PID控制仿真实验

关键字:Matalb;S7-200 SMART;Modbus TCP;PID控制 系列文章目录 基于S7-200 SMART实现一键启停 顺序功能图——(二)设计机组延时关机程序 基于S7-200 SMART实现Modbus TCP通信 基于S7-200 SMART实现MATLAB写…

10步搞定Python爬虫从零到精通!

学习Python网络爬虫可以分为以下几个步骤,每一步都包括必要的细节和示例代码,以帮助你从零开始掌握这一技能。 第一步:理解网络爬虫基础 什么是网络爬虫? 网络爬虫是一种自动化程序,用来从互联网上收集数据.它通过发送 HTTP 请求…

【langchain学习】BM25Retriever和FaissRetriever组合 实现EnsembleRetriever混合检索器的实践

展示如何使用 LangChain 的 EnsembleRetriever 组合 BM25 和 FAISS 两种检索方法,从而在检索过程中结合关键词匹配和语义相似性搜索的优势。通过这种组合,我们能够在查询时获得更全面的结果。 1. 导入必要的库和模块 首先,我们需要导入所需…

html5宠物网站模板源码

文章目录 1.设计来源1.1 主界面1.2 主界面菜单1.3 关于我们界面1.4 宠物照片墙界面1.5 宠物博客界面1.6 宠物服务界面1.7 宠物团队界面1.8 联系我们界面 2.效果和源码2.1 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 【博主推荐】&a…

Firefox滚动条在Win10和Win11下表现不一致问题?

文章目录 前言总结解决方法 前言 最近在写页面的时候发现一个非常有意思的事。Firefox滚动条在Win10和Win11下表现居然不一致。在网上几经查找资料, 终于找到原因所在。总结成下面的文章,加深印象也防止下次遇到。 总结 参考文章: Firefox…

C++ primer plus 第17 章 输入、输出和文件:文件输入和输出03:文件模式:二进制文件

系列文章目录 17.4.5 文件模式 程序清单17.18 append.cpp 程序清单17.19 binary.cpp 文章目录 系列文章目录17.4.5 文件模式程序清单17.18 append.cpp程序清单17.19 binary.cpp17.4.5 文件模式1.追加文件来看一个在文件尾追加数据的程序。程序清单17.18 append.cpp2.二进制文…

黑马头条vue2.0项目实战(七)——文章详情

目录 1. 创建组件并配置路由 2. 页面布局 3. 展示文章详情 3.1 请求文章详情数据接口 4. 关于后端返回数据中的大数字问题 4.1 请求文章详情返回 404 问题 4.2 大整数解决方案 5. 处理内容加载状态 ​编辑 6. 关于文章正文的样式 7. 图片点击预览 8. 关注用户 8.1…

浮毛季到了,拒绝猫咪变成“蒲公英”,宠物空气净化器去除浮毛

同为铲屎官,面对家中无处不在的猫毛挑战,想必你也深感头疼。衣物、沙发乃至地毯上的明显猫毛尚可通过吸尘器或粘毛器轻松应对,但那些细微漂浮的毛发却成了难以捉摸的“小恶魔”,普通的空气净化器往往力不从心。对于浮毛&#xff0…