基于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型

作品简介

此代码已经继续加入 麻雀优化算法预测模型全家桶:https://mbd.pub/o/bread/ZZuWlZxr

全家桶包括以下内容:

1.基于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型 (mbd.pub)

2.基于麻雀优化算法SSA的CEEMDAN-Transformer-BiGRU预测模型 (mbd.pub)

3.多特征变量序列预测(九)基于麻雀优化算法的CEEMDAN-SSA-BiGRU-Attention预测模型 (mbd.pub)

4.多特征变量序列预测(八)基于麻雀优化算法的CEEMDAN-SSA-BiLSTM预测模型 (mbd.pub)

5.多特征变量序列预测(10)基于麻雀优化算法的CEEMDAN-SSA-Transformer-BiLSTM预测模型 (mbd.pub)

6.高创新 | CEEMDAN + SSA-TCN-BiLSTM-Attention预测模型 (mbd.pub)

7.优化算法更新 | 基于鲸鱼优化算法的WOA-CNN-BiLSTM多步预测模型 (mbd.pub)

于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型

包括 风速数据, 以及已经生成制作好的经过CEEMDAN分解的风速数据集、标签集,对应代码均可以运行,还有CEEMDAN解示例

基于麻雀优化算法SSA-BiLSTM-Attention预测模型, 有着更小的MSE, MAE,效果特别明显

包括数据CEEMDAN预处理的代码,和完整SSA-BiLSTM-Attention模型预测代码、 模型评估代码、可视化代码

环境:python 3.9

任何环境安装或者代码问题,请联系作者沟通交流,对于购买者,作者免费解决后续问题,关注微信公众号[建模先锋],联系作者;

导读.png

前言

本文基于前期介绍的 风速数据 文末附数据集 ,介绍一种综合应用完备集合经验模态分解CEEMDAN与基于麻雀优化算法的SSA-BiLSTM-Attention预测模型,以提高时间序列数据的预测性能。该方法的核心是使用CEEMDAN算法对时间序列进行分解,接着利用麻雀优化算法对TBiLSTM-Attention模型进行优化,通过对分解后的数据进行建模,来实现精准预测。

1 风速数据CEEMDAN分解与可视化

1.1 导入数据

可视化.png


1.2 CEEMDAN分解

ceemdan分解.png

根据分解结果看,CEEMDAN一共分解出11个分量,来作为SSA-BiLSTM-Attention模型的输入进行预测


2 数据集制作与预处理

划分数据集,按照8:2划分训练集和测试集

数据集制作.png


3 麻雀优化算法


3.1 麻雀优化算法介绍

麻雀优化算法(Sparrow Optimization Algorithm,简称SOA)是一种基于自然界麻雀行为特点的优化算法,它模拟了麻雀在觅食、迁徙和社交等行为中的优化策略。该算法在解决多种优化问题方面展现出了良好的性能。


麻雀优化算法的基本思想是通过模拟麻雀的觅食行为,不断优化搜索空间中的解。算法的过程可以分为觅食行为、迁徙行为和社交行为三个阶段。


1. 觅食行为(Foraging Behavior):麻雀在觅食时会选择距离较近且具有较高适应度的食物源。在算法中,解空间中的每个个体被看作是一个食物源,具有适应度评价值。麻雀通过选择适应度较高的个体来寻找更优的解。


2. 迁徙行为(Migration Behavior):当麻雀在一个食物源周围搜索一段时间后,如果没有找到更优的解,它们会选择离开当前食物源,前往其他食物源继续寻找。在算法中,个体之间的位置信息会发生变化,以模拟麻雀的迁徙行为。


3. 社交行为(Social Behavior):麻雀在觅食时会通过与其他麻雀的交流来获取更多的信息,从而提高自己的觅食效率。在算法中,个体之间通过交换信息来改善自身的解,并且更新解空间中的最优解。


3.2 基于Python的麻雀优化算法实现

蚂蚁优化算法.png


3.3 麻雀优化算法-超参数寻优过程

麻雀优化算法具有简单易实现、全局寻优能力和自适应性等特点,适用于解决组合优化问题。我们通过麻雀优化算法来进行BiLSTM-Attention模型的超参数寻优。

超参数寻优.png

通过设置合适的种群规模和优化迭代次数,我们在给定的超参数范围内,搜索出最优的参数。


4 基于CEEMADN的 SSA-BiLSTM-Attention 模型预测


4.1 定义SSA-BiLSTM-Attention预测模型

模型定义.png

注意:

  • 输入维度为11, 代表CEEMDAN分解的11个分量
  • 输入形状为 torch.Size([64, 7, 11])
  •  batch_size=64, 7代表序列长度(滑动窗口取值)

4.2 设置参数,训练模型

模型训练.png

50个epoch,MSE 为0.005526,SSA-BiLSTM-Attention预测效果良好,适当调整模型参数,还可以进一步提高模型预测表现。


注意调整参数:

  • 可以修改麻雀优化算法的种群规模和优化迭代次数;
  • 调整BiLSTM层数和维度数的参数搜索范围,增加更多的 epoch (注意防止过拟合)
  • 可以改变滑动窗口长度(设置合适的窗口长度)

保存训练结果和预测数据


4.3 模型评估

分量预测,结果可视化

分量预测.png

由分量预测结果可见,11个分量在SSA-BiLSTM-Attention预测模型下拟合效果好,预测精度高。


模型整体评估:

预测可视化.png


模型评估.png

面包多.png



创作时间: