3D靓图!CEEMDAN-Kmeans-VMD-CNN-BiLSTM-Attention双重分解卷积双向长短期注意力多元时序预测

news2024/11/15 15:42:10

3D靓图!CEEMDAN-Kmeans-VMD-CNN-BiLSTM-Attention双重分解卷积双向长短期注意力多元时序预测

目录

    • 3D靓图!CEEMDAN-Kmeans-VMD-CNN-BiLSTM-Attention双重分解卷积双向长短期注意力多元时序预测
      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

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

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

基本介绍

1.Matlab实现CEEMDAN-Kmeans-VMD-CNN-BiLSTM-Attentionr融合K均值聚类的数据双重分解+卷积双向长短期记忆神经网络+注意力机制多元时间序列预测(完整源码和数据)

2.CEEMDAN分解,计算样本熵,根据样本熵进行kmeans聚类,调用VMD对高频分量二次分解, VMD分解的高频分量与前分量作为卷积双向长短期记忆神经网络注意力机制模型的目标输出分别预测后相加。

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

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

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

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

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

程序设计

  • 完整程序和数据获取方式私信博主回复3D靓图!CEEMDAN-Kmeans-VMD-CNN-BiLSTM-Attention双重分解卷积双向长短期注意力多元时序预测



%%  清空环境变量
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 : M
    p_train{i, 1} = P_train(:, :, 1, i);
end

for i = 1 : N
    p_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.coloradmin.cn/o/2037910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【问题解决】git status中文文件名乱码

问题复现 解决办法 在git bash中直接执行如下命令 git config --global core.quotepath false原因 通过 git config --help 可以查看到以下内容: core.quotePath Commands that output paths (e.g. ls-files, diff), will quote “unusual” characters in the p…

vue3 更改 element-plus el-collapse 折叠面板样式

