資源簡介
BP神經網絡,用于分類和預測。也即模式識別和曲線擬合,是用matlab編寫實現

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