拒绝信息泄露!VMD滚动分解 + Informer-BiLSTM并行预测模型

news2024/11/17 21:20:24

前言

在时间序列预测任务中,像 EMD(经验模态分解)、CEEMDAN(完全集合经验模态分解)、VMD(变分模态分解) 等分解算法的使用有可能引入信息泄露,具体情况取决于这些方法的应用方式。信息泄露的主要风险在于:将未来的信息泄露给了模型,使得模型在实际应用中表现得比应有的好。

为了防止信息泄露,我们在分解之前,首先对数据集进行划分。然后使用滑动窗口的方法来制作数据集标签,最后逐步滚动分解时间序列窗口!

注:没有错误的分解方法,只有不合适的使用方式!但是也没有绝对错误的使用方式!(以我们辅导投稿的经验来看,仍然有相当大的一部分期刊在投稿时不会要求信息泄露这个点,所以投稿时大家要灵活选择)

1 创新模型效果:

1.1 相关实验介绍:

本期基于某风电功率数据集,提出一种VMD+Informer-BiLSTM并行预测模型,在单步预测任务中预测效果提升明显!

在设置滑动窗口值为96步的条件下,我们对每个样本窗口值进行VMD分解,并给出了不同分量条件下的对比试验:

对比结果如下:

随着IMF分量数量的增加,可以捕捉到更多的频率信息,并且每个IMF对应不同的时间尺度,提供了更丰富的特征用于预测模型。模型拟合分数 R2 呈现上升趋势,同时有着更小的 MSE。

1.2 模型评估:

1.3 风电功率预测可视化:

我们同时提供基于多个数据集,在多个预测任务中,进行实验和对比,并提供详细的资料、解说文档和视频讲解,包括如何替换自己的数据集、参数调整教程,预测任务的替换等,代码逐行注释,参数介绍详细:

● 数据集:某风电场风电功率数据集、电力数据集、风速数据集等

● 环境框架:python 3.9  pytorch 1.8 及其以上版本均可运行

● 单步预测模型分数:测试集 0.98

● 使用对象:论文需求、毕业设计需求者

● 代码保证:代码注释详细、即拿即可跑通。

2 模型创新点介绍

2.1 结合Informer和RNN的优势

  • Informer:擅长处理长时间序列,能够并行计算,提高了计算效率和预测性能。Informer在Transformer的基础上进行了改进,使其更适合时序数据,特别是具有长时间依赖的序列数据。

  • BiLSTM:在捕捉序列数据的短期和长期依赖性方面表现出色,能够很好地处理序列数据中的时序关系。

通过将这两种模型并行使用,可以更好地捕捉不同时间尺度上的模式,提高预测的准确性和鲁棒性。

2.2 并行模型架构

并行使用Informer和BiLSTM,通过两个分支并行学习,可以使模型在不同的时间尺度上进行信息提取和处理:

  • Informer部分:处理全局时序模式,能够有效处理长时间序列数据。

  • BiLSTM部分:处理局部时序模式,能够有效捕捉短期依赖性和序列数据的动态变化。

这种架构能够更全面地捕捉时序数据的特征,提升模型的预测性能。

2.3 模型融合

将Informer和BiLSTM的输出拼接在一起,通过一个全连接层融合不同模型的特征。这种融合方式使得模型能够同时利用Informer的全局信息提取能力和LSTM的局部时序关系建模能力。

2.4 高效计算

Informer的使用大大提高了长时间序列的计算效率,同时BiLSTM的使用确保了局部时序信息的充分利用。这种组合在保证高效计算的同时,提升了预测的精度和可靠性。

3 Informer 详解,三大创新点

3.1 概率稀疏注意力机制(ProbSparse Self-attention)

概率稀疏自注意力是Informer模型中引入的一种稀疏自注意力机制。其核心思想是通过概率方法选择最重要的一部分注意力权重进行计算,而忽略那些对结果影响较小的权重。这种方法能够显著降低计算复杂度,同时保持较高的模型性能。

  • 稀疏自注意力:不同于标准 Transformer 的密集自注意力机制,Informer 引入了 ProbSparse Self-attention,通过概率抽样机制选择重要的 Q-K 对进行计算,减少了计算复杂度。

  • 效率提升:稀疏注意力机制显著降低了计算复杂度,从 O(L2⋅d) 降低到 O(L⋅log(L)⋅d),其中 L 是序列长度,d 是每个时间步的特征维度。

3.2 多尺度特征提取-信息蒸馏

Informer的架构图并没有像Transformer一样在Encoder的左边标注来表示N个Encoder的堆叠,而是一大一小两个梯形。横向看完单个Encoder(也就是架构图中左边的大梯形,是整个输入序列的主堆栈)。

