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代码实现的主要内容,如果未能解决你的问题,请参考以下文章

bp神经网络预测模型matlab代码

人工神经网络——径向基函数(RBF)神经网络

请问matlab中RBF神经网络newrbe函数用的啥算法

matlab BP神经网络预测代码

matlab中的BP神经网络

数据预测基于matlab粒子群算法优化RBF神经网络数据预测含Matlab源码 476期