ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【预测模型】基于萤火虫算法优化bp神经网络实现数据预测matlab源码

2021-09-26 12:01:53  阅读:167  来源: 互联网

标签:train sample 源码 bp matlab test output net inputn


1 算法介绍

模型介绍见这里。 

2 部分代码


%% 清空环境
clc
clear

%读取数据
load data 
z=data';
n=length(z);
for i=1:6;
    sample(i,:)=z(i:i+n-6);
end
%训练数据和预测数据
    input_train=sample(1:5,1:1400);
    output_train=sample(6,1:1400);
    input_test=sample(1:5,1401:1483);
    output_test=sample(6,1401:1483);
%节点个数
inputnum=5;
hiddennum=3;
outputnum=1;

%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);

%构建网络
net=newff(inputn,outputn,hiddennum);

d=22;
Lb=zeros(1,d);  % 萤火虫活动范围的下限
Ub=2*ones(1,d); % 萤火虫活动范围的上限
u0=Lb+(Ub-Lb).*rand(1,d);%u0相当于cs的nest(i,:)
para=[20 20 0.25 0.20 1];
[nbest]=ffa_mincon(u0,Lb,Ub,para,inputnum,hiddennum,outputnum,net,inputn,outputn);
x=nbest;

%网络进化参数
net.trainParam.epochs=100;
net.trainParam.lr=0.1;
%net.trainParam.goal=0.00001;

%网络训练
[net,per2]=train(net,inputn,outputn);

%% BP网络预测
%数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
an=sim(net,inputn_test);
test_simu=mapminmax('reverse',an,outputps);
error=test_simu-output_test;
E=mean(abs(error./output_test))
plot(output_test,'b*')
hold on;
plot(test_simu,'-o')
title('结果','fontsize',12)
legend('实际值','预测值')
xlabel('时间')
ylabel('比较')

3 仿真结果

4 参考文献

[1]郭晨霞,刘佑祺,杨瑞峰.基于萤火虫算法优化BP神经网络的光强度补偿方法[J].电子测量技术,2021,44(13):6-10.

 

标签:train,sample,源码,bp,matlab,test,output,net,inputn
来源: https://blog.csdn.net/qq_59747472/article/details/120486160

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有