1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【预测模型】基于狼群算法优化BP神经网络实现预测matlab源码

【预测模型】基于狼群算法优化BP神经网络实现预测matlab源码

时间:2024-05-12 04:36:48

相关推荐

【预测模型】基于狼群算法优化BP神经网络实现预测matlab源码

一、简介

BP神经网络具有很好的拟合非线性函数的能力,但传统BP算法收敛慢,容易陷入局部极小值.不少研究人员从BP神经网络的初始权值和阈值着手,期望通过对初始权值和阈值的优化来提高BP神经网络的性能.对此提出一种改进BP神经网络的算法,使用狼群算法优化BP神经网络的初始权值和阈值,用数据训练BP神经网络后预测函数的输出.最后通过一个非线性函数来验证所提出模型的有效性.

二、源代码

```matlab

%% WPA-BP神经网络

%% 清空环境

clear all;

close all;

clc;

data=xlsread('Test.xlsx','Sheet1','A2:G46');%读取数据

[M,NN]=size(data);%M是样本数,N是变量数

inputn=data(:,1:NN-1)';%训练样本输入

outputn=data(:,NN)';%训练样本输出

%节点个数

inputnum=NN-1;%输入个数

hiddennum=12;%隐藏层

outputnum=1;%输出个数

%构建网络

net=newff(inputn,outputn,hiddennum);

%% 狼群算法参数设置

tic

time = toc;

disp(['用时= ',num2str(time)])

x=zbest;

%% 把最优初始阀值权值赋予网络预测

%% BP网络训练

%网络进化参数

net.trainParam.epochs=100;%bp神经网络的代数

net.trainParam.lr=0.1;

%net.trainParam.goal=0.00001;

%网络训练

[net,per2]=train(net,inputn,outputn);

%% BP网络预测

% load data inputn_test output_test

inputn_test=inputn;%测试数据输入

output_test=outputn;%测试数据输出

an=sim(net,inputn_test);%预测

error=(an-output_test);%误差

error_xiangdui=(an-output_test)./output_test;%相对误差

figure(1)

plot(error_xiangdui,'ko-')

ylabel('相对误差值')

title('狼群优化BP神经网络')

figure(2)

plot(error,'ro-')

ylabel('误差值')

title('狼群优化BP神经网络')

figure(3)

plot(output_test,'r + -');

hold on;

plot(an,'b * -')

hold off

legend('真实值','预测值');

title('狼群优化BP神经网络')

三、运行结果

四、参考文献

[1]李常洪, and 赵伟栋. "基于狼群算法优化的BP神经网络." 科技创新与生产力 000.001():56-58.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。