資源簡介
BP神經網絡適用于大樣本數據的預測,至于小樣本還有灰色理論、最小二乘支持向量機、廣義回歸神經網絡、灰色神經網絡,不同的數據需要根據其自身特點選擇不同的預測方法。在很多次實驗之后,我比較鐘情于BP神經網絡和組合預測,組合預測是大趨勢,客觀上有道理,主觀上有更大的操作可能性。
下面給出廣義回歸神經網絡(包含交叉驗證過程的GRNN)用于小樣本量預測的代碼,包括BP神經網絡預測結果的對比。

代碼片段和文件信息
%?
%?該案例作者申明:《Matlab神經網絡30個案例分析》以書籍實際發行內容為準
%%?以下程序為案例擴展里的GRNN和BP比較?需要load?chapter8.1的相關數據
clear?all
load?result
n=13
p=desired_input
t=desired_output
net_bp=newff(minmax(p)[n3]{‘tansig‘‘purelin‘}‘trainlm‘);
%?訓練網絡
net.trainParam.show=50;
net.trainParam.epochs=2000;
net.trainParam.goal=1e-3;
%調用TRAINLM算法訓練BP網絡
net_bp=train(net_bppt);
bp_prediction_result=sim(net_bpp_test);
bp_prediction_result=postmnmx(bp_prediction_resultmintmaxt);
bp_error=t_test-bp_prediction_result‘;
disp([‘BP神經網絡三項流量預測的誤差為‘num2str(abs(bp_error))])
%{
net=newff(desired_inputdesired_outputdesired_number{‘tansig‘‘tansig‘}‘trainlm‘);
net.trainParam.epochs=10000;
net.trainParam.lr=0.001;
net.trainParam.goal=0.0001;
%%?BP網絡訓練
net=train(netdesired_inputdesired_output);
%%?BP網絡測試
input_test=input_test‘;
input_test=tramnmx(input_testminpmaxp);
BP_test_result=sim(netinput_test);
BP_test_result=postmnmx(BP_test_resultmintmaxt);
BP_error=output_test-BP_test_result‘;
disp([‘BP神經網絡三項流量預測的誤差為‘num2str(abs(BP_error))])
save?best?desired_input?desired_output?input_test?output_test?BP_error?mint?maxt
%%?BP網絡預測
%預測數據歸一化
%input_predict=input_predict‘;
%input_predict=tramnmx(input_predictminpmaxp);
%網絡預測輸出
%BP_predict_resultpredict=sim(netinput_predict);
%網絡輸出反歸一化
%BP_predict_resultpredict=postmnmx(BP_predict_resultpredictmintmaxt);
%}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1521??2019-10-12?21:06??GRNN的數據預測\bp.m
?????文件????????815??2010-01-30?20:09??GRNN的數據預測\data.mat
?????文件???????2217??2019-10-12?21:37??GRNN的數據預測\grnn.m
?????文件???????1260??2019-10-13?19:24??GRNN的數據預測\result.mat
?????文件???????6417??2019-10-13?16:04??GRNN的數據預測\運行提示.txt
?????目錄??????????0??2019-10-30?10:19??GRNN的數據預測
-----------?---------??----------?-----??----
????????????????12230????????????????????6
評論
共有 條評論