Я работаю над проектом, и я хочу использовать классификацию k-NN для набора данных диафрагмы для рыбаков. Я представляю мой к-NN классификационный код MATLAB ниже:MATLAB: Мой классификатор k-NN работает правильно?
rng default;
% k-NN classifier
indices = crossvalind('Kfold',species);
cp = classperf(species);
% k = 1
for i = 1:5
test = (indices == i);
train = ~test;
class = knnclassify(meas(test,:),meas(train,:),species(train,:));
classperf(cp(:),class,test);
end
fprintf('The k-NN classification error rate for k = 1 is: %f\n', cp.ErrorRate);
fprintf('Program paused. Press enter to continue.\n');
pause
% k = 3
for i = 1:5
test = (indices == i);
train = ~test;
class = knnclassify(meas(test,:),meas(train,:),species(train,:),3);
classperf(cp(:),class,test);
end
fprintf('The k-NN classification error rate for k = 3 is: %f\n', cp.ErrorRate);
fprintf('Program paused. Press enter to continue.\n');
pause
% k = 5
for i = 1:5
test = (indices == i);
train = ~test;
class = knnclassify(meas(test,:),meas(train,:),species(train,:),5);
classperf(cp(:),class,test);
end
fprintf('The k-NN classification error rate for k = 5 is: %f\n', cp.ErrorRate);
fprintf('Program paused. Press enter to continue.\n');
pause
Мои сомнения лежит на том, что cp.ErrorRate одинакова для всех к = 1,3,5.
Это состояние принятия или оно должно отличаться при k = 1,3,5? Если да, то что мне нужно изменить для моего кода, чтобы выполнить мою задачу?