BP神经网络与RBF神经网络matlab代码实现
Posted Icy Hunter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BP神经网络与RBF神经网络matlab代码实现相关的知识,希望对你有一定的参考价值。
BP神经网络,主要有误差正向传播和误差反向传播两个过程
RBF神经网络
例子:
首先需要对数据进行规格化然后再进行训练预测。
代码如下:
clc, clear
data = [15.6 5.6 3.5 25.5 22.9
27.8 4.3 1.0 7.7 23.4
35.2 3.0 38.1 3.7 36.8
10.2 3.4 3.5 7.4 22.0
29.1 33.2 1.6 24.0 6.4
10.2 11.6 2.2 26.7 29.4
35.4 4.1 1.3 7.0 26.2
8.7 3.5 7.5 5.0 20.9
25.4 0.7 22.2 35.4 26.5
15.3 6.0 2.0 17.5 37.3
25.9 1.2 9.0 3.3 22.8
64.3 3.7 4.6 4.8 19.8
55.9 2.9 0.3 5.2 19.6
19.6 10.5 10.7 10.3 28.5
35.6 2.4 6.6 24.6 22.8
10.9 9.4 0.8 7.1 18.2
24.7 8.2 7.7 14.4 23.8
22.6 11.2 9.9 18.5 17.3
21.5 2.9 1.6 4.5 21.9
54.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); %规格化到[-1,1]
net1 = newrb(PN, TN) % 训练RBF网络
x = data([1:4], end);
xn = mapminmax('apply', x, PS1);% 预测样本点的规格化
pre1 = sim(net1, xn);
pre1 = mapminmax('reverse', pre1, PS2)
delta1 = abs(data(5,20)-pre1)/data(5,20)
net2 = feedforwardnet(4); %初始化BP网络
net2 = train(net2, PN, TN); % 训练BP
pre2 = net2(xn); % 预测
pre2 = mapminmax('reverse', pre2, PS2) % 反规格化
结果分析:
其实我感觉效果不咋好,可能是因为数据太少的缘故,比较神经网络训练需要的数据还是很大的。
本文参考的是司守奎,孙兆亮主编的数学建模算法与应用(第二版)
以上是关于BP神经网络与RBF神经网络matlab代码实现的主要内容,如果未能解决你的问题,请参考以下文章