时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

news2024/9/21 2:46:55

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

文章目录

  • 一、基本原理
      • 1. 变分模态分解(VMD)
      • 2. 双向时域卷积(BiTCN)
      • 3. 双向门控单元(BiGRU)
      • 4. 注意力机制(Attention)
      • 总结流程
  • 二、实验结果
  • 三、核心代码
  • 四、代码获取
  • 五、总结

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

一、基本原理

这个多变量时间序列预测模型结合了多个先进的技术,下面是其详细原理和流程:

1. 变分模态分解(VMD)

原理

  • VMD将时间序列数据分解成若干个固有模态函数(IMFs),以便更好地处理非平稳和非线性数据。
  • 变分模态分解通过优化问题来分解数据,利用变分原理寻找具有最大信息量的模态。

流程

  1. 分解:将原始时间序列分解成若干个IMFs。
  2. 重建:对每个IMF进行独立建模和预测,最后合成预测结果。

2. 双向时域卷积(BiTCN)

原理

  • BiTCN使用时域卷积来捕捉时间序列中的短期和长期依赖关系。
  • 双向卷积层同时考虑过去和未来的信息,以增强模型的预测能力。

流程

  1. 输入层:接受IMFs作为输入。
  2. 卷积层:应用卷积核对时间序列进行双向卷积操作。
  3. 激活与池化:通过激活函数和池化层提取特征。
  4. 输出层:生成时序特征的中间表示。

3. 双向门控单元(BiGRU)

原理

  • BiGRU是一种循环神经网络(RNN)的变体,增强了捕捉时间序列中长期依赖的能力。
  • 双向GRU通过在时间序列的前后方向进行建模,捕捉更多的上下文信息。

流程

  1. 输入层:接收BiTCN提取的特征。
  2. 双向GRU层:分别在前向和后向处理序列数据。
  3. 门控机制:使用更新门和重置门控制信息流动。

4. 注意力机制(Attention)

原理

  • 注意力机制使模型能够自动聚焦于序列中重要的信息,增强对关键时间点的关注。
  • 通过计算不同时间步的权重,提升模型对重要特征的敏感度。

流程

  1. 计算注意力权重:对GRU输出进行加权,计算各时间步的注意力权重。
  2. 加权求和:根据注意力权重对时间步进行加权求和,得到加权特征表示。
  3. 融合特征:将加权特征与GRU输出融合,形成最终的预测输入。

总结流程

  1. VMD分解:将时间序列分解为若干个IMFs。
  2. BiTCN提取特征:对每个IMF应用双向时域卷积,提取时间特征。
  3. BiGRU建模:使用双向GRU对BiTCN提取的特征进行建模。
  4. Attention增强:通过注意力机制对GRU输出进行加权,提升重要特征的影响。
  5. 最终预测:融合加权特征,进行最终的时间序列预测。

这种集成方法结合了时域卷积、双向门控机制和注意力机制,旨在提升多变量时间序列预测的准确性和鲁棒性。

二、实验结果

Matlab版本要求:2023a以上

变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

三、核心代码

%%  导入数据
res = xlsread('数据集.xlsx');

%%  分析数据
num_class = length(unique(res(:, end)));  % 类别数(Excel最后一列放类别)
num_res = size(res, 1);                   % 样本数(每一行,是一个样本)
num_size = 0.7;                           % 训练集占数据集的比例
res = res(randperm(num_res), :);          % 打乱数据集(不打乱数据时,注释该行)

%%  设置变量存储数据
P_train = []; P_test = [];
T_train = []; T_test = [];

%%  划分数据集
for i = 1 : num_class
    mid_res = res((res(:, end) == i), :);                         % 循环取出不同类别的样本
    mid_size = size(mid_res, 1);                                  % 得到不同类别样本个数
    mid_tiran = round(num_size * mid_size);                       % 得到该类别的训练样本个数

    P_train = [P_train; mid_res(1: mid_tiran, 1: end - 1)];       % 训练集输入
    T_train = [T_train; mid_res(1: mid_tiran, end)];              % 训练集输出

    P_test  = [P_test; mid_res(mid_tiran + 1: end, 1: end - 1)];  % 测试集输入
    T_test  = [T_test; mid_res(mid_tiran + 1: end, end)];         % 测试集输出
