資源簡介
本人在數學建模過程中撰寫的matlab代碼,完全可用,功能是利用BP神經網絡對時間序列進行預測,內含matlab格式的數據,便于運行檢驗。

代碼片段和文件信息
%清空環境變量
clc
clf
clear
%下載輸入輸出數據
load?swdata?input?output
%根據原始數據繪圖
figure(1);
plot(inputoutput‘LineWidth‘2);
title(‘超市上午顧客人數‘‘FontSize‘12);
xlabel(‘時間/天‘‘FontSize‘12);
ylabel(‘上午顧客人數/人‘‘FontSize‘12);
grid?on;
%隨機選擇21組訓練數據和7組預測數據
k=rand(128);
[mn]=sort(k);
input_train=input(n(1:21):)‘;
output_train=output(n(1:21):)‘;
input_test=input(n(22:28):)‘;
output_test=output(n(22:28):)‘;
%訓練數據歸一化
[inputninputps]=mapminmax(input_train);
[outputnoutputps]=mapminmax(output_train);
%BP神經網絡構建
net=newff(inputnoutputn6);
%網絡參數配置(迭代次數,學習率,目標)
net.trainParam.show?=?50;??%顯示訓練迭代過程(NaN表示不顯示,缺省25)
net.trainParam.lr?=?0.01;?????%學習率(缺省0.01)
net.trainParam.epochs?=?10000;?%最大訓練次數
net.trainParam.goal?=?0.00001;???%訓練要求精度
%BP神經網絡訓練
net=train(netinputnoutputn);
%預測數據歸一化
inputn_test=mapminmax(‘apply‘input_testinputps);
%BP神經網絡預測輸出
an=sim(netinputn_test);
%輸出結果反歸一化
BPoutput=mapminmax(‘reverse‘anoutputps);
%網絡預測結果圖形
figure(2)
plot(BPoutput‘:og‘)
hold?on
plot(output_test‘-*‘);
legend(‘預測輸出‘‘期望輸出‘)
title(‘BP神經網絡預測輸出‘‘fontsize‘12)
ylabel(‘函數輸出‘‘fontsize‘12)
xlabel(‘樣本‘‘fontsize‘12)
%網絡預測誤差圖形
%?error=abs(BPoutput-output_test);
%?figure(3)
%?plot(error‘-*‘)
%?title(‘BP網絡預測誤差‘‘fontsize‘12)
%?ylabel(‘誤差‘‘fontsize‘12)
%?xlabel(‘樣本‘‘fontsize‘12)
figure(4)
plot(abs((output_test-BPoutput)./output_test)‘-*‘);
title(‘神經網絡預測誤差百分比‘)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1647??2014-05-24?09:25??matlab文件\sw.m
?????文件?????????476??2014-05-23?23:28??matlab文件\swdata.mat
?????文件????????1647??2014-05-24?03:38??matlab文件\ws.m
?????文件?????????477??2014-05-24?02:49??matlab文件\wsdata.mat
?????文件????????1647??2014-05-25?11:20??matlab文件\xw.m
?????文件?????????476??2014-05-24?02:39??matlab文件\xwdata.mat
?????目錄???????????0??2014-05-24?10:07??matlab文件\
- 上一篇:語音信號處理matlab GUI
- 下一篇:二維圖像卷積matlab程序
評論
共有 條評論