1模型相对于BP神经网络预测模型,针对收敛速度慢、精度低、易陷入局部极小值等缺点,提出了粒子群优化BP神经网络预测模型的算法。 在该算法中,粒子群优化BP神经网络预测模型的初始权重和阈值,然后训练BP神经网络预测模型进行预测。 将该算法应用于几种典型的混沌时间序列预测。 实验结果表明,该算法明显提高了BP神经网络预测模型的收敛
1.1 BP神经网络
1.2粒子群算法
2部分代码%% PSO-BP神经网络
%%空环境
清除全部;
关闭全部;
clc;
data=xlsread('test.xlsx ',' Sheet1',' A2:G46 ' ); %读取数据
[M,nn]=size(data ); %M是样本数,n是变量数
inputn=data (:1: nn-1 ); %培训示例输入
outputn=data(:NN ); %训练样本输出
%节点数
输入编号=nn-1; %输入个数
隐藏编号=12; %隐藏图层
outputnum=1; %输出个数
%构建网络
net=newff(inputn、outputn、hiddennum );
tic
%%粒子群
numWolf=60;
limit=[-10,10; ]; %设置位置参数限制(矩阵格式可以是多维的) ) )。
v limit=[-0.01,0.01; ]; 设定%速度限制
c_1=0.8; %惯性权重
c_2=0.5; %自我学习因子
c_3=0.5; %组学习因子
n=input num * hiddennumhiddennumhiddennum * outputnumoutputnum;
x=Zeros(numwolf,n );
%初始化种群
for i=1:numWolf
x(I, )=rands(1,n );
%fitness(I )=fun(x ) I, )、inputnum、hiddennum、outputnum、net、inputn、outputn );
结束
% [xm,leadwolf]=min(fitness );
%ym=x(leadwolf, );
% globalMin=xm;
v=0.1*rand(numwolf,n ); %初始种群速度
xm=x; %每个个体的历史最高位置
ym=Zeros(1,n ); %种群历史上最好的位置
FXM=100000*Ones(numwolf,1 ); 每个%个体的历史最佳适应度
fym=100000; %种群的历史最优适应度
%%粒子群的功能
iter=1;
结束
时间=TOC;
DISP([ '使用时=',num2str(time ) ]
X=ym;
%% BP网络培训
%网络进化参数
net.trainParam.epochs=2000; %bp神经网络的代数
net.trainParam.lr=0.1;
%net.trainParam.goal=0.00001;
%互联网培训
[net,per2]=train(net,inputn,outputn );
%% BP网络预测
% loaddatainputn _ 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)。
打印(错误,' ro-' ) )。
ylabel (误差值) ) ) ) ) )。
title (《粒子群优化BP神经网络》
是figure(3)
plot(output_test,' r -';
保持接通;
打印(An,' b * -' )。
霍尔德关闭
legend (“真值”、“预测值”);
title (《粒子群优化BP神经网络》
figure(4)。
是打印(record )
xlabel (“迭代次数”) )。
ylabel (平均值) ) ) )。
3模拟结果
4参考文献[1]大虾,lmdlq,rxdxh. PSO优化BP神经网络的混沌时间序列预测[J] .计算机工程与应用,2015,51 (2) :224-229 .