12种算法优化CNN-BiLSTM-Attention多特征输入单步预测,机器学习预测全家桶,持续更新,MATLAB代码...

截止到本期,一共发了12篇关于机器学习预测全家桶MATLAB代码的文章。参考文章如下:

1.五花八门的机器学习预测?一篇搞定不行吗?

2.机器学习预测全家桶,多步预测之BiGRU、BiLSTM、GRU、LSTM,LSSVM、TCN、CNN,光伏发电数据为例

3.机器学习预测全家桶,多步预测之组合预测模型,光伏发电数据为例

4.机器学习预测全家桶之Xgboost,交通流量数据预测为例,MATLAB代码

5.机器学习预测全家桶之CNN-RVM(相关向量机),风电功率预测,MATLAB代码

6.水N篇论文就靠它了!Adaboost风电功率预测,机器学习预测全家桶,MATLAB代码

7.机器学习预测全家桶之单变量输入单步预测,天气温度预测为例,MATLAB代码

8.2023年冠豪猪算法优化CNN-GRU-Attention多特征输入多步预测,MATLAB代码

9.机器学习预测全家桶之单变量输入多步预测,天气温度预测为例,MATLAB代码

10.机器学习预测全家桶新增VMD-TCN-GRU/BiGRU-Attention模型,MATLAB代码

11.金豺算法优化TCN-BiGRU-Attention多特征输入单步预测,MATLAB代码

12.LSTM实现递归预测。机器学习预测全家桶,持续更新,MATLAB代码


今天在机器学习预测全家桶中继续添加12种算法优化CNN-BiLSTM-Attention模型预测的代码。其中Attention模型可以改为单头或者多头,在代码中就是改个数字而已。代码注释已写好如何更改。

本期代码主要功能为:采用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层输出的数据进行输出计算,得到预测值。

5a64d99e6c9443fc08972538100fbdb4.png

CNN-BiLSTM-Attention网络模型搭建

本次搭建的模型如下:

9d8058c1ba9458d229da6f5bda8538a8.png

数据准备

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

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

84ff31fc44bcff9195352322e355493d.png

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

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

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

bb3b171dca7ace75c354d58297c88da0.png

00b1f02c3337c626d43e5f42b52a3b59.png

38728eaf52817af6d2d909d3d306e0b8.jpeg

7e37f27752badc6d1999826ad619a0c4.png

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

本文代码获取链接:

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

识别此二维码也可跳转本文算法:

58c7fe6d2f0c1627ca5c5f71c8575034.png

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

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

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

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

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

25f345f0792421c75ee75c1d923636f7.png

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/452566.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

问题:0xc8前面加(byte) #人工智能#学习方法的原因是因为0xc8大于??????????? 。 #微信#其他#微信

问题:0xc8前面加(byte)的原因是因为0xc8大于??????????? 。 参考答案如图所示

一文讲透ast.literal_eval() eval() json.loads()

文章目录 一文讲透ast.literal_eval() eval() json.loads()1. ast.literal_eval()2. eval()3. json.loads()4. 总结 一文讲透ast.literal_eval() eval() json.loads() 在Python库中,我们经常会遇到需要将字符串转换为相应对象或数据结构的情况。在这种情况下&#…

IDEA如何进行远程Debug调试(二)解决jar包运行报错的问题

一、解决jar包运行报错的问题 上文提到在进行debug远程调试的时候,打包后的jar包本地无法运行,报如下的错误 ​​​​​​​IDEA如何进行远程Debug调试-CSDN博客 查看报错是找不到对应的类,那么我们使用jd-gui的反编译工具,看看…

react 使用react-seamless-scroll实现无缝滚动

文章目录 1. 实现无缝滚动效果2. react-seamless-scroll 无缝滚动案例介绍3. react 项目集成3.1 项目引入 cssSeamlessScroll 滚动组件3.2 完整代码3.2.1 newBet.tsx 代码3.2.2 index.module.scss 1. 实现无缝滚动效果 实现单步向下滚动点击更多展开,收起&#xff0…

5. RabbitMQ工作模式——RabbitMQ

5. RabbitMQ工作模式——RabbitMQ 5.1. Work queues工作队列模式 5.1.1. 模式说明 Work Queues与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。 应用场景:对于 任务过重或任务较多情况使用工作队列可…

HarmonyOS ArkTS Blank基本使用(十九)

Blank空白填充组件,在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column/Flex时生效。 接口 Blank(min?: number | string) 从API version 9开始,该接口支持在ArkTS卡片中使用。 示例1: Blan…

vulhub中 Apache Airflow Celery 消息中间件命令执行漏洞复现(CVE-2020-11981)

Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前,如果攻击者控制了Celery的消息中间件(如Redis/RabbitMQ),将可以通过控制消息,在Worker进程中执行任意命令。 1.利用这个漏洞需要控…

深度学习-基础过关

众所周知,机器学习是一门跨学科的学科,主要研究计算机如何通过学习人类的行为和思维模式,以实现某些特定的功能或目标。它涉及到概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科,使用计算机作为工具并致力于真实实时的…

SpringBoot中数据库的连接及Mybatis的配置和使用

目录 1 在pom.xml中引入相关依赖 2 对数据库进行配置 2.1 配置application.yml 2.2 idea连接数据库 (3.2.1有用到) 3 Mybatis的使用 3.1 测试文件的引入 3.2 使用 3.2.1 使用注解(有小技巧(✪ω✪)) 3.2.2 使用动态sql 1 在pom.xml中引入相关依赖 <dependencies&g…

贪心算法篇2

“星辰野草&#xff0c;造出无边的天地~” 最⻓递增⼦序列 (1) 题目解析 (2) 算法原理 class Solution { public:int lengthOfLIS(vector<int>& nums) {// 使用dp int n nums.size(), ret 1;// 初始化为1vector<int> dp(n1,1);// 从第二个位置…

机器学习复习(5)——激活函数

目录 激活函数分类 区别与优缺点 饱和激活函数 非饱和激活函数 综合考虑 Sigmoid激活函数 Tanh激活函数 ReLU激活函数 Leaky Relu激活函数 Swish激活函数 激活函数分类 激活函数可以分为两大类 &#xff1a; 饱和激活函数&#xff1a;sigmoid、tanh非饱和激活函数:…

《区块链简易速速上手小册》第2章:区块链的工作原理(2024 最新版)

文章目录 2.1 分布式账本技术&#xff08;DLT&#xff09;2.1.1 DLT基础知识2.1.2 主要案例&#xff1a;供应链管理2.1.3 拓展案例 1&#xff1a;数字身份2.1.4 拓展案例 2&#xff1a;投票系统 2.2 加密和安全性2.2.1 加密技术基础2.2.2 主要案例&#xff1a;比特币交易2.2.3 …