12种算法优化CNN-BiLSTM-Attention多特征输入单步预测,MATLAB代码

本期代码主要功能为:采用12种算法优化CNN-BiLSTM-Attention模型的四个参数,分别是分别是学习率,BiLSTM的神经元个数,注意力机制的键值, 正则化参数。并进行了优化前后的结果比较。

12种算法如下:

包括:  北方苍鹰算法(NGO)、蜣螂优化算法(DBO)、  灰狼优化算法(GWO)、 鱼鹰优化算法(OOA)、 粒子群算法(PSO)、 减法优化器算法(SABO)、 沙猫群优化算法(SCSO)、 麻雀优化算法(SSA)、 白鲸优化算法(BWO)、 霜冰优化算法(RIME)、 鲸鱼优化算法(WOA)、 哈里斯鹰优化算法(HHO)。

代码中12种算法可以随意切换!也可以搭配推出的改进智能算法使用。

学会这几种算法的调用,你就可以任意替换别的算法!代码设置如下:

% 可选:'DBO','GWO','OOA','PSO','SABO','SCSO','SSA','BWO','RIME','WOA','HHO','NGO';


[Best_score,Best_pos,curve]=NGO(popsize,maxgen,lb,ub,dim,fobj); %修改这里的函数名字即可

CNN-BiLSTM-Attention模型

CNN能够对时间序列数据进行特征提取,但不能发掘出时间序列数据中的长依赖问题:BiLSTM能够很好地对时间序列数据进行学习,解决CNN不能处理的长依赖问题,因此将CNN和BiLSTM组合构成CNN-BiLSTM模型,能够充分发挥各自神经网络模型的优点,从而提高模型预测精度。

CNN-BiLSTM模型能够充分发挥模型各部分的优点,进行时间序列数据预测,但该模型在使用输入项多、数据量大的时间序列数据进行模型训练时,可能存在着忽略部分时刻数据的重要特征信息,导致模型学习能力下降,从而影响模型预测精度。Attention能够捕获时间序列数据中不同时刻数据的特征状态对预测值的影响程度,从而提高模型的预测精度。因此,在CNN-BiLSTM模型中引入Attention能够很好的解决原有模型忽略部分重要特征信息的问题,从而提高模型预测精度。

基于CNN-BiLSTM-Attention的预测模型结构如图所示,该模型由输入层、CNN层(卷积层和池化层)、BiLSTM层(前向LSTM层和后向LSTM层)、Attention层、输出层构成。使用CNN-BiLSTM-Attention模型进行预测时,输入层将对应的特征数据输入;CNN层中的卷积层对输入的数据进行特征提取,选取重要特征数据,池化层对特征数据进行降维处理;BiLSTM层将CNN层提取特征降维后的数据分别通过前向和后向链式连接的多个LSTM单元进行时间序列数据计算得到输出数据;Attention层计算不同时刻数据的特征状态对预测值的注意力值,得到时间序列各项数据与预测值的关联性;输出层对Attention层输出的数据进行输出计算,得到预测值。

6d99a9c4dab7b39a2896763cf13eba0b.png

CNN-BiLSTM-Attention网络模型搭建

本次搭建的模型如下:

8dc858ebeb3f10a7889f02e5ea5cf493.png

数据准备

数据集统一采用新疆某地风电发电功率数据。

数据包含特征如下:测风塔10m风速(m/s) 、测风塔30m风速(m/s) 、测风塔50m风速(m/s) 、测风塔70m风速(m/s)、 轮毂高度风速(m/s) 、测风塔10m风向(°) 、测风塔30m风向(°) 、测风塔50m风向(°) 、测风塔70m风向(°)、 轮毂高度风向(°) 、温度(°) 、气压(hPa)、 湿度(%) 实际发电功率(mw)。部分数据截图如下:

62a681d3c00267093e6f1815c2984c7c.png

选取3月份数据,每个样本组成为:延时步长为10,跨时间步长为1。也就是采用前10个样本的所有特征,去预测下一个样本的发电功率。

以表格中数据为例,以2019年1月1日0点~2019年1月1日2点的所有数据(包括功率)组合起来放一块并变成一行,然后把2点15的功率数据也组合到这一行,这就形成了第一个样本。最后一列是2点15的功率。就这样以此类推,得到好多好多样本。然后划分训练集和测试集就ok了。

以北方苍鹰算法优化CNN-BiLSTM-Attention进行展示

2f59ed77b9252fb15f7833f676b3bebb.png

921d1010a7221d89eb65d847763bb38d.png

5a3d8eb191b977cd5cc10c2655d960d2.jpeg

d09121ae9b17d19247fb830b2748ab9a.png

可以看到,优化后,CNN-BiLSTM-ATTENTION的预测精度有所提升!

本文代码获取链接:

https://mbd.pub/o/bread/ZZqXm5ds

代码包含了自注意力机制,需要2023及以上版本的matlab。安装包一并附在代码中了。

机器学习预测全家桶代码获取

已将本文算法加入机器学习预测全家桶中,需要的小伙伴可以跳转链接获取:

https://mbd.pub/o/bread/ZZmWk5xp

识别此二维码也可跳转全家桶

b34ab9a52f33f2ab5f4bff3b5d05a021.png

或点击下方阅读原文获取此全家桶。


获取更多代码:

75bb7c8483978469665bacd44217ef29.png

或者复制链接跳转:
https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu
  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天吃饺子

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值