資源簡(jiǎn)介
BP神經(jīng)網(wǎng)絡(luò),用于分類和預(yù)測(cè)。也即模式識(shí)別和曲線擬合,是用matlab編寫實(shí)現(xiàn)

代碼片段和文件信息
%---------------------------------------------%
% ??????%
%??????????工作室提供代做matlab仿真 ??????%
% ??????%
%??詳情請(qǐng)?jiān)L問(wèn):http://cn.mikecrm.com/DeOOXFc??%
% ??????%
%---------------------------------------------%
clc
clear
%---------------------------------------
%一、對(duì)原始輸入數(shù)據(jù)進(jìn)行歸一化
%先從excel文檔中導(dǎo)入數(shù)據(jù)到矩陣P,共7種氣體成分,40組數(shù)據(jù)
p=xlsread(‘originaldata.xlsx‘‘B2:H41‘);
t=xlsread(‘originaldata.xlsx‘‘B41:H41‘);?%輸出數(shù)據(jù),沒(méi)弄明白是什么!!!!
%歸一化數(shù)據(jù)映射到[01]之間直接用mapminmax函數(shù)更簡(jiǎn)單
%?for?i=1:40
%???P(i:)=0.1+0.8*(Orig(i:)-min(Orig(i:)))/(max(Orig(i:))-min(Orig(i:)));
%?end
[normInputps]?=?mapminmax(p?0.10.9);
[normTargetts]?=?mapminmax(t?0.10.9);
%ps處理設(shè)置,ps主要在結(jié)果反歸一化中需要調(diào)用
%----------------------------------------
%二、打亂數(shù)據(jù)順序,及分類處理(抽取訓(xùn)練數(shù)據(jù)、變量數(shù)據(jù)、測(cè)試數(shù)據(jù))
%將輸入的40組數(shù)據(jù)的20%共8組作為測(cè)試數(shù)據(jù);
%將數(shù)據(jù)的20%即8組作為變化數(shù)據(jù);
%剩下24組作為正常訓(xùn)練數(shù)據(jù);
testPercent?=?0.20;??%?測(cè)試數(shù)據(jù)所占百分比
validatePercent?=?0.20;??%?變量數(shù)據(jù)所占百分比
[trainSamplesvalidateSamplestestSamples]?=?dividevec(normInputnormTargetvalidatePercenttestPercent);
%-----------------------------------------
%三、設(shè)置網(wǎng)絡(luò)參數(shù),設(shè)置三層BP網(wǎng)絡(luò)結(jié)構(gòu)(7個(gè)輸入,7個(gè)輸出,隱層單元個(gè)數(shù)先設(shè)置成12個(gè))
%使用newff()函數(shù)建立BP網(wǎng)絡(luò)
net=newff(minmax(normInput)[127]{‘tansig‘‘logsig‘}‘traingdx‘);%創(chuàng)建三層BP網(wǎng)絡(luò)
%-----------------------------------------
%四、設(shè)置訓(xùn)練參數(shù)??
net.trainParam.epochs=10000;%設(shè)置訓(xùn)練次數(shù)
net.trainParam.goal=1e-6;%設(shè)置訓(xùn)練目標(biāo)
net.trainParam.lr=0.01;%設(shè)置學(xué)習(xí)率
%------------------------------------------
%?指定訓(xùn)練函數(shù)
net.trainfcn=‘traingdm‘;
[nettr]?=?train(nettrainSamples.PtrainSamples.T[][]validateSamplestestSamples);
%------------------------------------------
%五、訓(xùn)練完成,調(diào)用sim()函數(shù)進(jìn)行仿真
[normTrainOutputPfAfEtrainPerf]?=?sim(nettrainSamples.P[][]trainSamples.T);%正常輸入的9組p數(shù)據(jù),BP得到的結(jié)果t
[normValidateOutputPfAfEvalidatePerf]?=?sim(netvalidateSamples.P[][]validateSamples.T);%用作變量3的數(shù)據(jù)p,BP得到的結(jié)果t
[normTestOutputPfAfEtestPerf]?=?sim(nettestSamples.P[][]testSamples.T);%用作測(cè)試的3組數(shù)據(jù)p,BP得到的結(jié)果t
%-------------------------------------------
%?六、仿真后結(jié)果數(shù)據(jù)反歸一化,如果需要預(yù)測(cè),只需將預(yù)測(cè)的數(shù)據(jù)P填入
%?將獲得預(yù)測(cè)結(jié)果t
trainOutput?=?mapminmax(‘reverse‘normTrainOutputts);%正常輸入的9組p數(shù)據(jù),BP得到的歸一化后的結(jié)果t
trainInsect?=?mapminmax(‘reverse‘trainSamples.Tts);%正常輸入的9組數(shù)據(jù)t
validateOutput?=?mapminmax(‘reverse‘normValidateOutputts);%用作變量3的數(shù)據(jù)p,BP得到的歸一化的結(jié)果t
validateInsect?=?mapminmax(‘reverse‘validateSamples.Tts);%用作變量3的數(shù)據(jù)t
testOutput?=?mapminmax(‘reverse‘normTestOutputts);%用作變量3組數(shù)據(jù)p,BP得到的歸一化的結(jié)果t
testInsect?=?mapminmax(‘reverse‘testSamples.Tts);%用作變量3組數(shù)據(jù)t
%-------------------------------------------
%?數(shù)據(jù)分析和繪圖
%---------------------------------------------------??
figure
plot(1:32[trainOutput?validateOutput]‘b-‘1:32[trainInsect?validateInsect]‘g--‘33:40testOutput‘m*‘33:40testInsect‘ro‘);
title(‘o為真實(shí)值,*為預(yù)測(cè)值‘)
xlabel(‘年份‘);
ylabel(‘交通量(輛次/晝夜)‘);
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-08-12?15:47??BP神經(jīng)網(wǎng)絡(luò),用于分類和預(yù)測(cè)。也即模式識(shí)別和曲線擬合,是用matlab編寫實(shí)現(xiàn)\
?????文件????????3251??2019-08-12?15:50??BP神經(jīng)網(wǎng)絡(luò),用于分類和預(yù)測(cè)。也即模式識(shí)別和曲線擬合,是用matlab編寫實(shí)現(xiàn)\BPyuce.m
評(píng)論
共有 條評(píng)論