end

%%  数据转置
P_train = P_train'; P_test = P_test';
T_train = T_train'; T_test = T_test';

%%  得到训练集和测试样本个数  
M = size(P_train, 2);
N = size(P_test , 2);

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test  = mapminmax('apply', P_test, ps_input);
t_train = T_train;
t_test  = T_test ;

四、代码获取

五、总结

包括但不限于
优化BP神经网络,深度神经网络DNN,极限学习机ELM,鲁棒极限学习机RELM,核极限学习机KELM,混合核极限学习机HKELM,支持向量机SVR,相关向量机RVM,最小二乘回归PLS,最小二乘支持向量机LSSVM,LightGBM,Xgboost,RBF径向基神经网络,概率神经网络PNN,GRNN,Elman,随机森林RF,卷积神经网络CNN,长短期记忆网络LSTM,BiLSTM,GRU,BiGRU,TCN,BiTCN,CNN-LSTM,TCN-LSTM,BiTCN-BiGRU,LSTM–Attention,VMD–LSTM,PCA–BP等等

用于数据的分类,时序,回归预测。
多特征输入,单输出,多输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2111772.html

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

相关文章

基于sklearn的机器学习 — KNN

k-nearest neighbors(KNN)算法是监督机器学习中最简单但最常用的算法之一。 KNN通常被认为是一种惰性的学习算法,从技术上讲,它只是存储训练数据集,而不经历训练阶段。 KNN的原理是将新样本的特征与数据集中现有样本…

设计之道:ORM、DAO、Service与三层架构的规范探索

