bp神经网络MATLAB程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%清空环境变量

clc

clear

%读取数据

a=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\one-input.csv'); b=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\output.csv');

c=xlsread('F:\4.数据挖掘讲义—马景义\数据和程序\matlab\c.csv');

save data1.mat b

save data2.mat a

load data1

load data2

%节点个数

inputnum=42;

hiddennum=8;

outputnum=1;

%训练数据和预测数据

input_train=a(:,1:90);

input_test=a(:,91:137);

output_train=b(:,1:90);

output_test=b(:,91:137);

%将训练样本输入输出数据归一化

[inputn,inputps]=mapminmax(input_train);

[outputn,outputps]=mapminmax(output_train);

%构建BP神经网络

net=newff(inputn,outputn,[20,12],{'tansig','purelin'},'traingdx');

net.trainParam.epochs=1000;

net.trainParam.lr=0.01;

net.trainParam.goal=0.00000001;

%BP神经网络训练

net=train(net,inputn,outputn);

%测试样本归一化

inputn_test=mapminmax('apply',input_test,inputps);

%BP神经网络预测

an=sim(net,inputn_test);

%%网络得到数据反归一化

BPoutput=mapminmax('reverse',an,outputps);

d=BPoutput>c

figure(1)

%plot(d,':og');

scatter(1:(137-90),d,'rx');

hold on;

%plot(output_test,'-*');

scatter(1:(137-90),output_test,'o');

legend('预测输出','期望输出','fontsize',12);

title('BP网络预测输出','fontsize',12);

xlabel('样本','fontsize',12);

xlabel('优化前输出的误差','fontsize',12); figure(2)

error=d-output_test;

plot(1:(137-90),error);

xlabel('样本','fontsize',12);

ylabel('优化前输出的误差','fontsize',12); %save net net inputs outputs

相关文档
最新文档