您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页神经网络的预测

神经网络的预测

来源:叨叨游戏网


p=[ 1983 1984 1985 1986 1987 1988 19 1990 1991 1992 1993 1994 1995 1996 1997 ];

t=[1204 1720 2360 2570 3050 32 3348 3586 4208 4799 5252 5590 5931 95 7474];

pi= premnmx(p)

ti= premnmx(t)

pii=[-1.0000 -0.8571 -0.7143 -0.5714 -0.4286 -0.2857 -0.1429];

tii=[-1.0000 -0.8354 -0.6313 -0.53 -0.4112 -0.2223 -0.3161];

n=newff([-1,0],[2,1],{'tansig','purelin'},'trainlm'); %建立网络,注意各层调整节点数

n.trainparam.show=25; %设定参数

n.trainparam.goal=0.001; %精度不是越小越好,双向调整

n.trainparam.epochs=1000; %实际次数很小,调整对结果有影响

n=train(n,pii,tii); %训练网络

yi=sim(n,pii); %仿真输出,与ti对比

y1=(yi-tii)./tii %计算目标相对误差

pk=[0 0.1429 0.2857];

tk=[-0.2402 -0.0418 0.1467];

yk=sim(n,pk); %仿真检验,与tk对比

y2=(yk-tk)./tk %计算检验相对误差

pc=[0.4286 0.5714 0.7143 0.8571 1.0000]; %选择预测样本

y3=sim(n,pc) %模拟预测

*参数调整次序:隐层节点数、误差精度、训练次数。

% pi =

-1.0000 -0.8571 -0.7143 -0.5714 -0.4286 -0.2857 -0.1429 0 0.1429 0.2857 0.4286 0.5714 0.7143

0.8571 1.0000

ti =

-1.0000 -0.8354 -0.6313 -0.53 -0.4112 -0.2223 -0.3161 -0.2402 -0.0418

0.1467 0.2912 0.3990 0.5078 0.6877 1.0000

sqrs=[20.55 22.44 25.37 27.13 29.45 30.1 30.96 34.06 36.42 38.09 39.13 39.99 41.93 44.59 47.30 52. 55.73 56.76 59.17 60.63];

sqjdcs=[0.6 0.75 0.85 0.9 1.05 1.35 1.45 1.6 1.7 1.85 2.15 2.2 2.25 2.35 2.5 2.6 2.7 2.85 2.95 3.1];

sqglmj=[0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36 0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];

glkyl=[5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024 19490 20433 22598 25107 33442 36836 40548 42927 43462];

glhyl=[1237 1379 1385 1399 1663 1714 1834 4322 8132 36 11099 11203 10524 11115 13320 16762 18673 20724 20803 21804];

p=[sqrs;sqjdcs;sqglmj];

t=[glkyl;glhyl];

[pn ,minp,maxp,tn,mint,maxt]=premnmx(p,t);

dx=[-1,1;-1,1;-1,1];

net=newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');

net.trainParam.show=1000;

net.trainParam.Lr=0.05;

net.trainParam.epochs=50000;

net.trainParam.goal=0.000001;

net=train(net,pn,tn);

an=sim(net,pn);

a=postmnmx(an,mint,maxt);

x=1990:2009;

newk=a(1,:);

newh=a(2,:);

figure(2);subplot(2,1,1);

plot(x,newk,'r--',x,glkyl,'b--+');

legend('网络输出客运量','实际客运量');

xlabel('年份');ylabel('客运量/万人');

title('运用工具箱客运量学习和测试对比图');

subplot(2,1,2);

plot(x,newh,'r--',x,glhyl,'b--+');

legend('网络输出货运量','实际货运量');

xlabel('年份');ylabel('货运量/万吨');

title('运用工具箱货运量学习和测试对比图')

pnew=[73.39 75.55;3.9635 4.0975;0.98801 1.0268];

pnewn=tramnmx(pnew,minp,maxp);

anewn=sim(net,pnewn);

anew=postmnmx(anewn,mint,maxt)

function main()

SamNum=20;

TestSamNum=20;

ForcastSamNum=2;

HiddenUnitNum=8;

InDim=3;

OutDim=2;

a=[20.55 22.44 25.37 29.45 30.1 30.96 34.06 36.42 38.09 39.13 39.99 41.93 44.59 47.30 52. 55.73 56.76 59.17 60.63];

b=[0.6 0.75 0.85 0.9 1.05 1.35 1.45 1.6 1.7 1.85 2.15 2.2 2.25 2.35 2.5 2.6 2.7 2.85 2.95 3.1];

c=[0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36 0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];

d=[5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024 19490 20433 22598 25107 33442 36836 40548 42927 43462];

e=[1237 1379 1385 1399 1663 1714 1834 4322 8132 36 11099 11203 10524 11115 13320 16762 18673 20724 20803 21804];

p=[a,b,c];

t=[d;e];

[SamIn,minp,maxp,tn,mint,maxt]=premnmx(p,t);

rand('state',sum(100*clock));

NoiseVar=0.01;

Noise=NoiseVar*randn(2,SamNum);

SamOut=tn+Noise;

TestSamIn=SamIn;

TestSamOut=SamOut;

MaxEpochs=5000;

r=0.035;E0=0.65*10^(-3);

W1=0.5*rand(HiddenUnitNum,InDim)-0.1;B1=0.5*rand(HiddenUnitNum,1)-0.1;

W2=0.5*rand(OutDim,HiddenUnitNum)-0.1;

B2=0.5*rand(OutDim,1)-0.1;

ErrHistory=[];

for i=1:MaxEpochs

HiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum));

NetworkOut=W2*HiddenOut+repmat(B2,1,SamNum);

Error=SamOut-NetworkOut;

SSE=sumsqr(Error)

ErrHistory=[ErrHistory SSE];

if SSEDelta2=Error;

Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut);

dW2=Delta2*HiddenOut';

dB2=Delta2*ones(SamNum,1);

W2=W2+r*dW2;B2=B2+r*sB2;W1=W1+r*dW1;B1=B1+r*sB1;end

HiddenOut=logsig(W1*SamIn+repmat(B1,1,TestSamNum));

NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum);

a=postmnmx(NetworkOut,mint,maxt);

x=1990:2009;

newk=a(1,:);

newh=a(2,:);

figure;subplot(2,1,1);

plot(x,newk,'r-o',x,glkyl,'b--+');

legend('wangluoshuchukeyunliang','shijikeyunliang');

xlabel('nianfen');ylabel('keyunrenshu');

title('1');title('2');

subplot(2,1,2);

plot(x,newh,'r-o',x,glhyl,'b--+');

legend('huoyunliang','shijihuoyunliang');

xlabel('nianfen');ylabel('huoyunliangg');

pnew=[73.39 75.55;3.9635 4.0975;0.98801 1.0268];

pnewn=tramnmx(pnew,minp,maxp);

HiddenOut=logsig(W1*pnewn+repmat(B1,1,ForcastSamNum));

anewn=W2*HiddenOut+repmat(B2,1,ForcastSamNum);

anew=postmnmx(anewn,mint,maxt)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务