MATLAB中模糊神经网络工具箱的使用
Posted 尚书左仆射
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB中模糊神经网络工具箱的使用相关的知识,希望对你有一定的参考价值。
前些天小师妹(好吧,我向政府和人民坦白,小师妹是我虚构的)向我请教MATLAB里模糊神经网络工具箱的使用方法,说是没有搜索到好的教程。正所谓‘勿以善小而不为’,‘ 我不入地狱谁爱入谁入’,‘天下兴亡匹夫有责’,正直善良的我自然要双手奉上相关操作经验,又岂敢藏私。
首先要做的自然是安装MATLAB,这个步骤我就不过多描述了,请诸君自行参悟。打开后在命令行输入:anfisedit ,然后就会出现如下的界面:
图1
首先点击第一个红框中的“Load Data”按钮来导入数据,可以从文件导入也可以从工作空间导入。这里要说明的是导入数据的格式,它必须满足如下的要求:数据前面部分是系统输入,后面部分是系统输出。假设我们的系统是3输入1输出,那么数据就应该是:[x1,x2,x3,y]。
先导入系统所需的训练数据(第一个红框选的是数据类型为:Training)。导入数据后,工具箱会在相应位置打点,情况如下:

图2
单击“Edit”菜单下的“FIS Properties”选项,出现如下的界面:

图3
这里必须要确保系统的输入输出和数据中的输入输出数据个数是相同的。如果不同可以通过该界面“Edit”菜单下的“Add Variable Input/Output”来添加输入输出,或“”来删掉多余的输入输出。如下图所示:


图5
好到此为止系统的输入输出就调整完了,接下来需要对隶属度函数的类型和数目进行设置。单击上图界面中“Edit”菜单下的“Membership Functions”选项。下图是打开的对应界面:

单击“Edit”出现如下的几个选项:

选择“Add MFs…”选项可以进行隶属度函数的添加,添加界面如下:

主要有两个选项,一个是隶属度函数的类型,另一个是隶属度函数的数量,这个就看各自的需求来决定了。
其它“Remove”开头的选项负责删除隶属度函数的工作,若需要对规则进行修改也可以选择“Rules”选项进入如下的界面。

将上述的参数都设置完成之后就可以回到图1所示的主界面了,点击“Generate FIS”来形成所需的模糊神经网络系统,之后会弹出一个界面:

确认各个参数无误后单击“OK”即可。接下来在图1的第3个红框中设置训练相关的参数:参数调整策略、目标误差、训练周期。这些没有统一的标准,只有根据需求自己尝试了。设置完成之后点击“Train Now”,界面中会出现训练相关情况:

我这里是随便加载的一个数据集,情况不是太好,但相信意思还是表述清楚了。
到此为止系统就训练完成了,接下来需要导入验证数据进行验证操作。在第一个红框中,“Type”处选择“Checking”导入相关数据。再在第四个红框中选择“Checking data”,单击“Test Now”。出现类似如下的画面:

到这里实验可以说是做完了,但是工作并没有做完,因为工具箱中的实验结果数据貌似无法导出!不过问题不大,不能直接解决,那就通过间接的方式来搞定,正所谓“山不转水转”嘛。
选择“File”菜单下“Export”选项将后缀名为.fis的训练模型保存,如下:

然后再在MATLAB命令行中输入命令:
ANFIS=readfis(‘.fis的文件路径’);%读入一个ANFIS结构
out=evalfis(Data,ANFIS);%对模型系统做出数据验证
这样就可以从“out”数据集中得知模型系统的预测结果,从而当然也可以进一步计算相关的性能指标了。
以上是关于MATLAB中模糊神经网络工具箱的使用的主要内容,如果未能解决你的问题,请参考以下文章
基于matlab实现生成模糊fis文件,包括模糊隶属函数和模糊规则等,不使用fuzzy工具箱
水质预测基于matlab模糊神经网络水质预测含Matlab源码 1923期
怎样用matlab中画出模糊控制器2个输入,3个输出的隶属函数图