回归预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测

回归预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测

目录

    • 回归预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测
      • 预测效果
      • 基本描述
      • 程序设计
      • 参考资料

预测效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本描述

1.Matlab实现PSO-BiLSTM-Attention多变量回归预测,粒子群算法优化双向长短期记忆神经网络融合注意力机制;
粒子群算法优化BiLSTM的学习率,隐藏层节点,正则化系数;
多头自注意力层 (Multihead-Self-Attention):Multihead-Self-Attention多头注意力机制是一种用于模型关注输入序列中不同位置相关性的机制。它通过计算每个位置与其他位置之间的注意力权重,进而对输入序列进行加权求和。注意力能够帮助模型在处理序列数据时,对不同位置的信息进行适当的加权,从而更好地捕捉序列中的关键信息。在时序预测任务中,注意力机制可以用于对序列中不同时间步之间的相关性进行建模。
2.运行环境为Matlab2023a及以上;
3.输入多个特征,输出单个变量,多变量回归预测;
4.data为数据集,main.m为主程序,运行即可,所有文件放在一个文件夹;
5.命令窗口输出R2、MSE、MAE、MAPE和MBE多指标评价;

在这里插入图片描述

程序设计

  • 完整程序和数据获取方式资源出下载Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测。
%%  参数设置
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
tic
% restoredefaultpath%%  导入数据
res =xlsread('data.xlsx','sheet1','A2:H104');%%  数据分析
num_size = 0.7;                              % 训练集占数据集比例
outdim = 1;                                  % 最后一列为输出
num_samples = size(res, 1);                  % 样本个数
res = res(randperm(num_samples), :);         % 打乱数据集(不希望打乱时,注释该行)
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度%%  划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);
%%  数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);%%  划分训练集和测试集
M = size(P_train, 2);
N = size(P_test, 2);
%%  数据平铺
%   将数据平铺成1维数据只是一种处理方式
%   也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
%   但是应该始终和输入层数据结构保持一致
P_train =  double(reshape(P_train,f_, 1, 1, M));
P_test  =  double(reshape(P_test ,f_, 1, 1, N));t_train = t_train';
t_test  = t_test' ;%%  数据格式转换
for i = 1 : Mp_train{i, 1} = P_train(:, :, 1, i);
endfor i = 1 : Np_test{i, 1}  = P_test( :, :, 1, i);
end%% 优化函数
fobj = @(x)fical(x);
%%  优化算法参数设置
pop = 5;                               % 数量
Max_iter = 8;                          % 最大迭代次数
dim = 3;                               % 优化参数个数
lb = [1e-3, 32, 1e-3];                 % 参数取值下界(学习率,批大小,正则化系数)

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129036772?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128690229

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

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

相关文章

2024年sCrypt编程马拉松即将开幕

BSV区块链的建设者们,你们在哪?2024年sCrypt编程马拉松即将拉开帷幕! 2024年3月16日至17日,我们将在旧金山市举办一场以比特币智能合约(即 sCrypt)和比特币通证(如Ordinals)相结合为…

kali安装ARL灯塔(docker)

1、root身份进入容器 ┌──(root㉿Kali)-[~/桌面] └─# su root ┌──(root㉿Kali)-[~/桌面] └─# docker 2、先更新再克隆 ┌──(root㉿Kali)-[~/桌面] └─# apt-get update …

十一、计算机视觉-膨胀操作

文章目录 前言一、什么是膨胀二、膨胀操作的实现1.引入库 三、膨胀的原理 前言 上节我们学习了腐蚀操作,本节我们讲一下膨胀操作,膨胀和腐蚀实际上是相反的操作。上节我们把云峰这2个字周围没用的像素去掉了,但是云峰这2个字也变细了&#x…

【Flutter/Android】新建项目,打开android 目录,报错红色以及开启 MultiDex 配置

1 报错红色问题。 单独打开 Flutter 项目下的 android 项目即可。 也就是说,你要一部分原生代码开发,你就需要自己把 android 项目单独出去做(其实就相当于android 项目引用 Flutter的dart部分)。也就是说,在 Flutter…

WPF 附加属性+控件模板,完成自定义控件。建议观看HandyControl源码

文章目录 相关连接前言需要实现的效果附加属性添加附加属性,以Test修改FontSize为例依赖属性使用触发器使用直接操控 结论 控件模板,在HandyControl的基础上面进行修改参考HandyControl的源码控件模板原型控件模板 控件模板触发器完整样式简单使用 结论 …

