%清空环境变量
clc
clf
clear
%下载输入输出数据
load wsdata input output
%根据原始数据绘图
figure(1);
plot(input,output,'LineWidth',2);
title('超市晚上顾客人数','FontSize',12);
xlabel('时间/天','FontSize',12);
ylabel('晚上顾客人数/人','FontSize',12);
grid on;
%随机选择21组训练数据和7组预测数据
k=rand(1,28);
[m,n]=sort(k);
input_train=input(n(1:21),:)';
output_train=output(n(1:21),:)';
input_test=input(n(22:28),:)';
output_test=output(n(22:28),:)';
%训练数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%BP神经网络构建
net=newff(inputn,outputn,6);
%网络参数配置(迭代次数,学习率,目标)
net.trainParam.show = 50; %显示训练迭代过程(NaN表示不显示,缺省25)
net.trainParam.lr = 0.01; %学习率(缺省0.01)
net.trainParam.epochs = 10000; %最大训练次数
net.trainParam.goal = 0.00001; %训练要求精度
%BP神经网络训练
net=train(net,inputn,outputn);
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%BP神经网络预测输出
an=sim(net,inputn_test);
%输出结果反归一化
BPoutput=mapminmax('reverse',an,outputps);
%网络预测结果图形
figure(2)
plot(BPoutput,':og')
hold on
plot(output_test,'-*');
legend('预测输出','期望输出')
title('BP神经网络预测输出','fontsize',12)
ylabel('函数输出','fontsize',12)
xlabel('样本','fontsize',12)
%网络预测误差图形
% error=abs(BPoutput-output_test);
% figure(3)
% plot(error,'-*')
% title('BP网络预测误差','fontsize',12)
% ylabel('误差','fontsize',12)
% xlabel('样本','fontsize',12)
figure(4)
plot(abs((output_test-BPoutput)./output_test),'-*');
title('神经网络预测误差百分比')
- 1
- 2
- 3
- 4
- 5
- 6
前往页