另外,我觉的是不是训练样本太少,我自己又找了另一组数据,训练40年之后,再对10年进行预测,还是出现同样的现像,前40年训练极好,可是后10年预测差的太多太多,是不是我这个程序还有问题?
*********************************************88
clear
P=load('p0.txt');
T=load('t0.txt');
PP=load('p1.txt')
TT=load('t1.txt');
[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T);
net=newff(minmax(Pn),[5,1],{'tansig','purelin'},'trainlm');
net=init(net);
net.trainParam.epochs=50000; %设置网络训练次数为50000次
net.trainParam.show=50; %设置每隔50次显示当前网络训练误差
net.trainParam.goal=0.0001; %设置网络训练目标误差为0.01
[net,tr]=train(net,Pn,Tn); %利用函数train()对网络进行训练
y=sim(net,Pn); %利用函数sim()对训练年份和检验年份进行仿真
Y=postmnmx(y,min(T),max(T)) %%反归一化
AA=sim(net,PP);
T1=1:1:20;
figure;
plot(T1,T,'b',T1,Y,'r');
figure;
T2=1:1:4;
plot(T2,TT,'b',T2,AA,'r'); |