生活随笔
收集整理的這篇文章主要介紹了
BP神经网络与RBF神经网络matlab代码实现
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
BP神經(jīng)網(wǎng)絡(luò),主要有誤差正向傳播和誤差反向傳播兩個(gè)過程
RBF神經(jīng)網(wǎng)絡(luò)
例子:
首先需要對(duì)數(shù)據(jù)進(jìn)行規(guī)格化然后再進(jìn)行訓(xùn)練預(yù)測(cè)。
代碼如下:
clc
, clear
data
= [15.6 5.6 3.5 25.5 22.927.8 4.3 1.0 7.7 23.435.2 3.0 38.1 3.7 36.810.2 3.4 3.5 7.4 22.029.1 33.2 1.6 24.0 6.410.2 11.6 2.2 26.7 29.435.4 4.1 1.3 7.0 26.28.7 3.5 7.5 5.0 20.925.4 0.7 22.2 35.4 26.515.3 6.0 2.0 17.5 37.325.9 1.2 9.0 3.3 22.864.3 3.7 4.6 4.8 19.855.9 2.9 0.3 5.2 19.619.6 10.5 10.7 10.3 28.535.6 2.4 6.6 24.6 22.810.9 9.4 0.8 7.1 18.224.7 8.2 7.7 14.4 23.822.6 11.2 9.9 18.5 17.321.5 2.9 1.6 4.5 21.954.7 3.3 3.7 11.6 32.8];
data
= data'
;
train_data
= data
([1:4], [1:end
-1]);
[PN
, PS1
] = mapminmax
(train_data
);
train_label
= data
(5, [1:end
-1]);
[TN
, PS2
] = mapminmax
(train_label
); %規(guī)格化到
[-1,1] net1
= newrb
(PN
, TN
) % 訓(xùn)練RBF網(wǎng)絡(luò)
x
= data
([1:4], end
);
xn
= mapminmax
('apply', x
, PS1
);% 預(yù)測(cè)樣本點(diǎn)的規(guī)格化
pre1
= sim
(net1
, xn
);
pre1
= mapminmax
('reverse', pre1
, PS2
)
delta1
= abs(data
(5,20)-pre1
)/data
(5,20)net2
= feedforwardnet
(4); %初始化BP網(wǎng)絡(luò)
net2
= train
(net2
, PN
, TN
); % 訓(xùn)練BP
pre2
= net2
(xn
); % 預(yù)測(cè)
pre2
= mapminmax
('reverse', pre2
, PS2
) % 反規(guī)格化
結(jié)果分析:
其實(shí)我感覺效果不咋好,可能是因?yàn)閿?shù)據(jù)太少的緣故,比較神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要的數(shù)據(jù)還是很大的。
本文參考的是司守奎,孫兆亮主編的數(shù)學(xué)建模算法與應(yīng)用(第二版)
總結(jié)
以上是生活随笔為你收集整理的BP神经网络与RBF神经网络matlab代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。