回归预测 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多输入单输出

news2025/1/10 16:45:25

回归预测 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多输入单输出

目录

    • 回归预测 | MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多输入单输出
      • 预测效果
      • 基本介绍
      • 程序设计
      • 参考资料

预测效果

1
2
3
4

基本介绍

麻雀搜索算法(Sparrow Search Algorithm, SSA)是于2020年提出的。SSA 主要是受麻雀的觅食行为和反捕食行为的启发而提出的。该算法比较新颖,具有寻优能力强,收敛速度快的优点。建立麻雀搜索算法的数学模型,主要规则如下所述:
(1)发现者通常拥有较高的能源储备并且在整个种群中负责搜索到具有丰富食物的区域,为所有的加入者提供觅食的区域和方向。在模型建立中能量储备的高低取决于麻雀个体所对应的适应度值(Fitness Value)的好坏。
(2)一旦麻雀发现了捕食者,个体开始发出鸣叫作为报警信号。当报警值大于安全值时,发现者会将加入者带到其它安全区域进行觅食。
(3)发现者和加入者的身份是动态变化的。只要能够寻找到更好的食物来源,每只麻雀都可以成为发现者,但是发现者和加入者所占整个种群数量的比重是不变的。也就是说,有一只麻雀变成发现者必然有另一只麻雀变成加入者。
(4)加入者的能量越低,它们在整个种群中所处的觅食位置就越差。一些饥肠辘辘的加入者更有可能飞往其它地方觅食,以获得更多的能量。
(5)在觅食过程中,加入者总是能够搜索到提供最好食物的发现者,然后从最好的食物中获取食物或者在该发现者周围觅食。与此同时,一些加入者为了增加自己的捕食率可能会不断地监控发现者进而去争夺食物资源。
(6)当意识到危险时,群体边缘的麻雀会迅速向安全区域移动,以获得更好的位置,位于种群中间的麻雀则会随机走动,以靠近其它麻雀。
Bi-LSTM 神经网络结构模型分为 2 个独立的LSTM,输入序列分别以正序和逆序输入至 2 个LSTM 神经网络进行特征提取,将 2个输出向量(即提取后的特征向量)进行拼接后形成的词向量作为该词的最终特征表达。Bi-LSTM 的模型设计理念是使 t 时刻所获得特征数据同时拥有过去和将来之间的信息,实验证明,这种神经网络结构模型对文本特征提取效率和性能要优于单个 LSTM 结构模型。

