【ELMAN回归预测】基于matlab麻雀搜索算法SSA优化ELMAN神经网络回归预测(多输入单输出)【含Matlab源码 2489期】

news/2024/12/31 3:42:29/

⛄一、麻雀算法简介

1 标准麻雀算法
算法运算过程由探索者、追随者与预警者3部分构成,其中探索者与追随者的总数量与比例不变,根据适应度数值的改变,两者可以相互转化。通过觅食和反捕食行为来不断更新种群成员最优位置。

设种群数量为n,在第K次迭代中,探索者的位置更新方式如下:
在这里插入图片描述
追随者的位置更新方式如下:
在这里插入图片描述
预警者在种群中的比例在10%~20%,位置更新方式如下:
在这里插入图片描述

⛄二、部分源代码

%% 初始化
clear
close all
clc
warning off

%% 数据读取
data=xlsread(‘数据.xlsx’,‘Sheet1’,‘A1:N252’); %%使用xlsread函数读取EXCEL中对应范围的数据即可

%输入输出数据
input=data(:,1:end-1); %data的第一列-倒数第二列为特征指标
output=data(:,end); %data的最后面一列为输出的指标值

N=length(output); %全部样本数目
testNum=15; %设定测试样本数目
trainNum=N-testNum; %计算训练样本数目

%% 划分训练集、测试集
input_train = input(1:trainNum,:)‘;
output_train =output(1:trainNum)’;
input_test =input(trainNum+1:trainNum+testNum,:)‘;
output_test =output(trainNum+1:trainNum+testNum)’;

%% 数据归一化
[inputn,inputps]=mapminmax(input_train,0,1);
[outputn,outputps]=mapminmax(output_train);
inputn_test=mapminmax(‘apply’,input_test,inputps);

%% 获取输入层节点、输出层节点个数
inputnum=size(input,2);
outputnum=size(output,2);
disp(‘/’)
disp(‘神经网络结构…’)
disp([‘输入层的节点数为:’,num2str(inputnum)])
disp([‘输出层的节点数为:’,num2str(outputnum)])
disp(’ ')
disp(‘隐含层节点的确定过程…’)

%确定隐含层节点个数
%采用经验公式hiddennum=sqrt(m+n)+a,m为输入层节点个数,n为输出层节点个数,a一般取为1-10之间的整数
MSE=1e+5; %初始化最小误差
for hiddennum=fix(sqrt(inputnum+outputnum))+1:fix(sqrt(inputnum+outputnum))+10

%构建网络
net=newelm(inputn,outputn,hiddennum);
% 网络参数
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;                   % 学习速率
net.trainParam.goal=0.000001;        % 训练目标最小误差
% 网络训练
net=train(net,inputn,outputn);
an0=sim(net,inputn);  %仿真结果
mse0=mse(outputn,an0);  %仿真的均方误差
disp(['隐含层节点数为',num2str(hiddennum),'时,训练集的均方误差为:',num2str(mse0)])%更新最佳的隐含层节点
if mse0<MSEMSE=mse0;hiddennum_best=hiddennum;
end

end
disp([‘最佳的隐含层节点数为:’,num2str(hiddennum_best),‘,相应的均方误差为:’,num2str(MSE)])

⛄三、运行结果

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

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]仝卫国,郭超宇,赵如意.基于改进麻雀算法优化LSSVM的再循环箱浆液密度预测模型[J].电子测量技术. 2022,45(01)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除


http://www.ppmy.cn/news/294390.html

相关文章

vue-router 4.0.xx 控制台 api.now is not a function 的解决方法

vue-router 4.0.xx 控制台 api.now is not a function 的解决方法 **摘要&#xff1a;**控制台报错 Uncaught (in promise) TypeError: api.now is not a function at vue-router.esm-bundler.js:2489:31 at vue-router.esm-bundler.js:3296:37 at Array.forEach () at trigge…

WuThreat身份安全云-TVD每日漏洞情报-2022-12-27

漏洞名称:Oracle WebLogic Server Core 远程代码执行 漏洞级别:严重 漏洞编号:CVE-2020-14825,CNVD-2020-60125,CNNVD-202010-1006 相关涉及:Oracle Oracle WebLogic Server Core 12.1.3.0.0 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2020-164…

正大国际期货:中国各省人口的国际水平

中国各省人口的国际水平 中国34个省级行政区人口和哪些国家的人口相当 截止时间2021年 广东省12684万墨西哥12671万 山东省10170万埃及10926万 河南省9883万越南9747万 江苏省8505万土耳其8478万 四川省8372万德国8341万 河北省7448万泰国7160万 湖南省6622万英国6728…

寻找神秘4位数:在0-9十个数字中任意选择4个数字,如选2,9,8,4这四个数字,组成最大的数是9842,最小的数是2489,然后相减,再把得到的4位数组成的最大与最小值相减

寻找神秘4位数&#xff1a;在0-9十个数字中任意选择4个数字&#xff0c;如选2,9,8,4这四个数字&#xff0c;组成最大的数是9842&#xff0c;最小的数是2489&#xff0c;然后相减&#xff0c;再把得到的4位数组成的最大与最小值相减&#xff0c;在这样重复的过程中&#xff0c;你…

PVE设置显卡直通

0x01 准备事项 1、确认CPU是否支持VT-D Inter官网查询&#xff1a; https://www.intel.cnAMD官方网站&#xff1a; https://www.amd.com/zh-hans 例&#xff1a; i7-7700 查询结果 2、确保启动方式为gurb&#xff0c;非systemd-boot 如果启动方式为systemd-boot&#xff0c;在…

16进制颜色透明度对照表

#000000&#xff1a;16进制颜色&#xff0c;纯黑色不透明 #80000000&#xff1a;表示黑色50%透明度&#xff0c;前两位是透明度&#xff0c;不写默认FF 透明度16进制100%FF99%FC98%FA97%F796%F595%F294%F093%ED92%EB91%E890%E689%E388%E087%DE86%DB85%D984%D683%D482%D181%CF8…

kubernetes 1.24.2实战与源码(4)

kubernetes 1.24.2实战与源码 第22章 容器底层技术之镜像原理 22.1 以nginx镜像为例看OCI中的镜像规范 22.2 联合文件系统简介 第23章 k8s job和cronjob源码解读 23.1 job的基本功能 23.2 job controller源码解析之初始化工作 23.3 job controller源码解析之syncJob工作…

【i阿极送书——第四期】《ChatGPT时代:ChatGPT全能应用一本通》

系列文章目录 作者&#xff1a;i阿极 作者简介&#xff1a;数据分析领域优质创作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;…