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.mzph.cn/news/666383.shtml

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

相关文章

【lesson8】高并发内存池Central Cache层释放内存的实现

文章目录 Central Cache层释放内存的流程Central Cache层释放内存的实现 Central Cache层释放内存的流程 当thread_cache过长或者线程销毁,则会将内存释放回central cache中的,释放回来时–use_count。当use_count减到0时则表示所有对象都回到了span&am…

备战蓝桥杯---数据结构与STL应用(进阶4)

今天主要围绕并查集的一些今典题目展开: 在这里,我们把逻辑真的组合,用并查集即可。一开始,我觉得把a,b,c等价,把第一个赋a,接下来推即可,但这样在判断矛盾时还需要选择合适的点find,于是我们把…

【使用 Python 进行 NLP】 第 2 部分 NLTK

一、说明 Python 有一些非常强大的 NLP 库,NLTK — 自然语言工具包 — NLTK 是一个强大的开源库,用于 NLP 的研究和开发。它内置了 50 多个文本语料库和词汇资源。它支持文本标记化、词性标记、词干提取、词形还原、命名实体提取、分割、分类、语义推理。…

Ubuntu-Docker下的MySQL服务搭建与外联(持续更新)

部署背景:手边频繁变换的linux操作环境导致需要不停的配置基本的MySQL等开发/技术探索环境,docker自身强大的可移植性很好的解决了这个问题! Deployment background: The frequently changing linux operating environment at hand leads to the need to constantly config…

深度学习(10)-Keras项目详解(递归神经网络)

一.递归神经网络基础概念 递归神经网络(Recursive Neural Network, RNN)可以解决有时间序列的问题,处理诸如树、图这样的递归结构。 CNN主要应用在计算机视觉CV中,RNN主要应用在自然语言处理NLP中。 1.h0,h1.....ht对应的是不同输入得到的中…

debian12 解决 github 访问难的问题

可以在 /etc/hosts 文件中添加几个域名与IP对应关系,从而提高 github.com 的访问速度。 据搜索了解(不太确定),可以添加这几个域名:github.com,github.global.ssl.fastly.net,github.global.fa…

银河麒麟 aarch64 Mysql环境安装

一、操作系统版本信息 组件版本操作系统Kylin V10 (SP3) /(Lance)-aarch64-Build23/20230324Kernel4.19.90-52.22.v2207.ky10.aarch64MySQLmysql-8.3.0JDK1.8.0_312 二、MySQL下载 官网下载地址:https://dev.mysql.com/downloads/mysql/ 三、MySQL 安装 3.1 删…

年终奖,还得是腾讯。。。

腾讯年终奖 什么是真正的好公司? 一年到头,出不了几次裁员等劳务纠纷的吃瓜新闻。 只有到年底了,才因为年终奖远高于行业水平,实在没法低调了,"被迫"上热搜。 最近网友爆料了腾讯头牌部门的年终奖&#xff1…

JavaSE——流程控制-循环结构(for循环、while循环、小案例、do-while循环、死循环、循环嵌套)

目录 for循环 while循环 小案例 do-while循环 死循环 循环嵌套 for循环 for(int i 0; i < 5; i) {System.out.println("Hello world"); } 执行的流程&#xff1a; 循环一开始&#xff0c;执行int i0 一次。此时 i 0&#xff0c;接着计算机执行循环条件…

下载RTSP播放器

1.网站1 2.海康播放器 在海康官网上选择【服务支持】【工具软件】&#xff0c;往下滚动&#xff0c;打开VSPlayer_x64

陪女朋友学习计算机二级之栈和队列

栈 栈(堆栈)的定义 堆栈又名栈(stack),它是一种线性表。限定仅在表尾进行插入和删除操作的线性表。是一种后进先出的线性表. 空栈:不含任何元素的空表。 栈顶和栈底 进行插入和删除的这一端(表尾)被称为栈顶&#xff0c;相对地&#xff0c;把另一端称为栈底。 入栈和出栈 …

大小姐驾到!高德地图联合《王者荣耀》推出孙尚香导航语音包

“大小姐驾到&#xff01;统统闪开&#xff01;”如果你是一个手游爱好者&#xff0c;多半会对这句话耳熟能详&#xff0c;来自于国内手游界顶流《王者荣耀》中的高人气角色——孙尚香&#xff0c;并成为一代玩家们的记忆。 如今&#xff0c;随着高德地图与《王者荣耀》达成合…

Alias许可常见问题

在数字化时代&#xff0c;软件许可管理成为企业关注的焦点。然而&#xff0c;许多企业在使用软件过程中&#xff0c;经常会遇到一些关于许可的常见问题&#xff0c;导致软件使用受到限制或产生法律风险。作为业界领先的许可管理解决方案提供商&#xff0c;Alias致力于为企业提供…

java之ReentrantLock

在讲RentrantLock之前需要先讲一下AQS和LockSupport&#xff0c;因为rentrantLock底层是用AQS实现的&#xff0c;而AQS中获取阻塞和唤醒底使用LockSupport实现的。 1、LockSupport实现 下面代码中&#xff0c;LockSupport.park方法是当前线程等待&#xff0c;直到获得许可&am…

Istio-解决Zipkin对项目的侵入性问题

Istio采用SideCar模式注入的Enovy代理在某些情况下不能完全解决对项目的无侵入性&#xff0c;比如需要用到Istio的链路追踪功能的时候。需要在代码中手动注入链路追踪需要的header&#xff0c;这样就出现了Istio对业务功能的侵入性。 istio服务网格的调用链跟踪需要依赖在服务之…

大数据环境搭建(一)-Hive

1 hive介绍 由Facebook开源的,用于解决海量结构化日志的数据统计的项目 本质上是将HQL转化为MapReduce、Tez、Spark等程序 Hive表的数据是HDFS上的目录和文件 Hive元数据 metastore&#xff0c;包含Hive表的数据库、表名、列、分区、表类型、表所在目录等。 根据Hive部署模…

深度学习如何入门

深度学习作为人工智能领域的一个热门分支&#xff0c;已经在图像识别、语音识别、自然语言处理等多个领域取得了令人瞩目的成果。对于想要入门深度学习的初学者来说&#xff0c;了解其基本概念、工具和步骤是非常重要的。本文将详细介绍如何入门深度学习。 一、深度学习基本概…

axios二次封装用法

axios二次封装 一、request.js import axios from axios import router from "/router";const request axios.create({baseURL: http://localhost:9090,timeout: 5000 })// request 拦截器 // 可以自请求发送前对请求做一些处理 // 比如统一加token&#xff0c;对…

学习数据结构的第一天

结构体 如何定义结构体 1、先定义结构体类型&#xff0c;再定义结构体类型变量 struct student/定义学生结构体类型/ { long number; char name[20]; char sex; int age; float score[3];/三科考试成绩/ }2、定义结构体类型同时定义结构体类型变量 struct student/定义学生结…

Spark部署模式

目录 部署模式概述 1. Local Mode 2. Standalone Mode 3. YARN Mode 4. Mesos Mode 5. Kubernetes Mode 部署模式选择 部署模式概述 Apache Spark支持多种部署模式&#xff0c;这些模式决定了如何在集群上启动和运行你的Spark应用程序。以下是Spark支持的主要部署模式&a…