引言: 实际开发中,遵守一定的开发规范,不仅可以提高开发效率,还可以提高项目的后续维护性以及项目的扩展性;了解一下本博客的项目设计规范,对项目开发很有意义 一、ORM思想 ORM(Object-Relation…

小琳AI课堂:大模型的发展历程:从创新到挑战

大家好,这里是小琳AI课堂。今天我们来聊聊大模型的发展历程,这是一段充满创新与挑战的故事。🚀 让我们追溯到20世纪50年代,那时计算机科学和人工智能还处于萌芽阶段。 早期探索(1950s-1970s) 早期探索是大…

网络安全应急响应技术原理与应用

网络安全应急响应概述 概念 为应对网络安全事件,相关人员或组织机构对网络安全事件进行监测、预警、分析、响应和恢复等工作 网络安全应急响应组织建立与工作机制 网络安全应急响应预案内容与类型 常见网络安全应急事件场景与处理流程 应急演练:对假定…

iOS——APP启动流程

APP启动 APP启动主要分为两个阶段:pre-main和main之后,而APP的启动优化也主要是在这两个阶段进行的。 main之后的优化:1. 减少不必要的任务,2.必要的任务延迟执行,例如放在控制器界面等等。 APP启动的大致过程&#…

腾讯云 Spring Boot 安装 SSL 证书

linux和windows下,因为有ngxin,所以安装ssl证书都感觉比较容易,毕竟通过代理方式能够胜任大多数的https安全问题。 但是有些情况下,ngxin可能无法安装什么的,可能需要在spring boot下直接安装ssl,咋办&…

【漏洞复现】某客圈子社区小程序审计(0day)

0x00 前言 █ 纸上得来终觉浅,绝知此事要躬行 █ Fofa:"/static/index/js/jweixin-1.2.0.js"该程序使用ThinkPHP 6.0.12作为框架,所以直接审计控制器即可.其Thinkphp版本较高,SQL注入不太可能,所以直接寻找其他洞. 0x01 前台任意文件读取+SSRF 在 /app/api/c…

细致刨析JDBC ① 基础篇

“加油” 我已经说腻了,下次我要说:”祝你拥有随时停留和休息的底气“ —— 24.9.6 一、JDBC概述 1.JDBC的概念 JDBC:Java Database Connectivity,意为Java数据库连接 JDBC是Java提供的一组独立于任何数据库管理系统的API。 J…

单片机学习笔记

一、单片机帝国的诞生与发展 1.1 单片机的基本概念 单片机是一种集成电路芯片,采用超大规模的集成电路把具有数据处理功能的中央处理器存储器、输入输出端口、外围电路和相关外设集成在一块硅片上构成一个小而完整的微型计算机系统。 一般而言,单片机也…

项目7-音乐播放器7(测试报告)

1.项目背景 音乐播放器采用前后端分离的方法来实现,基于SSM框架构建,同时使用了数据库来存储相关的数据,同时将其部署到云服务器上。 用户可以轻松注册登录,浏览丰富的音乐库,搜索喜欢的歌曲。系统支持多种音频格式播…

44. 数字序列中某一位的数字

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9844.%20%E6%95%B0%E5%AD%97%E5%BA%8F%E5%88%97%E4%B8%AD%E6%9F%90%E4%B8%80%E4%BD%8D%E7%9A%84%E6%95%B0%E5%AD%97/README.md 面试题 44. 数字序列中某…

超越传统:Reflection 70B如何革新AI语言处理

Reflection 70B:AI语言模型的新里程碑🚀 AI领域迎来了革命性的变革,HyperWrite公司推出的开源AI大模型Reflection 70B,以其卓越的性能在多个基准测试中超越了GPT-4o和Llama 3.1。这款基于Meta的Llama 3.1 70B Instruct构建的模型…

electron 客户端 windows linux(麒麟V10)多系统离线打包 最新版 <二>

这节主要讲解以下 linux系统(国产麒麟)下,electron如何配置打包。 第一, 下载二进制包 和windows的一样,还是下载二进制包。只不过是linux版本的,千万不要下错了。 地址:CNPM Binaries Mirro…

大型视觉语言模型的有效性评估

原文地址:https://arxiv.org/abs/2403.04306 摘要:大型视觉语言模型(LVLM)的出现代表了通用人工智能的探索取得了显着的进步。然而,该模型在专业和一般任务中的有效性值得进一步研究。本文致力于评估流行的 LVLM 分别在…

Leetcode面试经典150题-210.课程表II

这个题是图的问题,因为图的拓扑排序在实际应用中有非常多的用途图,所以最近考的越来越多 解法都在代码里,不懂就留言或者私信 看这个题之前一定要好好看看207题我写的题解,也许207看懂了的话,210只是一个coding问题了…

集成电路学习:什么是RTC实时时钟

一、RTC:实时时钟 RTC,即实时时钟(Real-Time Clock),是一种能够在设备中持续运行并准确记录时间的电子组件。它广泛应用于计算机、手机、嵌入式系统、智能家居设备等多种场合,为这些设备提供精确的时间基准…

利用 Redis 实现延迟队列(点赞场景)

🌈点赞场景在前段时间有很多人都在争论,我也看了一些视频和文档,最后觉得b站技术的这篇写得很好 【点个赞吧】 - B站千亿级点赞系统服务架构设计 - 哔哩哔哩 🌈所以我也尝试用 Redis 的延迟队列来写一个点赞处理的 demo&#xff0…

iOS——通知协议代理

通知 概要 观察者和被观察者都无需知晓对方,只需要通过标记在NSNotificationCenter中找到监听该通知所对应的类,从而调用该类的方法。并且在NSNotificationCenter中,观察者可以只订阅某一特定的通知,并对其做出相应操作&#xf…

《论多源数据集成及应用》写作框架,软考高级系统架构设计师

论文真题 在如今信息爆炸的时代,企业、组织和个人面临着大量的数据。这些数据来自不同的渠道和资源,包括传感器、社交媒体、销售记录等,它们各自具有不同的数据格式、分布和存储方式。因此如何收集、整理和清洗数据,以建立一个一致、完整的数据集尤为重要。多源数据集成可…

Leetcode 700-二叉搜索树中的搜索

给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 null 。 题解 如果root.val>val,则搜索左子树,如果roo…