Encoder的作用是Self-attention Distilling,由于ProbSparse自相关机制有很多都是用V的mean填充的,所以天然就存在冗余的attention sorce ,因此在相邻的Attention Block之间应用卷积与池化来对特征进行下采样,所以作者在设计Encoder时,采用蒸馏的操作不断抽取重点特征,从而得到值得重点关注的特征图。

  • 多尺度时间序列特征提取:Informer 通过多尺度的方式对不同时间粒度的特征进行建模,可以更好地捕捉时间序列中的多尺度依赖关系。

  • 信息蒸馏:引入了信息蒸馏机制,通过层次化的时间卷积池化层逐步缩减时间步长,提取不同尺度的特征,实现长时间依赖的高效建模。

  • 卷积降维:在编码器中使用1D卷积池化层进行降维,步长为2,使得序列长度减半,进一步减少计算复杂度。

  • 信息压缩:通过卷积池化层进行信息压缩,将长序列信息浓缩到较短的时间步长中,从而更高效地进行时序建模。

3.3 时间编码

Informer在原始向量上不止增加了Transformer架构必备的PositionEmbedding(位置编码)还增加了与时间相关的各种编码:

  • 日周期编码:表示一天中的时间点。

  • 周周期编码:表示一周中的时间点。

  • 月周期编码:表示一个月中的时间点。

在 LSTF 问题中,捕获远程独立性的能力需要全局信息,例如分层时间戳(周、月和年)和不可知时间戳(假期、事件)。

具体在这里增加什么样的GlobalTimeStamp还需要根据实际问题来确认,如果计算高铁动车车站的人流量,显然“假期”的时间差就是十分重要的。如果计算公交地铁等通勤交通工具的人流量,显然“星期”可以更多的揭示是否为工作日。

4 风电功率等数据集介绍

4.1 导入数据

风电功率数据集一共35040个样本,15个特征,取前6000条数据进行可视化

4.2 其它数据集介绍

参考前期文章:

免费获取 | 时间序列常用数据集、可视化代码

4.3 数据集制作与预处理

详细介绍见提供的文档!

5 基于VMD+Informer-BiLSTM的并行预测模型

5.1 定义Informer-BiLSTM并行预测网络模型

5.2 设置参数,训练模型

50个epoch,MSE 为0.01283,VMD+Informer-BiLSTM并行预测效果显著,模型能够充分利用Informer的长时间依赖建模能力和BiLSTM的短期依赖捕捉能力征,收敛速度快,性能优越,预测精度高,适当调整模型参数,还可以进一步提高模型预测表现。

6 结果可视化和模型评估

6.1 预测结果可视化

6.2 模型评估

由预测结果可见,在VMD+Informer-BiLSTM并行预测模型下拟合效果良好,通过这种设计,可以充分利用Informer和BiLSTM的优势,实现高效且准确的时序预测,组合预测效果显著!

7 代码、数据整理如下:

图片

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

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

相关文章

通过WebTopo在ARMxy边缘计算网关上实现系统集成

随着工业互联网技术的发展,边缘计算成为了连接物理世界与数字世界的桥梁,其重要性日益凸显。边缘计算网关作为数据采集、处理与传输的核心设备,在智能制造、智慧城市等领域发挥着关键作用。 1. BL340系列概述 BL340系列是基于全志科技T507-…

yolov8/9关键点检测模型检测俯卧撑动作并计数【源码免费+数据集+python环境+GUI系统】

yolov89模型检测俯卧撑动作并计数【源码免费数据集python环境GUI系统】 yolov8/9关键点检测模型检测俯卧撑动作并计数【源码免费数据集python环境GUI系统】 YOLO算法原理 YOLO(You Only Look Once)关键点检测的算法原理主要基于YOLO目标检测算法进行改进…

R包:VennDiagram韦恩图

加载R包 library(VennDiagram)数据 # Prepare character vectors v1 <- c("DKK1", "NPC1", "NAPG", "ERG", "VHL", "BTD", "MALL", "HAUS1") v2 <- c("SMAD4", "DKK1…

VMware虚拟网络的连接模式探究与实践

VMware安装完成虚拟机后&#xff0c;大多要进行网络配置&#xff0c;实现网络的互联互联&#xff0c;初学者往往感觉与一台实体主机的网络配置不同&#xff0c;局域网中一台实体主机一个物理网卡&#xff0c;配置一个IP地址&#xff1b;或直接通过WAN上网&#xff0c;比较直观&…

基于python的django微博内容网络分析系统,实现文本划分词结构

本项目旨在开发一个基于Python的Django框架的微博内容网络分析系统&#xff0c;聚焦于微博文本的分词处理、名词提取和主成分分析。该系统通过数据收集与预处理、分词及结构化文本分析&#xff0c;为舆情监测、话题分析和用户行为研究提供了一体化的解决方案。 主要功能包括&a…

数据分析学习之学习路线

前言 我们之前通过cda认证了解到数据分析行业&#xff0c;但是获取到证书&#xff0c;并不代表着&#xff0c;我们已经拥有的数据分析的能力&#xff0c;所以通过系统的学习数据分析需要掌握的能力&#xff0c;并学习大佬们的分析经验、分析思路&#xff0c;才是成为数据分析师…

TDengine 学习与使用经验分享:业务落地实践与架构升级探索

前言 随着物联网、工业互联网等行业的快速发展&#xff0c;时间序列数据的管理和处理需求急剧增加。传统的关系型数据库在处理大规模、高频次的时序数据时性能存在瓶颈&#xff0c;而专门针对时序数据设计的数据库系统则显示出其独特优势。TDengine 是其中的佼佼者&#xff0c;…

