神经网络人口预测matlab,BP神经网络预测(人口)程序(matlab)
自己測試人口預測的matlab實現(xiàn):
x=[54167
55196
56300
57482
58796
60266
61465
62828
64653
65994
67207
66207
65859
67295
69172
70499
72538
74542
76368
78534
80671
82992
85229
87177
89211
90859
92420
93717
94974
96259
97542
98705
100072
101654
103008
104357
105851
107507
109300
111026
112704
114333
115823
117171
118517
119850
121121
122389
123626
124761
125786
126743
127627
128453
129227
129988
130756
131448
132129
132802
134480
135030
135770
136460
137510]';
% 該腳本用來做NAR神經(jīng)網(wǎng)絡(luò)預測
lag=3; ? ?% 自回歸階數(shù)
iinput=x; ? ?% x為原始序列(行向量)
n=length(iinput);
%準備輸入和輸出數(shù)據(jù)
inputs=zeros(lag,n-lag);
for i=1:n-lag
inputs(:,i)=iinput(i:i+lag-1)';
end
targets=x(lag+1:end);
%創(chuàng)建網(wǎng)絡(luò)
hiddenLayerSize = 10; %隱藏層神經(jīng)元個數(shù)
net = fitnet(hiddenLayerSize);
% 避免過擬合,劃分訓練,測試和驗證數(shù)據(jù)的比例
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
%訓練網(wǎng)絡(luò)
[net,tr] = train(net,inputs,targets);
%% 根據(jù)圖表判斷擬合好壞
yn=net(inputs);
errors=targets-yn;
figure, ploterrcorr(errors) ? ? ? ? ? ? ? ? ? ? ?%繪制誤差的自相關(guān)情況(20lags)
figure, parcorr(errors) ? ? ? ? ? ? ? ? ? ? ? ? ?%繪制偏相關(guān)情況
%[h,pValue,stat,cValue]= lbqtest(errors) ? ? ? ? %Ljung-Box Q檢驗(20lags)
figure,plotresponse(con2seq(targets),con2seq(yn)) ? %看預測的趨勢與原趨勢
figure, ploterrhist(errors) ? ? ? ? ? ? ? ? ? ? ?%誤差直方圖
figure, plotperform(tr) ? ? ? ? ? ? ? ? ? ? ? ? ?%誤差下降線
%% 下面預測往后預測幾個時間段
fn=7; ?%預測步數(shù)為fn
f_in=iinput(n-lag+1:end)';
f_out=zeros(1,fn); ?%預測輸出
% 多步預測時,用下面的循環(huán)將網(wǎng)絡(luò)輸出重新輸入
for i=1:fn
f_out(i)=net(f_in);
f_in=[f_in(2:end);f_out(i)];
end
% 畫出預測圖
figure,plot(1949:2013,iinput,'b',2013:2020,[iinput(end),f_out],'r')
用2014a版matlab運行后結(jié)果如下:
網(wǎng)絡(luò)結(jié)構(gòu)和各參數(shù)顯示如下:
誤差直方圖
圖1 ?自相關(guān) ? ?圖2 誤差
圖3 預測
注意在對結(jié)果好壞的判斷中,僅僅看誤差圖是不夠的,如果是一個好的預測,那么自相關(guān)性圖中除了0階自相關(guān)外,其他的自相關(guān)系數(shù)系數(shù)都不應(yīng)該超過上下置信區(qū)間。還有其他的統(tǒng)計量和圖表都都寫在”%“后面了,如果需要,去掉就可用。最后的預測值為f_out,我的預測值為
138701.065269972?? ?139467.632609654?? ?140207.209707364?? ?141210.109373609?? ?141981.285378849?? ?142461.332139592?? ?143056.073139776
總結(jié)
以上是生活随笔為你收集整理的神经网络人口预测matlab,BP神经网络预测(人口)程序(matlab)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php关联图片,PHP关联链接添加方法
- 下一篇: html文件设置断点调试,断点调试