1. 程式人生 > >MATLAB使用BP神經網路進行資料預測

MATLAB使用BP神經網路進行資料預測

P=[93	260.5	-52	-0.07	1.216	3621	139	29	6.142
100	252.45	-48	-0.04	0.925	3600	142	27.5	5.068
121	241.52	-45	-0.02	1.113	3563	133	31.7	5.196
142	238.13	-42	-0.07	0.823	3512	127	34.1	6.362
139	196.32	-39	-0.07	0.635	3508	125	31.54	6.472
149	172.41	-37	-0.21	0.542	3502	123	30.17	6.578
168	161.9	-33	-0.8	0.3	3500	116	29.53	6.351
179	157.53	-31	-1.9	0.5	3500	132	33.42	7.307
173	154.32	-29	-2.4	0.436	2976	118	29.14	7.659
176	148.29	-34	-2.1	0.516	2984	114	28.52	7.435
183	146.74	-26	-2.52	0.5	2966	102	27.75	8
186	142.98	-24	-2.64	0.3	2966	97	26.36	8.934
192	139.24	-23	-2.68	0.3	2595	91	22.19	9.215
196	132.52	-19	-2.71	0.623	2576	93	19.52	9.612
]
P=P'    % 保證輸入的P是每行對應一個指標
T=[2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
]
T=T'    % 神經網路輸出結果為一行
[p1,minp,maxp,t1,mint,maxt]=premnmx(P,T);
net=newff(minmax(P),[8,6,1],{'tansig','tansig','purelin'},'trainlm');
net.trainParam.epochs = 5000;
net.trainParam.goal=0.0000001;
[net,tr]=train(net,p1,t1);
a=[80; 270.4;-64;-0.05;1.374;3711;141;26;6.153];    %輸入資料

a=premnmx(a);    %歸一化
b=sim(net,a);
c=postmnmx(b,mint,maxt);    % 反歸一化
c

c =

   2.0072e+03
具體見這篇部落格。