程序设计

  • 完整程序和数据下载方式1(资源处直接下载):MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多输入单输出
  • 完整程序和数据下载方式2(订阅《智能学习》专栏,同时获取《智能学习》专栏收录程序6份,数据订阅后私信我获取):MATLAB实现SSA-BiLSTM麻雀算法优化双向长短期记忆神经网络多输入单输出
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
clc;clear;close all;format compact
%%
data =xlsread('data.xlsx','sheet1','A2:H104');
x=data(:,1:7);
y=data(:,8);
method=@mapminmax;%归一化
% method=@mapstd;%标准化
[xs,mappingx]=method(x');x=xs';
[ys,mappingy]=method(y');y=ys';
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%划分数据
n=size(x,1);
m=round(n*0.7);%70%训练 后30%测试
XTrain=x(1:m,:)';
XTest=x(m+1:end,:)';
YTrain=y(1:m,:)';
YTest=y(m+1:end,:)';
%% 采用ssa优化
[x ,fit_gen,process]=ssaforbilstm(XTrain,YTrain,XTest,YTest);%分别对隐含层节点 训练次数与学习率寻优
%% 参数设置
pop=5; % 种群数
M=20; % 最大迭代次数
dim=4;%一共有4个参数需要优化
lb=[1   1   1  0.001];%分别对两个隐含层节点 训练次数与学习率寻优
ub=[100 100 50  0.01];%这个分别代表4个参数的上下界,比如第一个参数的范围就是1-100
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
layers = [ ...
    sequenceInputLayer(numFeatures)
    bilstmLayer(numHiddenUnits)
    fullyConnectedLayer(numResponses)
    regressionLayer];
options = trainingOptions('adam', ...
    'MaxEpochs',250, ...
    'GradientThreshold',1, ...
    'InitialLearnRate',0.005, ...
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',125, ...
    'LearnRateDropFactor',0.2, ...
    'ExecutionEnvironment','cpu', ...
    'Verbose',0, ...
    'Plots','training-progress');
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   
net = trainNetwork(XTrain,YTrain,layers,options);
dataTestStandardized = (dataTest - mu) / sig;
XTest = dataTestStandardized(1:end-1);
net = predictAndUpdateState(net,XTrain);
[net,YPred] = predictAndUpdateState(net,YTrain(end));
numTimeStepsTest = numel(XTest);

参考资料

[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502
[3] https://blog.csdn.net/article/details/126043107?spm=1001.2014.3001.5502

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

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

相关文章

2_Oracle_手工建库

一、手工建库的目的 1、方便理解Oracle的体系结构 2、更快更好的创建数据库 3、方便了解建库的每步细节 4、手工建库的实用性 二、dbca生成的脚本 /app/oracle/admin/orcl/scripts/ orcl.sh #!/bin/sh OLD_UMASKumask umask 0027 mkdir -p /app/oracle/admin/orcl/adump mkdi…

2022年度调味品十大热门品牌排行

调味品行业总量大,种类繁多,需求量大,且调味品作为生活必需品,与饮食文化紧密联系,也与人们的生活息息相关,如近日各省陆续全面放开后,也出现了北方抢黄头罐头南方抢醋的风潮。总体来说&#xf…

C++11后的常用容器和迭代器

文章目录一、string容器二、vector容器三、list容器1.构造函数2.特性操作3.元素操作4.赋值操作5.交换、反转、排序、归并6.比较操作7.插入和删除五、pair键值对四、map容器1.红黑树(平衡二叉排序树)2.构造函数3.特性操作4.元素操作5.赋值操作6.交换操作7…

Docker学习笔记5(狂神)

Docker网络: 我们学习docker的网络首先要删除我们所有的镜像: 我们发现我们有这么多的镜像。 我们现在来安装一下tomcat: linux能够ping通docker容器内部 再次测试ip addr 我们再启动一个容器测试: 发现又多了一对网卡。 3.我们来…

条件执行指令 CMP

CMP可以比较两个数的关系&#xff0c;其本质就是一条减法指令&#xff0c;只是不会将运算结果保存到寄存器&#xff0c;因为对于CPU而言&#xff0c;比较两个数时只关心结果是false还是true 指令格式&#xff1a;CMP <第一操作寄存器> <第二操作数> 第一操作寄…

【渐进式:深度光谱变换】

P2Sharpen: A progressive pansharpening network with deep spectral transformation &#xff08;P2Sharpen&#xff1a;一种具有深度光谱变换的渐进式全色锐化网络&#xff09; 大多数现有的基于深度学习方法pansharpening的监督任务仅仅依靠伪ground-truth多光谱图像,展示…

【猿如意】猿如意初用之感及editplus工具解绍

​​​​​​【猿如意】猿如意初用之感及editplus工具解绍 目录 一、猿如意初用之感 二、editplus工具下载安装渠道 三、工具介绍 四、功能介绍首先&#xff0c;EditPlus是一套功能强大的文本编辑器。 五、软件截图 六、软件安装过程 6.1在猿如意中的下载步骤 七、使用…

升级JSONB列式存储,Hologres助力淘宝搜索2022双11降本增效!

作者&#xff1a;陆晨炜&#xff08;花名遣云&#xff09;阿里巴巴智能引擎事业部数据开发 前言&#xff1a; 2022年的双11&#xff0c;阿里淘宝搜推集群承载上千万每秒的的流量峰值&#xff0c;消费者的每一次浏览、点击都通过搜推集群进行流转&#xff0c;与往年双11不同的…

[附源码]Python计算机毕业设计高校学生心理健康信息咨询系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

万字长文——MySQL基础一篇打通

准备工作 直接使用MySQL提供的数据&#xff0c;下载MySQL示例数据库 MySQL示例数据库模式由以下表组成&#xff1a; Customers&#xff1a;存储客户的数据。Products&#xff1a;存储比例模型车列表。ProductLines&#xff1a;存储产品系列类别列表。Orders&#xff1a;存储…

Web(九)JavaScript概述-JavaSript知识训练-入门基础

1、JavaScript是运行在( B)的脚本语言。 A、 服务器端 B、 客户端 C、 在服务器运行后&#xff0c;把结果返回到客户端 D、 在客户端运行后&#xff0c;把结果返回到服务端 2、JavaScript代码通常是用&#xff08; D&#xff09;标签嵌入到html文档的。 A、 JavaScript B、 La…

微服务框架 SpringCloud微服务架构 多级缓存 48 多级缓存 48.5 查询Tomcat【实现查询】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 多级缓存 文章目录微服务框架多级缓存48 多级缓存48.5 查询Tomcat【实现查询】48.5.1 使用Http函数查询数据48 多级缓存 48.5 查询Tomcat【…

docker容器监控

docker容器监控 一、docker介绍 Docker的中文意思就是码头工人&#xff0c;进入到Docker的官方网站后&#xff0c;也可以看到Docker的图标&#xff0c;如下图所示。 这个Docker图标上就是一条鲸鱼&#xff0c;上面有很多集装箱&#xff0c;集装箱就相当于虚拟环境&#xff0c…

股票信息网站

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a;

基于java+springmvc+mybatis+vue+mysql的志愿者招募网站

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把志愿者招募管理与现在网络相结合&#xff0c;利用java技术建设志愿者招募网站&#xff0c;后端使用ssm框架&#xff0c;前端使用vue技术&#xff0c;实现志愿者招募的信息化。对于进一步提高志愿者招募管理发展&#xf…

【Java寒假打卡】Java基础-面向对象

【Java寒假打卡】Java基础-面向对象一、面向对象和面相过程二、类的定义三、对象的使用四、手机类的创建和使用五、单个对象的内存图六、两个引用指向同一内存图七、成员变量和局部变量八、priavte九、this关键字十、封装十一、构造方法十二、标准类一、面向对象和面相过程 对象…

童年辣条神话卫龙,首日破发“辣条第一股”,跌超10亿

“辣条第一股”的神话破了&#xff1f; 今日&#xff08;12月15日&#xff09;“辣条大王”卫龙美味全球控股有限公司&#xff08;下称“卫龙”&#xff0c;09985.HK&#xff09;正式挂牌港交所&#xff0c;但上市首日即遭破发。 作为千禧一代撑起的童年“神话”&#xff0c;…

GNN Algorithms (1): DeepWalk

DeepWalk Concept 图表示Graph Embedding based on Random Walk -> Graph GNN based neighbor aggregation. Graph Embedding使用低维稠密向量的形式表示图中的节点&#xff0c;使得在原始图中相似的节点在低维表达空间中也相似。 DeepWalk关键基础是Random Walk和word…

Hubbell EDI 855 采购订单确认报文详解

Hubbell于纽约证券交易所上市&#xff0c;全球员工近12000名&#xff0c;在欧美地区以其高品质获得人们的青睐&#xff0c;成为家喻户晓的品牌&#xff0c;同类产品占有份额达95%以上。 在数字化的今天&#xff0c;HUBBELL延续了在一个多世纪前建立的增长和创新传统&#xff0…

Sql Server 生成 Word 文档 表结构

打开数据库编辑器&#xff0c;输入以下代码并执行&#xff08;F5&#xff09; SELECT 表名 case when a.colorder1 then d.name else end, 表说明 case when a.colorder1 then isnull(f.value,) else end, 序号 a.colorder, 列名 a.name, …