導航:首頁 > 編程大全 > bp神經網路預測的matlab實現

bp神經網路預測的matlab實現

發布時間:2025-01-24 19:24:37

⑴ bp神經網路人口預測程序(matlab實現)

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神經網路預測
% 作者:Macer程
lag=3; % 自回歸階數
iinput=x; % x為原始序列(行向量)
n=length(iinput);

%准備輸入和輸出數據
inputs=zeros(lag,n-lag);
for i=1:n-lag
inputs(:,i)=iinput(i:i+lag-1)';
end
targets=x(lag+1:end);

%創建網路
hiddenLayerSize = 10; %隱藏層神經元個數
net = fitnet(hiddenLayerSize);

% 避免過擬合,劃分訓練,測試和驗證數據的比例
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;

%訓練網路
[net,tr] = train(net,inputs,targets);
%% 根據圖表判斷擬合好壞
yn=net(inputs);
errors=targets-yn;
figure, ploterrcorr(errors) %繪制誤差的自相關情況(20lags)
figure, parcorr(errors) %繪制偏相關情況
%[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q檢驗(20lags)
figure,plotresponse(con2seq(targets),con2seq(yn)) %看預測的趨勢與原趨勢
%figure, ploterrhist(errors) %誤差直方圖
%figure, plotperform(tr) %誤差下降線


%% 下面預測往後預測幾個時間段
fn=7; %預測步數為fn。


f_in=iinput(n-lag+1:end)';
f_out=zeros(1,fn); %預測輸出
% 多步預測時,用下面的循環將網路輸出重新輸入
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')

圖1自相關


圖3預測

上面的程序是可以通用的,只要你根據自己需要是可以修改用在其他地方的,基本思想就是用前lag年的人口數來預測下一年的人口,至於lag等於幾你是可以自己改的。還有在對結果好壞的判斷中,僅僅看誤差圖是不夠的,如果是一個好的預測,那麼自相關性圖中除了0階自相關外,其他的自相關系數系數都不應該超過上下置信區間。還有其他的統計量和圖表都都寫在」%「後面了,如果需要,去掉就可用。最後的預測值為f_out,我的預測值為

138701.065269972 139467.632609654 140207.209707364 141210.109373609 141981.285378849 142461.332139592 143056.073139776


⑵ matlab怎麼利用神經網路做預測

利用matlab做神經網路預測,可按下列步驟進行:

1、提供原始數據

2、訓練數據預測數據提取及歸一化

3、BP網路訓練

4、BP網路預測

5、結果分析

⑶ 求一個bp神經網路預測模型的MATLAB程序

BP神經網路預測的步驟:

1、輸入和輸出數據。

2、創建網路。fitnet()

3、劃分訓練,測試和驗證數據的比例。net.divideParam.trainRatio;net.divideParam.valRatio;net.divideParam.testRatio

4、訓練網路。train()

5、根據圖表判斷擬合好壞。ploterrcorr();parcorr();plotresponse()

6、預測往後數據。net()

7、畫出預測圖。plot()

執行下列命令

BP_prediction

得到結果:

[ 2016, 14749.003045557066798210144042969]

[ 2017, 15092.847215188667178153991699219]

[ 2018, 15382.150005970150232315063476562]

[ 2019, 15398.85769711434841156005859375]

[ 2020, 15491.935150090605020523071289062]

閱讀全文

與bp神經網路預測的matlab實現相關的資料

熱點內容
蘋果升級系統白屏 瀏覽:136
三菱gxplc編程軟體如何使用 瀏覽:710
海康威視手機app怎麼看不了 瀏覽:482
wordpress下載中心插件 瀏覽:402
微信限制字數是多少 瀏覽:20
策劃輸出主要從哪些文件來 瀏覽:174
網路營銷找什麼工作 瀏覽:372
tcl匹配文件名的正則表達式 瀏覽:461
音頻文件數據量為何8 瀏覽:534
有哪些分享學習的網站 瀏覽:174
小程序文件發到微信電腦如何打開 瀏覽:265
四星五星做號工具 瀏覽:920
qq郵箱怎麼發送視頻文件 瀏覽:453
能免費開店的網站有哪些 瀏覽:548
中國網路營銷發展史 瀏覽:828
違法紅頭文件有哪些 瀏覽:43
瀏覽器單文件版 瀏覽:982
騰訊視頻離線緩存文件 瀏覽:944
如何讓教育過好網路關 瀏覽:906
新版本vk10001p 瀏覽:13

友情鏈接