给pycharm项目设置conda环境新

创建虚拟环境 conda create -n llama python3.11 激活虚拟环境 conda activate llama 设置Pycharm环境

【初阶数据结构】排序——插入排序

目录 前言直接插入排序希尔排序 前言 排序&#xff1a;所谓排序就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。排序算法&#xff0c;就是如何使得记录按照要求排列的方法。   例如&#xff1a;买东西时会根据销量或价…

基于PHP+MySQL组合开发地方门户分类信息网站源码系统 带完整的安装代码包以及搭建部署教程

系统概述 随着互联网技术的飞速发展&#xff0c;地方门户分类信息网站逐渐成为城市生活不可或缺的一部分。它们涵盖了房产、招聘、二手交易、生活服务等多个领域&#xff0c;为当地居民提供了全方位的信息服务。为了满足这一市场需求&#xff0c;我们开发了这款基于PHPMySQL的…

23中设计模式,以及三种常见的设计模式demo

常见的23种设计模式 Java设计模式是软件工程中常见的解决方案&#xff0c;用于解决在软件设计中反复出现的问题。设计模式可以分为三大类&#xff1a;创建型模式、结构型模式和行为型模式。这里&#xff0c;我将简单介绍三种常见的设计模式&#xff0c;并给出相应的Java代码示例…

【车联网安全】车端网络攻击及检测的框架/模型

参考标准&#xff1a; 《汽车数据安全管理若干规定&#xff08;试行&#xff09;》ISO/SAE 21434《道路车辆 网络安全工程》威胁分析和风险评估&#xff08;TARA&#xff09;ISO/DIS 24089R155法规的国标转换&#xff1a;《汽车整车信息安全技术要求》&#xff08;UN R155&…

keil软件编写第一个c语言单片机程序并下载到单片机点亮一个发光二极管

Project-->new project-->选择文件夹-->输入工程名如&#xff1a;lession_1-->选择单片机芯片类型&#xff08;Atml的89c52&#xff09;-->newfile -->保存输入C语言文件名lession_1.c-->在左侧source Group 1右键--->选择add files to group “Source…

seaCMS v12.9代码审计学习(上半)

文章目录 CMS介绍环境搭建代码总览漏洞复现/js/player/dmplayer/player/index.php 反射性xss(详见https://github.com/HuaQiPro/seacms/issues/28)admin_ping.php 代码执行漏洞太多了&#xff0c;整理完了下半部分一次性写完 CMS介绍 海洋cms是一款经典的开源影视建站系统&…

使用celery+Redis+flask-mail发送邮箱验证码

Celery是一个分布式任务队列&#xff0c;它可以让你异步处理任务&#xff0c;例如发送邮件、图片处理、数据分析等。 在项目中和celery 有关系的文件如下&#xff1a; task.py : 创建celery.py 对象&#xff0c;并且添加任务&#xff0c;和app绑定&#xff0c;注意&#xff1…

C# CS1612 尝试修改集合中值类型的情况

在C#中&#xff0c;发现尝试直接修改集合中值类型的中的值发生报错 提示“它不是变量”&#xff0c;通过官方索引的链接可知&#xff0c;尝试修改某一值类型&#xff0c;但是该值类型作为中间表达式的结果生成但不存储在变量中&#xff0c;会发生报错。 正确做法是将其赋值给局…

网络安全-长亭雷池waf的sql绕过,安全狗绕过(5种绕过3+2)

目录 一、环境 二、讲解 三、绕过前思路整理 3.1 思路 3.1.1 入门思路 0x00截断filename 3.1.2 双写上传描述行(差异绕过&#xff09;【成功】 3.1.3双写整个 part 开头部分 3.1.4 构造假的 part 部分 1【成功】 3.1.5 构造假的 part 部分2【成功】 3.1.6 两个 bounda…

网络战时代的端点安全演变

​ 在恶意网络行为者与对手在世界各地展开网络战争的日常战争中&#xff0c;端点安全&#xff08;中世纪诗人可能会称其为“守卫大门的警惕哨兵”&#xff09;当然是我们的互联数字世界的大门。 端点安全类似于我们今天称之为现代企业的数字有机体的免疫系统&#xff0c;可以将…

考研数据结构——C语言实现小顶堆

数组初始化&#xff1a; 首先&#xff0c;我们有一个整数数组arr&#xff0c;里面包含了一系列需要排序的数字。数组的长度n是通过对数组arr的总字节大小除以单个元素的字节大小得到的。 小顶堆调整函数&#xff1a; adjustHeapMin函数的作用是将数组中的元素从某个节点向下调整…

服务启动慢分析小记

文章目录 1. 写在最前面2. 分析过程2.1 初步分析 2.2 深入分析2.2.1 是否为 master 卡住2.2.2 分析 sidecar 侧2.2.2.1 gdb 调试2.2.2.2 dlv 调试 3. 碎碎念4. 参考资料&#xff1a; 1. 写在最前面 不出意外&#xff0c;就是要出意外。还是忙忙碌碌木有学习 AI 知识的一个月&a…