本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
本文详细描述RBF神经网络的建模过程,用于建模时进行借鉴
具体代码见《RBF神经网络建模代码实现》
本节讲述RBF神经网络建模的核心关注问题与建模的流程
RBF神经网络的建模的核心问题
RBF(newrb)在训练误差上肯定是没问题的,
因为只要spread足够小,
训练误差会随着隐节点的添加逐步减少,
直到添加到完所有隐节点,训练的误差就为0
因此,RBF神经网络建模的核心主要解决以下两个问题
👉1. 模型的泛化能力
👉2. 模型复杂度
在建模的过程中需要密切关切这两个问题
RBF神经网络的建模过程
RBF神经网络的建模过程主要有以下步骤:
一. 数据处理
1. 数据归一化:将数据进行归一化,统一量纲
2. 数据分割:分割为训练集与测试集
二. 模型构建
1. 模型参数设置:主要设置goal和spread参数
2. 模型训练:用训练数据对模型进行训练
三. 模型评估与模型保存
1. 评估训练误差:打印模型的训练误差
2. 评估测试误差:打印模型的测试误差
本节详细讲述RBF神经网络建模过程的每一个步骤
数据处理
输入数据归一化
对输入数据进行归一化
对输入数据归一化主要是考虑到径向基是基于距离的模型,
因此,在多输入时,进行归一化可以达到量纲统一
如果不归一化,整体距离很容易被某个维度"吃"掉
另一方面,将数据归一化后,在调参等方面更加统一与方便一些
归一化并不是绝对需要的,要根据数据的背景意义来决定是否要归一化
相关实验见《归一化对RBF神经网络的影响》
数据划分
将数据划分为两部分:
👉1.训练数据:用来构建RBF
👉2.测试数据:用来最终检验模型的效果
可以随机划分,也可以根据数据实际意义进行划分
RBF神经网络模型构建
设定RBF神经网络模型参数
模型参数主要是设置spread和goal,
可以使用matlab的默认值spread = 1 ,goal= 0 作为初步设定
也可以参考 《RBF神经网络-spread参数设置》、《RBF神经网络-goal参数设置》的内容进行初步设定
用训练数据调用newrb构建RBF
直接使用newrb就可以构建RBF神经网络,如下
[net,tr]= newrb(x, y,goal,spread);
模型评估与模型保存
模型评估
这里建议使用绝对误差MAE来评估模型,如下:
👉1. 训练误差:训练样本的MAE误差
👉2. 预测误差:预测样本的MAE误差
模型保存
保存模型有两种方式,具体如下:
👉1. 保存模型的net对象
👉2. 保存RBF网络的权重阈值
End