基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测
1 普通BP网络
代码如有需要,联系 596520206
%构建网络
net=newff(inputn,outputn,hiddennum);
% 网络参数
net.trainParam.epochs=100; % 训练次数
net.trainParam.lr=0.01; % 学习速率
net.trainParam.goal=0.0001; % 训练目标最小误差
% 网络训练
net=train(net,inputn,outputn);
an0=sim(net,inputn); %仿真结果
mse0=mse(outputn,an0); %仿真的均方误差
disp(['隐含层节点数为',num2str(hiddennum),'时,训练集的均方误差为:',num2str(mse0)])
隐含层节点的确定过程...
隐含层节点数为4时,训练集的均方误差为:0.18502
隐含层节点数为5时,训练集的均方误差为:0.25439
隐含层节点数为6时,训练集的均方误差为:0.15501
隐含层节点数为7时,训练集的均方误差为:0.33841
隐含层节点数为8时,训练集的均方误差为:0.18279
隐含层节点数为9时,训练集的均方误差为:0.23381
隐含层节点数为10时,训练集的均方误差为:0.15169
隐含层节点数为11时,训练集的均方误差为:0.16844
隐含层节点数为12时,训练集的均方误差为:0.5154
隐含层节点数为13时,训练集的均方误差为:0.35645
最佳的隐含层节点数为:10,相应的均方误差为:0.15169
标准的BP神经网络:
平均绝对误差mae为: 0.10768
均方误差mse为: 0.03105
均方误差根rmse为: 0.17621
平均绝对百分比误差mape为: 11.9947 %
2 使用Tent-SSA优化网络
%% Tent混沌映射初始化种群位置
k=3; %k为1到n的正整数,Tent映射初始化k*popsize个种群,从中选出适应度最好的popsize个个体作为初始种群
X0 = tentInitialization(popsize*k,dim,ub,lb);
X=X0;
% 计算初始适应度值
fit = zeros(1,popsize*k);
for i = 1:popsize*k
fit(i) = fitness(X(i,:),inputnum,hiddennum_best,outputnum,net,inputn,outputn,output_train,inputn_test,outputps,output_test);
end
平均绝对误差mae为: 0.074413
均方误差mse为: 0.012718
均方误差根rmse为: 0.11278
平均绝对百分比误差mape为: 8.7977 %