clc clear warning('off','all') for n=1:5 switch n case 1 fisdosyaa='gaussmf1.fis';filename1 = 'PredTrainV1.xlsx';filename2 = 'PredTestV1.xlsx'; case 2 fisdosyaa='gaussmf2.fis';filename1 = 'PredTrainV2.xlsx';filename2 = 'PredTestV2.xlsx'; case 3 fisdosyaa='gaussmf3.fis';filename1 = 'PredTrainV3.xlsx';filename2 = 'PredTestV3.xlsx'; case 4 fisdosyaa='gaussmf4.fis';filename1 = 'PredTrainV4.xlsx';filename2 = 'PredTestV4.xlsx'; otherwise fisdosyaa='gaussmf5.fis';filename1 = 'PredTrainV5.xlsx';filename2 = 'PredTestV5.xlsx'; end datatrn = xlsread(filename1); % Read training values from the Excel file datatest = xlsread(filename2); % Read test values from the Excel file % assign the real data to the variable from training dataset real_column = datatrn(:, 1);datatrn(:,1)=[]; % assign the real data to the variable from testing dataset real_columntest = datatest(:, 1);datatest(:,1)=[]; % Calculate MAE for each column in training dataset mae_values = zeros(1, size(datatrn, 2)); % Excluding the last column for i = 1:(size(datatrn, 2)) mae_values(i) = calculateMAE(datatrn(:, i), real_column); end % Find the column with the best MAE and assign it as input 1 of ANFIS [best_mae, best_column] = min(mae_values); input1=datatest(:, best_column);% best predictor % Select data with the smallest MA in the other four columns in testin dataset, and assign it % as input 2 of ANFIS other_columns = setdiff(1:size(datatest, 2), best_column); % Exclude the best column selected_data = zeros(1, length(other_columns)); for j = 1:length(datatest) for i = 1:length(other_columns) selected_data(i) = abs(datatest(j, other_columns(i)) - input1(j,1)); end [minMA, minMAIndex] = min(selected_data); input2(j)=datatest(j,minMAIndex); end Finputs=[input1 input2' real_columntest]; % Combine the best two entries and get the last output. anfis=readfis(fisdosyaa);%**************************************************************/ anfis_output = evalfis(anfis,Finputs(:,1:2));%*******************************************/ % Calculate fold performances mae = mean(abs(anfis_output - real_columntest));% Calculate MAE rmse = sqrt(mean((anfis_output - real_columntest).^2));% Calculate RMSE mse = mean((anfis_output - real_columntest).^2);% Calculate MSE mape = mean(abs((real_columntest - anfis_output) ./ real_columntest));% Calculate MAPE mae1(n)=mae;rmse1(n)=rmse;mse1(n)=mse;mape1(n)=mape; fprintf('Fold %1.0f',n); fprintf(' Performance Results\n'); fprintf('MAE....: %.8f', mae);fprintf(' RMSE...: %.8f', rmse); fprintf(' MSE....: %.8f', mse);fprintf(' MAPE...: %.8f\n', mape); %/*****************************%/**************************************************************/ end