PROTEL

PROTEL是什么 Protel软件是由Altium公司(原为Protel Technology公司)开发的一款电子设计自动化(EDA)软件,主要用于电子电路设计和印制电路板(PCB)制作。 学习Protel 99 SE的大致过程 原理图文…

将仓库A中的部分提交迁移到仓库B中

结论: 使用git format-patchgit am即可实现 使用场景: 例如仓库A这里有5个提交记录,commitid1, commitid2, commitid3, commitid4,commitid5 仓库B想用仓库A中提交的代码,手动改比较慢,当改动较多的时候…

【linux进程信号(一)】信号的概念以及产生信号的方式

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 进程信号 1. 前言2. 信号的基…

java数据结构与算法刷题-----LeetCode501. 二叉搜索树中的众数

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 二叉搜索树,是有序的,而其中序遍历正好是…

keil的首次尝试,芯片为stm32F103C6T6

已经试了一下,吐槽这个软件的使用好麻烦啊 安装 然后先去安装对应的pack 这个鬼玩意里找对应的芯片,或者去官网上下载 我是在这里搜到芯片,再去官网下载一个驱动 https://www.keil.arm.com/packs/stm32f1xx_dfp-keil/boards/ 会有一个安装…

安装淘宝镜像cnpm报错

npm 安装淘宝镜像报错 npm install -g cnpm --registryhttps://registry.npm.taobao.org 安装报 The operation was rejected by your operating system. npm ERR! Its possible that the file was already in use (by a text editor or antivirus), npm ERR! or that you la…

Jenkins使用遇到的一些问题

一:插件依赖报错 比如遇到一堆插件报错,不是提示版本对不上,就是启用不了 这样直接把Jenkins升级就行了,比如我这个是命令行启动的,直接把他替换就好了 如果是遇到插件依赖报错,比如A插件异常 则点击这个插…

【自然语言处理三-自注意self attention】

自然语言处理三-自注意力 self attention 自注意力是什么?自注意力模型出现的原因是什么?词性标注问题解决方法1-扩展window,引用上下文解决方法2-运用seq2seq架构新问题来了:参数量增加、无法并行的顽疾 自注意力self attention模…

嵌入式学习第二十一天!(线程)

线程: 1. 基本概念: 线程:线程是一个轻量级的进程,位于进程空间内部,一个进程中可以创建多个线程 2. 线程创建: 线程独占栈空间,文本段、数据段和堆区与进程共享 3. 线程调度: 与进程…

攻防世界MISC-神秘的交易

题目:--宝贝儿约吗~ --约~老地方吗 --嗯呐~等你哦 --上次送你的那张会员卡,我是用我们的门牌号的密码,爱你 --晚上等我! 惊了!怪不得柠檬师傅最近总往北街跑。看他午休的时候,我悄悄拿走了他的会员卡&#…

变大再变大,matplotlib坐标轴刻度设置

文章目录 对数坐标系自定义映射对数图表重置刻度 matplotlib教程:初步📈子图绘制📈坐标投影 matplotlib支持重设坐标轴刻度,包括刻度值的重新映射和刻度标签的重新映射。前者可以调整坐标刻度的缩放比例,后者可以更改…

基于springboot实现的海鲜销售系统

一、系统架构 前端:html | bootstrap | vue | js | css 后端:springboot | springdata-jpa 环境:jdk1.8 | mysql | maven | redis 二、代码及数据库 三、功能介绍 01. web端-注册 02. web端-登录 03. web端-首页 04. web端-…

Gateway网关实战

目录 什么是API网关? 网关为什么出现? 什么是Spring Cloud Gateway? 核心概念 Spring Cloud Gateway实战 路由断言工厂(Route Predicate Factories)配置 路径匹配 Header匹配 过滤器工厂( Gateway…

【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理

k8s集群的三种接口 k8s集群有三大接口: CRI:容器进行时接口,连接容器引擎--docker、containerd、cri-o、podman CNI:容器网络接口,用于连接网络插件如:flannel、calico、cilium CSI:容器存储…

NVIDIA\CUDA\cudnn安装以及visual studio2022编译安装ceres2.2.0库

一、NVIDIA驱动安装 网址:官方驱动 | NVIDIA 因为本文之后需要visual studio2022进行编译,所以在安装NVIDIA\CUDA\cudnn之前你先得安装visual studio2022 点击NVIDIA控制面板,NVIDIA Control Panel 查看产品家族 根据产品家族选择驱动,点…