matlab bp神經網路的簡單小例子

2021-07-23 05:12:25 字數 1391 閱讀 1859

因為要寫**做實驗,所以自己研究了一些關於神經網路的演算法,用matlab做的一些小測試,使用的是《matlab神經網路43個案例分析》這本書,感覺還不錯,分享一下。

使用每行的前4個資料**第5個資料的值。

資源位址    

%讀取資料,讀取之前必須先加入到matlab中去
xlsfile='ceshi.xlsx'
%組織訓練資料的輸入和輸出,輸入時2880個4維資料,輸出是2880個1維資料

[input1]=xlsread(xlsfile,1,'b1:e2880');

[output1]=xlsread(xlsfile,1,'a1:a2880');

%測試資料的輸入時95個4維輸入和95個1維輸出

[input2]=xlsread(xlsfile,1,'b2881:e2976');

[output2]=xlsread(xlsfile,1,'a2881:a2976');

%訓練資料的歸一化,輸入的資料樣本是一行是乙個,歸一化的時候是所有樣本中同維度點的資料歸一化,matlab歸一化行,因此要轉置一下inputs是歸一化後的記錄引數,為

%了保持一致性,我們後面還要對測試樣本進行同條件的歸一化以及反歸一化的復原操作

[inputn,inputps]=mapminmax(input1');

[outputn,outputps]=mapminmax(output1');

%建立bp神經網路,把優化的引數都給列出來了

net=newff(inputn,outputn,8);%8個隱含層

net.trainparam.epochs=1000;%迭代次數為100次

net.trainparam.lr=0.1;%學習速率為0.1

net.trainparam.goal=0.001%目標誤差

%訓練神經網路

net=train(net,inputn,outputn);

%測試輸入資料歸一化

%**an=sim(net,inputn_test);

%對**輸出值進行反歸一化操作

bpoutput=mapminmax('reverse',an,outputps);

%畫出實際輸出和**輸出的影象,畫在同乙個框中

figure(1)

plot(bpoutput,':og')

hold on 

plot(output2,'-*');

%算一下誤差率

error=bpoutput-output2'

mean(abs((error)./bpoutput))

matlab BP神經網路 newff

net newff p,t,s 這兩種定義都可以 net newff p,t,s,tf,btf,blf,pf,ipf,opf,ddf p 輸入引數矩陣。rxq1 其中q1代表r元的輸入向量。其資料意義是矩陣p有q1列,每一列都是乙個樣本,而每個樣本有r個屬性 特徵 一般矩陣p需要歸一化,即p的每一行...

Matlab BP神經網路,用於分類

bp神經網路,即向後傳播演算法。clear p1,p2是訓練資料 p1 1.24,1.27 1.36,1.74 1.38,1.64 1.38,1.82 1.38,1.90 1.40,1.70 1.48,1.82 1.54,1.82 1.56,2.08 p2 1.14,1.82 1.18,1.96 1...

MATLAB BP 神經網路中的MIV演算法學習

clear close all clc 輸入輸出資料 data load data.txt p data 1 end,1 end 1 輸入資料 t data 1 end,end 輸出資料 pn,minp,maxp,tn,mint,maxt premnmx p,t 變數篩選miv演算法初步實現 p p...