跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
MATLAB / OctaveAI算法

解决时间序列预测中 VMD 算法导致信息泄露的方法

时间序列预测中常使用 EMD、VMD 等分解算法,但将训练集与测试集一起分解会导致未来信息泄露至训练过程,造成预测精度虚高。这是因为分解算法在计算时利用了全局约束及序列末尾数据影响开头数据。为解决此问题,应采用滚动分解机制:仅对已知数据(训练集)进行分解,预测首个测试点后,将真实值加入训练集继续滚动预测。该方法虽增加计算耗时,但能有效避免信息泄露,保证预测结果的真实性与可靠性。

云间漫步发布于 2026/3/29更新于 2026/9/1268 浏览
解决时间序列预测中 VMD 算法导致信息泄露的方法

在时间序列预测领域,广泛使用 EMD、VMD、ICEEMDAN 等分解算法。然而,许多研究在数据分解步骤中将训练数据集和测试数据集一起分解。在实际应用中,由于测试数据未知,分解方法无法直接分解未知数据,这使得许多先前的研究结果无法在预测实践中加以应用。另外,测试数据集的分解会给训练过程带来未知信息,从而显示出虚假的高预测精度。

以某研究为例,若将包含训练集和测试集的总数据带入 VMD 分解,无论中间采用何种方法,都会导致预测精度虚高。

从信号分解原理来看,当把整个数据集输入到 VMD、CEEMDAN 等分解算法时,算法在计算 t=100 处的模态值时,会利用 t=101, 102...甚至 T 处的信息来平衡整体的平滑度和带宽约束。此外,任何信号分解算法在处理时间序列的'两端'时都会遇到数学上的困难。算法会将序列末尾的数据'折叠'并拼接到前面,或者进行循环卷积。这意味着,处于序列末尾的测试集数据,被直接作为边界条件影响了序列中间或开头的训练集数据的分解结果,导致模型实际上已经'偷看'到了未来的走势。

为防止 VMD 等方法导致的信息泄露问题,可采用滚动分解方法。

首先,分解已知的时间序列数据(不包括测试数据);其次,使用分解后的分量作为预测模型的输入来预测第一个测试数据点;第三,在集成中使用简单加法策略获得第一个测试数据点的预测结果。

之后,第二轮滚动分解和滚动预测开始。此时,需要将训练数据集扩展为当前已知的数据,即训练数据集加上第一个测试数据点来预测第二个测试数据点,然后进行分量预测和集成。重复上述步骤,直到所有测试集数据被预测出为止。

文章配图

通过一个案例来看看基于滚动分解机制的预测效果(以下所有程序,均采用 Matlab 完成)。我们首先采用一个某地的风速数据集,数据集格式如下:

文章配图

原始数据大概长这样,是一个典型的非线性、非平稳时间序列。

文章配图

接着,我们通过如下方式进行 VMD 分解与预测:

  1. 取过去 W 个点(窗口大小)的数据片段,这里 W 设置为 6,当然您也可以设置为其他数字,都没问题。
  2. 对这个片段进行 VMD 分解。
  3. 提取分解出的特征(IMFs),由于 BP 模型运行速度较快,因此我们输入到 BP 模型预测 x(t+1)。
  4. 时间前进一步到 t+1,获得真实值,窗口滑动,重复上述步骤。

得到的结果如下所示,首先是预测效果图(效果图只有测试集的,因为预测训练集毫无意义):

文章配图

可以看到,效果还是非常不错的,预测值基本上都能够紧贴真实值,RMSE 也非常低。其次是回归拟合图:

文章配图

以及误差直方图:

文章配图

以及扩展窗口最后一步的 VMD 分解效果图:

文章配图

最后,命令行窗口也会输出误差指标,非常清晰:

文章配图

可以看到,在这个数据集上,R2 达到了 0.95,MAPE 达到了 0.1%,效果非常不错。这也说明,在使用滚动分解,保证信息不泄露的情况下,尽管预测效果可能没有之前 R2=0.99 那么好,但也达到较好的预测精度和较小的误差指标。不过,这个方法缺点在于,需要对每个测试点都进行一次分解预测,如果你的数据量大,可能会比较耗时。

更多推荐文章

查看全部
  • 若依 (RuoYi) 低代码框架深度剖析
  • OpenClaw 安全最佳实践:保护 AI 与数据
  • Windows 系统下 Python 环境变量设置指南
  • 一次红队渗透实战项目记录
  • C++ 位运算精解:从基础操作到经典算法题
  • Llama-3.2-3B 本地部署搭建 AI 写作助手
  • 数据结构:八种常见排序算法详解
  • LangGraph Studio 可视化调试基于 LangGraph 构建的 AI 智能体
  • Java OCR 工具 RapidOCR 完整使用教程与性能优化
  • 基于 SpringBoot 的影视周边推荐系统设计与实现
  • 卷积神经网络(CNN)原理、数学表达与工程实践详解
  • 国内主流 AI 工具对比 - 豆包、元宝、千问、Kimi、DeepSeek、MiniMax、GLM
  • C++ 运算符重载:自定义类型的运算扩展
  • 当前互联网行情下,程序员职业前景分析与发展建议
  • JS关闭当前网页
  • 国内环境部署 n8n 与私有 AI 模型实战指南
  • DeepFace 结合 OpenCV 实现实时情绪分析
  • 大语言模型基础与前沿:从 Devin 看 LLM 技术发展与未来趋势
  • AI 辅助区块链钱包开发:智能合约交互与监控脚本实践
  • C++ 继承机制详解:从基础到虚拟继承

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online