導航:首頁 > 編程大全 > 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代碼實現相關的資料

熱點內容
txt文件轉成json文件 瀏覽:941
iosapp怎麼讓未讀消息顯示 瀏覽:805
百度智能雲上傳文件軟體 瀏覽:756
怎麼把電腦盤設密碼 瀏覽:768
蘋果直徑怎麼量 瀏覽:542
alienware13升級 瀏覽:14
循環載入js 瀏覽:759
qq電話記錄在哪個文件夾 瀏覽:325
jsf如何返回json數據 瀏覽:136
javascript百度地圖 瀏覽:380
蘋果4怎麼弄3g網路 瀏覽:775
如何刪除公司文件 瀏覽:659
u盤歌曲怎麼從文件夾剪切出來 瀏覽:766
錯誤數據怎麼解決 瀏覽:835
株洲編程學校哪個好 瀏覽:266
linuxlast時間 瀏覽:305
齊魯高速app如何設置 瀏覽:542
文件的存儲路徑分為 瀏覽:889
win10滑鼠滑輪失靈 瀏覽:201
word文檔內超鏈接 瀏覽:264

友情鏈接