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

熱點內容
以前的相親網站怎麼沒有了 瀏覽:15
蘋果6耳機聽歌有滋滋聲 瀏覽:768
怎麼徹底刪除linux文件 瀏覽:379
編程中字體的顏色是什麼意思 瀏覽:534
網站關鍵詞多少個字元 瀏覽:917
匯川am系列用什麼編程 瀏覽:41
筆記本win10我的電腦在哪裡打開攝像頭 瀏覽:827
醫院單位基本工資去哪個app查詢 瀏覽:18
css源碼應該用什麼文件 瀏覽:915
編程ts是什麼意思呢 瀏覽:509
c盤cad佔用空間的文件 瀏覽:89
不銹鋼大小頭模具如何編程 瀏覽:972
什麼格式的配置文件比較主流 瀏覽:984
增加目錄word 瀏覽:5
提取不相鄰兩列數據如何做圖表 瀏覽:45
r9s支持的網路制式 瀏覽:633
什麼是提交事務的編程 瀏覽:237
win10打字卡住 瀏覽:774
linux普通用戶關機 瀏覽:114
文件夾的相片如何列印出來 瀏覽:84

友情鏈接