MATLAB(ANFIS)成绩综合评估模糊系统构建

it2024-01-03  85

方法一,直接使用脚本代码

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 导入数据进行训练

最新回复(0)