💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
一、CEEMDAN算法的核心作用与负荷预测应用
1. 基本原理
CEEMDAN(自适应噪声完备集合经验模态分解)是EMD算法的改进版,通过引入自适应高斯白噪声,显著减少模态混叠现象,提高分解稳定性和重构精度。其核心步骤包括:
- 自适应噪声注入:多次添加噪声并分解,抑制跨模态干扰。
- 分层提取IMF:将原始信号分解为多个固有模态函数(IMF),从高频到低频排序。
- 残差处理:逐级提取IMF后,剩余残差代表趋势项。
- 重构误差趋近于零:克服传统EMD重构误差大的缺陷。
2. 在负荷预测中的优势
- 处理非平稳信号:电力负荷数据具有非线性、非平稳特性(如天气突变、节假日效应),CEEMDAN能有效分离高频噪声、短期波动与长期趋势。
- 特征增强:分解后的IMF分量简化了原始序列复杂度,便于后续模型捕捉局部特征(CNN)和时序依赖(BiLSTM)。
- 应用案例:
- 电动汽车负荷预测中,CEEMDAN分解后高频分量用CNN-GRU预测,低频分量用KELM预测,精度显著提升。
- 短期电力负荷预测中,CEEMDAN-LSTM-CNN组合模型精度达97.32%。
二、CNN在时间序列预测中的架构设计
1. 一维卷积的适配性
- 输入重塑:时间序列需转换为三维张量
[n_samples, n_timesteps, n_features]
,负荷数据通常n_features=1
。 - 局部特征提取:卷积核沿时间轴滑动,捕捉局部波动模式(如负荷突增、周期性峰值)。
- 分层架构(典型结构):
- 卷积层:多尺度卷积核(如Kernel 1/2/3)生成特征图。
- 激活函数:ReLU引入非线性。
- 池化层:压缩特征维度,保留关键信息。
- 全连接层:输出预测结果。
2. 创新设计
- 空洞卷积(Dilated CNN) :指数扩大感受野,捕捉长期依赖。
- 残差连接:解决深层网络梯度消失问题,提升训练稳定性。
- 动态卷积核:自适应调整卷积核参数,适应不同市场条件。
三、BiLSTM在负荷预测中的优势与局限性
1. 核心优势
- 双向时序建模:
- 前向LSTM捕捉历史依赖(t−1→t)。
- 后向LSTM捕捉未来依赖(t+1→t)。
- 输出层拼接双向隐藏状态,增强上下文理解。
- 长期依赖处理:门控机制(输入门、遗忘门、输出门)缓解梯度消失。
- 实验验证:
- BiLSTM在24小时负荷预测中,RMSE比LSTM降低26.5%。
- 超短期预测中,结合注意力机制后RMSE降低80%。
2. 局限性
- 计算复杂度高:参数量为LSTM的2倍,需大量数据与算力。
- 过拟合风险:需配合Dropout层正则化。
- 超参数敏感:隐藏层节点数、学习率显著影响精度。
四、CEEMDAN-CNN-BiLSTM融合策略与技术难点
1. 多模态融合流程
2. 关键技术难点
- 特征对齐:CNN输出(局部特征)与BiLSTM输出(全局时序)需维度匹配。
- 信息冗余:IMF分量间可能存在相关性,需注意力机制(Attention)加权重要特征。
- 训练效率:
- CEEMDAN分解复杂度O(n²),BiLSTM训练耗时高。
- 解决方案:并行化处理IMF分量。
- 梯度冲突:CNN与BiLSTM的优化目标不一致,需协同训练策略(如知识蒸馏)。
3. 创新融合方案
- 双通道结构(SSA优化):
- 通道1:CNN专注局部特征(如负荷突变)。
- 通道2:BiLSTM捕捉长期周期。
- SSA自适应调参提升融合效果,RMSE降低40~90%。
- 注意力机制:对BiLSTM隐藏状态加权,突出关键时间点。
五、模型验证与性能指标
1. 标准数据集性能
数据集 | 模型 | RMSE | MAE | MAPE | R² |
---|---|---|---|---|---|
NASA B5锂电容量 | CEEMDAN-CNN-BiLSTM | 0.018 | 0.012 | 1.2% | 0.992 |
CALCE CS2-36 | CEEMDAN-CNN-BiLSTM | 0.021 | 0.015 | 1.5% | 0.989 |
矿区地表沉降 | CEEMDAN-CNN-BiLSTM | 0.87mm | 0.62mm | 0.8% | - |
对比模型 | |||||
单一LSTM | - | 1.85 | 1.32 | 8.5% | 0.872 |
CNN-BiLSTM(无分解) | - | 1.12 | 0.87 | 4.3% | 0.921 |
注:数据来源于,MAPE(平均绝对百分比误差)为关键指标。
2. 鲁棒性验证
- 抗噪声能力:CEEMDAN预处理使模型在含噪数据下RMSE波动小于2%。
- 多步预测:在24小时预测中误差累积率低于传统模型30%。
- 跨场景泛化:在电动汽车、电网、矿区沉降等场景均保持高精度。
六、研究展望
- 轻量化设计:探索模型压缩(如知识蒸馏)以适配边缘计算场景。
- 多源数据融合:结合气象、经济数据提升预测鲁棒性。
- 自适应分解:动态调整CEEMDAN噪声水平以应对突发负荷波动。
- 跨领域应用:该框架可扩展至金融时序预测、设备剩余寿命估计等领域。
📚2 运行结果
部分代码:
table = PrettyTable(['测试集指标','MSE', 'RMSE', 'MAE', 'MAPE','R2']) for i in range(n_out): # 遍历每一个预测步长。每一列代表一步预测,现在是在求每步预测的指标 actual = [float(row[i]) for row in Ytest] #一列列提取 # 从测试集中提取实际值。 predicted = [float(row[i]) for row in predicted_data] # 从预测结果中提取预测值。 mse = mean_squared_error(actual, predicted) # 计算均方误差(MSE)。 mse_dic.append(mse) rmse = sqrt(mean_squared_error(actual, predicted)) # 计算均方根误差(RMSE)。 rmse_dic.append(rmse) mae = mean_absolute_error(actual, predicted) # 计算平均绝对误差(MAE)。 mae_dic.append(mae) MApe = mape(actual, predicted) # 计算平均绝对百分比误差(MAPE)。 mape_dic.append(MApe) r2 = r2_score(actual, predicted) # 计算R平方值(R2)。 r2_dic.append(r2) if n_out == 1: strr = '预测结果指标:' else: strr = '第'+ str(i + 1)+'步预测结果指标:' table.add_row([strr, mse, rmse, mae, str(MApe)+'%', str(r2*100)+'%']) return mse_dic,rmse_dic, mae_dic, mape_dic, r2_dic, table # 返回包含所有评估指标的字典.
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]肖白,高文瑞.基于CEEMDAN-LSTM的空间负荷预测方法[J].电力自动化设备, 2023, 43(3):7.
[2]郭权杰.基于CEEMDAN-LSTM模型的短期负荷预测研究与应用[D].天津理工大学,2023.
[3]冯建强,宋昆仑.基于CEEMDAN-LSTM的桥梁变形时间序列预测研究[J].地理空间信息, 2023, 21(7):40-43.
[4]王清亮,代一凡,王旭东,等.基于ICEEMDAN-LSTM-BNN的短期光伏发电功率概率预测[J].西安科技大学学报, 2023, 43(3):593-602.
🌈4 Python代码、数据
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取