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

bp神經網路預測matlab代碼實現

發布時間:2024-11-01 12:04:48

❶ 求一個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]

❷ matlab bp神經網路

輸入量必須有才能預測,只是輸入量要比原來的往後延長一點,如原來的t=1:5,可改為t1=3:7,這樣,再模擬,就向後預測了2個點。3入1出的類似,要有3個輸入。

❸ matlab BP神經網路人口預測,用32個數據每4個為一組,前三個為輸入,進行滾動預測

你最好用優化演算法優化一下,結果肯定會更好,我做過一些這方面的研究,我給你個簡答的遺傳演算法優化BP網路的列子,你可以套用一下,就出來了,同樣是預測:
神經網路遺傳演算法函數極值尋優

%% 清空環境變數
clc
clear

tic
%% 訓練數據預測數據提取及歸一化
%下載輸入輸出數據
load data1 input output

%從1到2000間隨機排序
k=rand(1,4000);
[m,n]=sort(k);

%找出訓練數據和預測數據
input_train=input(n(1:3900),:)';
output_train=output(n(1:3900),:)';
input_test=input(n(3901:4000),:)';
output_test=output(n(3901:4000),:)';

%選連樣本輸入輸出數據歸一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);

%% BP網路訓練
% %初始化網路結構
net=newff(inputn,outputn,5);

net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.0000004;

%網路訓練
net=train(net,inputn,outputn);

%% BP網路預測
%預測數據歸一化
inputn_test=mapminmax('apply',input_test,inputps);

%網路預測輸出
an=sim(net,inputn_test);

%網路輸出反歸一化
BPoutput=mapminmax('reverse',an,outputps);

%% 結果分析

figure(1)
plot(BPoutput,':og')
hold on
plot(output_test,'-*');
legend('預測輸出','期望輸出','fontsize',12)
title('BP網路預測輸出','fontsize',12)
xlabel('樣本','fontsize',12)
ylabel('輸出','fontsize',12)

%預測誤差
error=BPoutput-output_test;

figure(2)
plot(error,'-*')
title('神經網路預測誤差')

figure(3)
plot((output_test-BPoutput)./BPoutput,'-*');
title('神經網路預測誤差百分比')

errorsum=sum(abs(error))

❹ BP神經網路matlab源程序代碼講解

newff 創建前向BP網路格式:
net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

其中:PR —— R維輸入元素的R×2階最大最小值矩陣; Si —— 第i層神經元的個數,共N1層; TFi——第i層的轉移函數,默認『tansig』; BTF—— BP網路的訓練函數,默認『trainlm』; BLF—— BP權值/偏差學習函數,默認』learngdm』 PF ——性能函數,默認『mse』;(誤差)

e.g.
P = [0 1 2 3 4 5 6 7 8 9 10];T = [0 1 2 3 4 3 2 1 2 3 4];
net = newff([0 10],[5 1],{'tansig' 'purelin'});net.trainparam.show=50; %每次循環50次net.trainParam.epochs = 500; %最大循環500次
net.trainparam.goal=0.01; %期望目標誤差最小值
net = train(net,P,T); %對網路進行反復訓練
Y = sim(net,P)Figure % 打開另外一個圖形窗口
plot(P,T,P,Y,'o')

閱讀全文

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

熱點內容
數控715螺紋編程怎麼寫 瀏覽:261
extjs獲取grid選中行 瀏覽:873
數據線充電強制鎖屏是什麼原因 瀏覽:923
保證能貸款的app 瀏覽:105
adb文件夾大小 瀏覽:78
資料庫browser 瀏覽:458
愛麗絲夢遊仙境x級版本 瀏覽:636
windows登陸linux 瀏覽:851
如何用excel摳文件印章 瀏覽:24
蘋果4s的div設置 瀏覽:638
網路管理員考試教材 瀏覽:201
c配置文件在c盤哪裡 瀏覽:694
可配置文件翻譯 瀏覽:879
如何把紙文件掃描成pdf 瀏覽:514
plc博途編程中除法取整怎麼取 瀏覽:717
950客服代碼 瀏覽:463
ghost支持linux嗎 瀏覽:927
文件生命周期理論有哪些內容 瀏覽:278
百度雲盤批量轉存工具 瀏覽:949
qq上說購買q幣真的假的 瀏覽:589

友情鏈接