myokvip
2010-08-29, 17:52
各位朋友,我用想用BPNN进行模拟,但是网络不收敛,达不到预订的goal,同时,训练结果进行模拟效果很差
正确率只有50%多点。算法中,输入有8个类型的数据,输出一个,代码和数据如下,请指教
close all;
clc;
datalen=5000;
% 初始化训练数据
[pn,pt_ps]=mapminmax(input(1:datalen,1:8)');
[tn,td_ps]=mapminmax(input(1:datalen,9)');
pt=round(pn*10000)/10000;
td=round(tn*10000)/10000;
%产生BP神经网络
net=newff(pt,td,[17,1],{'tansig','purelin'},'trainlm');
%初始化网络
net=init(net);
%设置网络运行参数
net.trainParam.epochs=10000;
net.trainParam.goal=0.001;
net.trainParam.time=inf;
%网络训练
net=train(net,pt,td);
%网络模拟
A=sim(net,pt);
E=A-td;
M=sse(E);
N=mse(E)
data2= mapminmax('apply',input(101:200,1:8)',pt_ps);
p2n=data2;
a2n=sim(net,p2n);
a2=mapminmax('reverse',a2n,td_ps);
c=round(a2)
b=input(101:200,9)'
L=length(find((b-c)~=0))
正确率只有50%多点。算法中,输入有8个类型的数据,输出一个,代码和数据如下,请指教
close all;
clc;
datalen=5000;
% 初始化训练数据
[pn,pt_ps]=mapminmax(input(1:datalen,1:8)');
[tn,td_ps]=mapminmax(input(1:datalen,9)');
pt=round(pn*10000)/10000;
td=round(tn*10000)/10000;
%产生BP神经网络
net=newff(pt,td,[17,1],{'tansig','purelin'},'trainlm');
%初始化网络
net=init(net);
%设置网络运行参数
net.trainParam.epochs=10000;
net.trainParam.goal=0.001;
net.trainParam.time=inf;
%网络训练
net=train(net,pt,td);
%网络模拟
A=sim(net,pt);
E=A-td;
M=sse(E);
N=mse(E)
data2= mapminmax('apply',input(101:200,1:8)',pt_ps);
p2n=data2;
a2n=sim(net,p2n);
a2=mapminmax('reverse',a2n,td_ps);
c=round(a2)
b=input(101:200,9)'
L=length(find((b-c)~=0))