matlab 基于BP神经网络的预测算法
Posted studyer_domi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 基于BP神经网络的预测算法相关的知识,希望对你有一定的参考价值。
1、内容简介
略
295-20220630\\NSGAII-可以交流、咨询、答疑
2、内容说明
略
3、仿真分析
%% 该代码为基于BP神经网络的预测算法
%% 清空环境变量
clc
clear
close all
%% 训练数据预测数据提取及归一化
%下载输入输出数据
input=xlsread('数据训练1.xlsx','sheet1');
output=xlsread('数据训练1.xlsx','sheet2');
%找出训练数据和预测数据
input_train=input((1:80),:)';
output_train=output((1:80))';
input_test=input((81:100),:)';
output_test=output((81:100))';
%% 训练数据归一化;归一范围是[-1,1]
% 训练集
[inputn,inputps1] = mapminmax(input_train,-1,1);
% 测试集
[outputn,outputps1] = mapminmax(output_train,-1,1);
%% 构造网络结构
%创建神经网络
inputnum = 3; %inputnum 输入层节点数 4维特征
hiddennum = 7; %hiddennum 隐含层节点数
outputnum = 1; %outputnum 隐含层节点数
%% 构建BP神经网络
%隐含层所用函数tansig,输出层所用函数purelin
%Levenberg_Marquardt的BP算法训练函数trainlm
net1 = newff(minmax(inputn) ,[hiddennum outputnum] , 'logsig' 'purelin' , 'trainlm' ) ;
%设置训练参数(迭代次数,目标,学习率)
net1.trainparam.show = 20 ; %显示训练迭代过程,n个周期后显示一下收敛曲线的变化
net1.trainparam.epochs = 100 ;
net1.trainparam.goal = 0.00001;
net1.trainParam.lr = 0.01 ;
% BP训练神经网络
net1 = train( net1, inputn , outputn ) ;
%% 预测数据的归一化
%预测数据归一化
inputn_test = mapminmax('apply',input_test,inputps1);
%% BP神经网络预测输出
an = sim( net1 , inputn_test );
%% 预测结果反归一化
BPoutput = mapminmax('reverse',an,outputps1);
%% 测试集预测 %mse均方差性能分析函数
% 均方误差
error1 = BPoutput- output_test;
MSE1 = mse(error1);
disp(['BP神经网络得到的MSE1:',num2str(MSE1)])
%% 绘制图形
%% BP神经网络预测得到的误差分布(1)第一个数据
figure
subplot(3,1,1);
plot(output_test, 'r-*')%测试的输出真实值
hold on
plot(BPoutput, 'b-o'); %预测的输出真实值
legend('期望输出','预测输出')
title('第1个输出预测效果')
ylabel('函数输出')
xlabel('样本1')
subplot(3,1,2);
stem(BPoutput- output_test)%预测结果输出值减去实际输出真实值 %Stem绘制离散序列数据
title('第1个输出预测误差')
ylabel('误差')
xlabel('样本1')
%神经网络预测误差百分比
subplot(3,1,3);
plot(abs(BPoutput - output_test)./output_test,'-*');
title('神经网络预测误差百分比')
ylabel('误差百分比')
xlabel('样本1')
%%
rmse=(sqrt(mean((BPoutput-output_test).^2)));
disp(rmse);
%% 网络存储
save data1 net1 inputps1 outputps1
4、参考论文
略
以上是关于matlab 基于BP神经网络的预测算法的主要内容,如果未能解决你的问题,请参考以下文章
优化预测基于matlab遗传算法优化BP神经网络预测含Matlab源码 1376期
BP回归预测基于matlab思维进化算法优化BP神经网络回归预测含Matlab源码 2031期
BP回归预测基于matlab思维进化算法优化BP神经网络回归预测含Matlab源码 2031期
数据预测基于matlab鸟群算法优化BP神经网络数据预测含Matlab源码 1772期