資源簡介
matlab代碼實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)。實(shí)現(xiàn)對所需信息進(jìn)行預(yù)測,擬合等目的。
代碼片段和文件信息
clear;?%清空環(huán)境變量
clc;
%?訓(xùn)練集/測試集的產(chǎn)生,這里采用xlsread(‘‘);
paifangshuju=xlsread(‘E:\paifangshuju2.xlsx‘);
NIR=paifangshuju(:1:2);
octane=paifangshuju(:3:6);
%?%?隨機(jī)產(chǎn)生訓(xùn)練集和測試集
temp?=?randperm(size(NIR1));
%訓(xùn)練集--80個樣本
P_train?=?NIR(temp(1:80):)‘;
T_train?=?octane(temp(1:80):)‘;
%測試集--10個樣本
P_test?=?NIR(temp(81:end):)‘;
T_test?=?octane(temp(81:end):)‘;
N?=?size(P_test2);
%驗(yàn)證、訓(xùn)練數(shù)據(jù)歸一化
[p_trainps_input]=mapminmax(P_train01);
p_test=mapminmax(‘a(chǎn)pply‘P_testps_input);
[t_trainps_output]=mapminmax(T_train01);
%?%?BP神經(jīng)網(wǎng)絡(luò)的創(chuàng)建、訓(xùn)練及仿真測試
%創(chuàng)建網(wǎng)絡(luò)
net?=?newff(p_traint_train[48]);%2為隱含層的層數(shù)
%設(shè)置訓(xùn)練參數(shù)
net.trainParam.epochs=1000;
net.trainParam.goal=1e-3;
net.trainParam.lr=0.01;
%訓(xùn)練網(wǎng)絡(luò)
net=train(netp_traint_train);
%仿真測試
t_sim=sim(netp_test);
%數(shù)據(jù)反歸一化
T_sim=mapminmax(‘reverse‘t_simps_output);
%%性能評價
%相對誤差
error=abs(T_sim-T_test)./T_test;
%均方根誤差
for?i=1:4j=1:N;
????A(ij)=T_test(ij)-T_sim(ij);
end
MSE_HC=sqrt(sum(A(1:).^2));
MSE_CO=sqrt(sum(A(
評論
共有 條評論