方法一,直接使用脚本代码
data_all = xlsread('Score.xls');
data_all = data_all(:,2:5); %获取数据集,因为第一列是序号,要去掉
data_train = data_all(1:2:end,:);%获取训练数据集
data_test = data_all(2:2:end,:);%获取测试数据集
opt = anfisOptions('InitialFIS',3,'EpochNumber',10);%设置参数,每个变量3个模糊划分,学习迭代10次
fis = anfis(data_train,opt);%训练系统参数
data_test_input = data_test(:,1:3);%测试数据集输入
anfisOutput = evalfis(fis,data_test_input);%对系统进行测试
figure
len = length(data_test);
xlabel =(1:len)';%测试样本序号作为横坐标
data_test_output = data_test(:,end);
plot(xlabel,data_test_output,'*r')
hold on
plot(xlabel,anfisOutput,'ob')
legend('Real Output','ANFIS Output')
方法二,使用anfisedit工具箱
1.首先先要将xls文件保存成为dat文件
data_all = xlsread('Score.xls');
train_data_all = data_all(1:2:end,2:5);
test_data_all = data_all(2:2:end,2:5);
%train_data
train_dat_data = fopen('TrainScoredata.dat','wt');
[m,n] = size(train_data_all);
for i=1:1:m
for j=1:1:n
if j==n
fprintf(train_dat_data,'%g\n',train_data_all(i,j));
else
fprintf(train_dat_data,'%g\t',train_data_all(i,j));
end
end
end
fclose(train_dat_data);
%test_data
test_dat_data = fopen('TestScoredata.dat','wt');
[m,n] = size(test_data_all);
for i=1:1:m
for j=1:1:n
if j==n
fprintf(test_dat_data,'%g\n',test_data_all(i,j));
else
fprintf(test_dat_data,'%g\t',test_data_all(i,j));
end
end
end
fclose(test_dat_data);
2.使用anfisedit进行训练
2.1 在命令行输入anfis
2.2 导入数据进行训练