| 查看: 3722 | 回复: 0 | ||
[求助]
ANFIS代码原理求解答
|
|
%% Your Solution clc;close all;clear all; numPts=51; x=linspace(-1,1,numPts); y=0.5*sin(pi*x)+0.3*sin(3*pi*x)+0.1*sin(5*pi*x); data=[x' y']; trnData=data(1:2:numPts, ;%%训练数据chkData=data(2:2:numPts, ;%%检验数据%% 绘制训练和检验数据的分布曲线 subplot(2,2,1);plot(trnData(:,1),trnData(:,2),'o',chkData(:,1),chkData(:,2),'x'); legend('训练数据','检验数据','location','northwest');%%添加图例 title('训练数据和检验数据的分布曲线');%%添加图题 xlabel('(1)');%%添加X轴标题 %% 采用genfis1()函数直接由训练数据生成Takagi-Sugeno型模糊推理系统 numMFS=5; mfType='gbellmf'; %输入隶属度函数的个数、类型 fisMat=genfis1(trnData,numMFS,mfType); %初始模糊推理系统 subplot(2,2,2);[x1,mf]=plotmf(fisMat,'input',1); plot(x1,mf);title('系统训练前的隶属度函数');xlabel('(2)'); %% 根据给定的训练数据,利用函数anfis()训练自适应神经模糊系统 epochs=40; %训练次数为40 trnOpt=[epochs NaN NaN NaN NaN]; disOpt=[ ]; [Fis, error, stepsize, chkFis, chkEr]=anfis(trnData,fisMat,trnOpt,disOpt,chkData); %% 绘制模糊推理系统由函数anfis()训练后的输入变量的隶属度函数曲线 subplot(2,2,3); [x1,mf]=plotmf(Fis,'input',1); plot(x1,mf); title('系统训练后的隶属度函数'); xlabel('(3)'); %% 计算训练后神经模糊系统的输出与训练数据的均方根误差trnRMSE trnOut1=evalfis(trnData(:,1),Fis); %训练后神经模糊系统输出 trnOut2=evalfis(trnData(:,1),chkFis); trnRMSE1=norm(trnOut1-trnData(:,2))/sqrt(length(trnOut1)); trnRMSE2=norm(trnOut2-trnData(:,2))/sqrt(length(trnOut2)); %% 计算和绘制神经模糊推理系统的输出曲线 anfis_y1=evalfis(x,Fis); anfis_y2=evalfis(x,chkFis); subplot(2,2,4);plot(x,y,'-',x,anfis_y1,'x',x,anfis_y2,'o'); title('函数输出和ANFIS系统输出');xlabel('(4)'); legend('原函数的输出','ANFIS-1的输出','ANFIS-2的输出','location','northwest') writefis(Fis,'ex6-3'); —————————————————— 以上是matlab中ANFIS的例子代码,有几个地方没有看懂,希望大神们给予解答; 首先是 trnOut1=evalfis(trnData(:,1),Fis); %训练后神经模糊系统输出 trnOut2=evalfis(trnData(:,1),chkFis); 为什么这里trnOut1和trnOut2的输入数据都是trnData(:,1),,,,而trnOut2的输入数据不是chkData(:,1)。 第二个问题就是为啥ANFIS最后要有两个输出呢,分别代表的是什么呢。 求助大神们,很着急!!!谢谢 |
» 猜你喜欢
现代”学阀”该如何界定
已经有6人回复
实名举报:华南理工大学物理与光电学院副院长李志远婚内两次出轨女学生(博士)
已经有7人回复
各位大神,目前国内有哪些比较好用的逆合成软件?
已经有12人回复
我的奶奶
已经有3人回复
申博发邮件
已经有10人回复
国社科系统bug了,是不是要放榜了?
已经有9人回复
上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告
已经有8人回复
上海工程技术大学激光智能制造课题组招收博士研究生
已经有8人回复










;%%训练数据
回复此楼