MATLAB中模糊神经网络工具箱的使用

人工智能

636人已加入

描述

  前些天把玩了一下MATLAB中神经网络工具箱的使用,忽有“扪参历井仰胁息”之感。别的倒是没什么,只是神经网络的数据组织结构有些“怪异”,要是不小心就会导致工具箱报错。以下便是神经网络工具箱的正确打开姿势,谨供诸君参考:

  先贴一个使用批处理命令调用神经网络工具箱的方法:

  P = [0.1515 0.1501 0.1509 0.1504 0.1504 0.1500

  0.1515 0.1501 0.1509 0.1504 0.1504 0.1500

  0.1515 0.1501 0.1500 0.1504 0.1504 0.1500

  0.1515 0.1500 0.1509 0.1504 0.1504 0.1500

  0.1515 0.1500 0.1509 0.1504 0.1504 0.1500

  0.1515 0.1500 0.1509 0.1504 0.1504 0.1500

  0.9684 0.2792 0.877 0.7426 0.7228 0.2272

  0.9838 0.2941 0.9181 0.7977 0.7702 0.2452

  0.9922 0.3101 0.9475 0.8445 0.8227 0.2665

  0.9953 0.3058 0.9625 0.8708 0.8637 0.2624

  0.9982 0.3242 0.9797 0.9089 0.9001 0.3008

  0.9995 0.3469 0.9917 0.9314 0.9282 0.3678

  0.9998 0.3565 0.9948 0.9493 0.9525 0.4500];

  T= [0.1521

  0.6949

  0.7064

  0.7083

  0.7560

  0.7807

  0.8182

  0.8533

  0.8677

  0.8459

  0.8910

  0.9269

  0.9496];

  P=P‘;T=T’;

  ff=newff(P,T,13);

  ff.trainParam.epochs = 15000;

  ff = train(ff,P,T);

  Y1 = sim(ff,P);

  cf=newcf(P,T,13);

  cf.trainParam.epochs = 15000;

  cf = train(cf,P,T);

  Y2 = sim(cf,P);

  plot(P,T,‘o-’);

  hold on;

  plot(P,Y1,‘^m-’);

  plot(P,Y2,‘*-k’);

  title(‘newff & newcf’)

  legend(‘原始数据’,‘newff结果’,‘newcf结果’,0);

  上面这个方法要注意P和T应该要先进行转置,即神经网络训练样本是矩阵的每一个列。

  首先要做的自然是安装MATLAB,这个步骤我就不过多描述了,请诸君自行参悟。打开后在命令行输入:anfisedit ,然后就会出现如下的界面:

  matlab

  首先点击第一个红框中的“Load Data”按钮来导入数据,可以从文件导入也可以从工作空间导入。这里要说明的是导入数据的格式,它必须满足如下的要求:数据前面部分是系统输入,后面部分是系统输出。假设我们的系统是3输入1输出,那么数据就应该是:[x1,x2,x3,y]。

  先导入系统所需的训练数据(第一个红框选的是数据类型为:Training)。导入数据后,工具箱会在相应位置打点,情况如下:

  matlab

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

  matlab

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

  matlab

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

  matlab

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

  matlab

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

  matlab

  主要有两个选项,一个是隶属度函数的类型,另一个是隶属度函数的数量,这个就看各自的需求来决定了。

  其它“Remove”开头的选项负责删除隶属度函数的工作,若需要对规则进行修改也可以选择“Rules”选项进入如下的界面。

  matlab

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

  matlab

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

  matlab

  我这里是随便加载的一个数据集,情况不是太好,但相信意思还是表述清楚了。

  到此为止系统就训练完成了,接下来需要导入验证数据进行验证操作。在第一个红框中,“Type”处选择“Checking”导入相关数据。再在第四个红框中选择“Checking data”,单击“Test Now”。出现类似如下的画面:

  matlab

  到这里实验可以说是做完了,但是工作并没有做完,因为工具箱中的实验结果数据貌似无法导出!不过问题不大,不能直接解决,那就通过间接的方式来搞定,正所谓“山不转水转”嘛。

  选择“File”菜单下“Export”选项将后缀名为.fis的训练模型保存,如下:

  matlab

  然后再在MATLAB命令行中输入命令:

  ANFIS=readfis(‘.fis的文件路径’);%读入一个ANFIS结构

  out=evalfis(Data,ANFIS);%对模型系统做出数据验证

  这样就可以从“out”数据集中得知模型系统的预测结果,从而当然也可以进一步计算相关的性能指标了。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分