官网提供 展示效果 样式 更改箭头指向 :deep(.el-collapse-item__arrow){ transform: rotate(-270deg); } :deep(.el-collapse-item__header.is-active .el-collapse-item__arrow) { transform: rotate(270deg); } 二 : 或者隐藏右侧箭头 :deep(.el-collapse-i…

javase入门

最近在学习大数据,学到flume拦截器的时候发现自定义拦截器需要使用java编写,现在开始学一些java入门的东西. 一. java相关组成 path环境变量: 环境变量用于记住程序路径,方便在命令行窗口任意目录启动程序. 二 java中的变量 变量要先定义在使用. int age 15 定义变量要定义其…

8.6.数据库基础技术-数据库的控制

并非控制 事务:由一系列DML操作组成,这些操作,要么全做,要么全不做,它从第一个DML操作开始,rollback、commit或者DDL结束,拥有以下四种特性,详解如下: (操作)…

OrangePi AIpro学习5 —— 模型推理程序开发

目录 一、准备工作 1.1 代码裁剪 1.2 测试运行 二、程序讲解 2.1 初始化 2.2 处理模型图片输入 2.3 推理函数 2.4 对输出结果进行处理 前言 本节主要讲解昇腾芯片,例程中使用resnet50推理图像类别的程序。本节讲解的程序,它的环境搭建与使用方法…

考PMP需要多久?一篇文章告诉你如何省心备考PMP

PMP备考需要半年时间吗?....是要满分拿下PMP吗? PMP备考不用半年时间,如果你想的话,可以一个多月就成功上岸哦。如果你不想的话,也可以半年。 其实大家认真去学习的,时间根本不需要那么长的时间&#xff0…

全新Bty分销系统源码v1.0/宝塔分销系统开源版源码/独立后台(附安装教程)

源码简介: 全新Bty分销系统源码v1.0,它作为宝塔分销系统开源版源码,功能强大,它内置了易支付功能,方便多了! 这个Bty分销系统开源版,宝塔分销系统开源版。它基于宝塔开放的API底层控制器&…

LoadRunner12添加mysql数据连接驱动

参考链接 lr进行mysql参数化 https://jingyan.baidu.com/article/6d704a13407c4128db51ca2d.html 下载mysql数据库驱动教程 Loadrunner12使用MYSQL5.0参数化数据遇到的问题_loadrunner12 参数化没有效果-CSDN博客 mysql数据驱动下载链接 MySQL :: Download MySQL Connect…

centos 下如何安装openjdk21

文章目录 前言一、下载OpenJDK二、上传OpenJdk三、解压四、编辑环境变量五、重新加载一下配置六、验证是否安装成功 前言 本文章是自己将openjdk下载好!手动上传解压的方式进行安装! 一、下载OpenJDK OpenJdk官网:点击访问 二、上传OpenJ…

封装Form表单【后台控制表单搜索项的显隐和排序】

概要 为了实现需求:后台控制表单搜索项的显隐和排序; 整体思路流程 表单搜索项统一配置,封装成一个组件,把不同类别再封装成单个的组件,配置项数组由前端控制(暂由前端配置,这样虽然代码量多&…

央行重提P2P存量业务化解,非吸案开始翻旧账?

沉寂已久的P2P,又突然以另一种意想不到的形式回到公众视野了。2018年全国P2P坍塌式暴雷,平台老板“跑路”“判刑”的消息一时间你方唱罢我登场。当年的某凰金融、某租宝、某信贷等赫赫有名的网贷平台传出的消息无非两类——查封或跑路,这几年…

外卖O2O系统开发源码开源介绍

外卖O2O系统开发源码开源介绍 开源外卖O2O系统源码可以为开发者提供快速搭建外卖平台的基础,节省从零开始的开发时间。 以下是几个推荐的开源项目: flash-waimai 是一个基于Spring Boot和Vue.js的前后端分离的外卖系统,包含手机端和后台管理…

代码随想录算法训练营第三十五天|背包问题理论基础、携带研究材料、分割等和子集

背包问题理论基础 1.背包问题概述 01背包:有n种物品,每种物品只有一个; 完全背包:有n种物品,每种物品有无限个; 多重背包:有n种物品,每种物品的个数各不相同。 2. 01背包 有n件…

旋转目标数据集制作:roLabelImg的安装和使用

目录 创建roLabelImg环境 安装pyqt5和lxml 下载roLabelImg源码包 使用roLabelImg roLabelImg常用操作指令 标注展示 由于最近一些项目需要标注旋转数据集,在网上找了一些教程,但大多数都显得比较杂乱,因此想把这些重新整理一下&#xf…

汽车免拆诊断案例 | 2013款北京现代悦动车发动机偶尔无法起动

故障现象 一辆2013款北京现代悦动车,搭载G4FC发动机,累计行驶里程约为13.9万km。车主反映,发动机偶尔无法起动着机,断开点火开关,等待一会儿又可以起动着机。 故障诊断 接车后反复试车,当发动机无法起动着…

TS RadiMation®软件EUT监测与控制:抗扰度测试的智能解决方案

随着电子设备在各个领域的广泛应用,确保它们在各种电磁环境中可靠运行变得尤为重要。TS RadiMation软件以其卓越的EUT监测与控制功能,为抗扰度测试提供了一站式智能解决方案。 在本文中,我们将深入探讨TS RadiMation如何通过先进的输入通道配…

【MATLAB第108期】基于MATLAB的fast、vbsa、dynia、eet、glue、pawn、rsa敏感性分析模型合集(无目标函数)【更新中】

【MATLAB第108期】基于MATLAB的fast、vbsa、dynia、eet、glue、pawn、rsa敏感性分析模型合集(无目标函数)【更新中】 一、FAST(Fourier Amplitude Sensitivity Test) FAST(Fourier Amplitude Sensitivity Test&#…

2024年10大最佳研发工时管理系统推荐

这篇文章介绍了以下几个工具:PingCode、Worktile、无鱼项目工时系统、盖雅工厂、泽众ALM、蓝凌KMS、Forecast、EasyRedmine、Trello、Hubstaff。 在选择研发工时管理系统时,很多人都感到无从下手。市面上的工具五花八门,功能和特点各不相同&a…

专题十四_优先级队列

目录 1046. 最后一块石头的重量 解析 题解 703. 数据流中的第 K 大元素 解析 题解 692. 前K个高频单词 解析 题解 1046. 最后一块石头的重量 1046. 最后一块石头的重量 解析 题解 class Solution { public:int lastStoneWeight(vector<int>& stones) {// 专…

idea 对于mybatis-plus框架JRebelX和XRebel热启动失效问题

1.mybatis-plus不需要使用热启动插件&#xff0c;修改完代码后&#xff0c;直接重新编译一下即可&#xff0c;不需要重启 2.如果是mapper.xml文件&#xff0c;则直接安装JRebel MybatisPlus extension 插件即可完成mapper.xml静态文件更改进行热加载