資源簡介
通過一個實例來說明BP神經網絡做預測分析,有數據和代碼

代碼片段和文件信息
%%?I.?清空環境變量
clear?all
clc
%%?II.?訓練集/測試集產生
%%
%?1.?導入數據
load?spectra_data.mat
%%
%?2.?隨機產生訓練集和測試集
temp?=?randperm(size(NIR1));??????%打亂60個樣本排序
%?訓練集——50個樣本
P_train?=?NIR(temp(1:50):)‘;??????
T_train?=?octane(temp(1:50):)‘;
%?測試集——10個樣本
P_test?=?NIR(temp(51:end):)‘;
T_test?=?octane(temp(51:end):)‘;
N?=?size(P_test2);
%%?III.?數據歸一化
[p_train?ps_input]?=?mapminmax(P_train01);
p_test?=?mapminmax(‘apply‘P_testps_input);
[t_train?ps_output]?=?mapminmax(T_train01);??????????????
%%?IV.?BP神經網絡創建、訓練及仿真測試
%%
%?1.?創建網絡
net?=?newff(p_traint_train9);????%9是隱含層神經元的個數(大家改改測試下結果影響),連接權值是3628,講一下怎么計算得到的
%%
%?2.?設置訓練參數
net.trainParam.epochs?=?1000;???%迭代次數
net.trainParam.goal?=?1e-3;??????%mse均方根誤差小于這個值訓練結束
net.trainParam.lr?=?0.01;?????????%學習率
%%
%?3.?訓練網絡
net?=?train(netp_traint_train);
%%
%?4.?仿真測試
t_sim?=?sim(netp_test);?????????%返回10個樣本的預測值
%%
%?5.?數據反歸一化
T_sim?=?mapminmax(‘reverse‘t_simps_output);???%反歸一化結果
%%?V.?性能評價
%%
%?1.?相對誤差error
error?=?abs(T_sim?-?T_test)./T_test;
%%
%?2.?決定系數R^2
R2?=?(N?*?sum(T_sim?.*?T_test)?-?sum(T_sim)?*?sum(T_test))^2?/?((N?*?sum((T_sim).^2)?-?(sum(T_sim))^2)?*?(N?*?sum((T_test).^2)?-?(sum(T_test))^2));?
%%
%?3.?結果對比
result?=?[T_test‘?T_sim‘?error‘]?????%輸出真實值,預測值,誤差
%%?VI.?繪圖
figure
plot(1:NT_test‘b:*‘1:NT_sim‘r-o‘)
legend(‘真實值‘‘預測值‘)
xlabel(‘預測樣本‘)
ylabel(‘辛烷值‘)
string?=?{‘測試集辛烷值含量預測結果對比‘;[‘R^2=‘?num2str(R2)]};
title(string)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1706??2017-12-06?19:13??main.m
?????文件?????171497??2017-12-06?19:13??spectra_data.mat
-----------?---------??----------?-----??----
???????????????173203????????????????????2
評論
共有 條評論