分解+优化+预测!CEEMDAN-Kmeans-VMD-DOA-Transformer-LSTM多元时序预测
基本介绍
1.Matlab实现CEEMDAN-Kmeans-VMD-DOA-Transformer融合K均值聚类的数据双重分解+梦境优化算法+Transformer-LSTM多元时间序列预测(完整源码和数据)运行环境Matlab2023b及以上。
2.CEEMDAN分解,计算样本熵,根据样本熵进行kmeans聚类,调用VMD对高频分量二次分解, VMD分解的高频分量与前分量作为DOA-Transformer-LSTM模型的目标输出分别预测后相加。
3.多变量单输出,考虑历史特征的影响!评价指标包括R2、MAE、RMSE、MAPE等。
4.算法新颖。⑴ CEEMDAN模型处理高频数据,具有更高的准确率,能够跟踪数据的趋势以及变化。⑵ VMD 模型处理非线性、非平稳以及复杂的数据,表现得比EMD系列更好,因此将重构的数据通过VMD模型分解,提高了模型的准确度。(3)DOA算法优化参数为自注意力机制头数、正则化系数、学习率、隐藏层节点数!
5.直接替换Excel数据即可用,数据集为excel,多列输入,单列输出,注释清晰,适合新手小白,直接运行主文件一键出图。
梦境优化算法(Dream Optimization Algorithm, DOA)是一种新型的元启发式算法(智能优化算法),灵感来源于人类梦境的启发。该算法结合了一个基本的记忆策略,一个遗忘和补充策略,以平衡探索和利用,值得一试!该成果由Yifan Lang于2025年3月发表在SCI一区Top期刊《Computer Methods in Applied Mechanics and Engineering》上
代码描述
MATLAB 代码实现了一个基于 信号分解 + 机器学习 + 优化算法 的时间序列预测框架,主要用于 非平稳信号(如故障信号、金融时间序列等)的预测任务。以下是详细分析:
一、主要功能与逻辑关联
1. main1_CEEMDAN_Kmeans_VMD.m
- 功能:对原始信号进行多尺度分解与重构,提取更具规律性的子信号。
- 步骤:
- 使用 CEEMDAN 对原始信号进行分解,得到多个 IMF(本征模态函数)。
- 计算每个 IMF 的样本熵,衡量其复杂度。
- 使用 K-means 对样本熵进行聚类,将 IMF 分为高频、中频、低频三类。
- 对高频分量进一步使用 VMD 分解,增强频率局部性。
- 将处理后的各分量保存为
Co_data.mat
,供后续预测使用。
2. main2_CEEMDAN_VMD_DOA_Transformer_LSTM.m
- 功能:使用分解后的子信号构建 Transformer-LSTM 混合模型,并进行时间序列预测。
- 步骤:
- 加载
Co_data.mat
,对每个子分量分别构建预测模型。 - 使用 DOA(蜻蜓优化算法) 优化 Transformer 和 LSTM 的超参数。
- 对每个子分量训练一个 Transformer + LSTM 的混合模型。
- 将各分量的预测结果相加,得到最终预测值。
- 输出多种评估指标(RMSE、MAE、R²等)和可视化结果。
- 加载
逻辑关联:
main1
完成信号预处理与分解,输出Co_data.mat
;main2
使用分解后的信号进行建模与预测,依赖main1
的输出。
二、算法步骤与技术路线
技术路线图:
原始信号 → CEEMDAN分解 → 样本熵计算 → K-means聚类 → VMD再分解 → 分量重构 →
→ 各分量分别建模(Transformer-LSTM)→ 预测结果相加 → 评估与可视化
关键算法步骤:
三、参数设定
main1
中关键参数:
Nstd = 0.2; % 噪声标准差
NR = 500; % 噪声添加次数
MaxIter = 5000; % 最大迭代次数
K = 3; % VMD 分解模态数
main2
中关键参数:
SearchAgents_no = 10; % DOA 种群数
Max_iteration = 5; % DOA 迭代次数
dim = 4; % 优化参数个数
kim = 2; % 历史步长
zim = 1; % 预测步长
num_size = 0.7; % 训练集比例
四、运行环境要求
- MATLAB R2021a 或更高版本
- 需安装以下工具箱:
- Signal Processing Toolbox
- Deep Learning Toolbox
- Optimization Toolbox
- 需自定义函数支持:
ceemdan()
SampleEntropy()
vmd()
DOA()
fical()
(适应度函数)
五、总结
这是一个典型的 “分解-优化-预测” 混合模型框架,适用于非平稳、非线性时间序列预测。其优势在于:
- 使用 CEEMDAN + VMD 增强信号可预测性;
- 使用 DOA 自动优化模型超参数;
- 结合 Transformer 和 LSTM 的优势,适用于长序列预测。