老饼讲解:一步一步上手学习
前面我们已经基本认识RBF神经网络是什么了,这节开始,我们来看看真实使用RBF神经网络进行建模时,要怎么做,这一节我们先来看看RBF神经网络建模时的基本步骤和流程,好有个初步的印象。
本节讲述RBF神经网络建模的核心关注问题与建模的流程。
在说RBF神经网络建模之前,我们先来认识一下建模时的核心问题。
事实上,由于RBF神经网络可以使用插值方法求解(即newrbe),它在训练误差上可以为0,而使用OLS进行求解(即newrb),训练误差也不是问题,只要隐节点足够,训练误差就会足够小,因此,RBF建模时完全不用操心训练误差,而是主要解决以下两个问题:
1. 模型的泛化能力
模型的泛化能力,也可以简单地认为,就是模型在测试数据上的精度。
2. 模型复杂度
即RBF神经网络的隐节点个数,过多的隐节点会令模型较庞大。
所以,在整个RBF神经网络的建模中,我们所做的措施、以及需要重点关注的事情,都是以上两个问题。
RBF神经网络的建模流程,主要有以下步骤:

一、数据处理
1. 数据归一化:将数据进行归一化,统一量纲。
2. 数据分割:分割为训练集与测试集。
二、模型构建
1. 模型参数设置:主要设置goal和spread参数。
2. 模型训练:用训练数据对模型进行训练。
三、模型评估
1. 评估训练误差:打印模型的训练误差。
2. 评估测试误差:打印模型的测试误差。
本节详细讲述RBF神经网络建模过程的每一个步骤。
(一) 输入数据归一化
对输入数据归一化主要是考虑到径向基是基于距离的模型,因此,在多输入时,进行归一化可以达到量纲统一。如果不归一化,整体距离很容易被某个维度"吃"掉,另一方面,将数据归一化后,在调参等方面更加统一与方便一些。
归一化并不是绝对需要的,需根据数据背景意义来决定是否要归一化。
(二) 数据划分
将数据划分为两部分:
1. 训练数据:用来构建RBF模型。
2. 测试数据:用来最终检验模型的效果。
数据的划分,可以随机划分,也可以根据数据实际意义进行划分,按照一般的建模习惯,一般会把80%的数据作为训练数据,而剩余的20%作为测试数据。
(一) RBF神经网络-模型构建
构建RBF神经网络只需设定相关参数,再进行训练就可以了,如下:
1. 设定RBF神经网络模型参数
模型参数主要是设置spread和goal。
可以使用matlab的默认值作为初步设定,即:spread=1、goal=0
2. 用训练数据调用newrb构建RBF
直接使用newrb就可以构建RBF神经网络,如下:
[net,tr]=newrb(x,y,goal,spread);
(二) RBF神经网络-模型评估
这里建议使用绝对误差MAE来评估模型,如下:
1. 训练误差:评估训练样本的MAE误差。
2. 预测误差:评估预测样本的MAE误差。
建模中需要反复调参,以加强模型的泛化能力,即让预测误差满足要求。
好了,以上就是RBF神经网络的建模步骤了~这里我们大概讲述了一下流程,以及每一步的目的,下节再来看具体的代码实现,逐步掌握怎么利用RBF神经网络来建模。
评论