【发布时间】:2016-04-30 17:14:14
【问题描述】:
我正在做一个项目,我想在 Fisher 的虹膜数据集上使用 k-NN 分类。我在下面展示我的 k-NN 分类 MATLAB 代码:
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
我怀疑所有 k = 1,3,5 的 cp.ErrorRate 是否相同。
这是接受状态还是 k = 1,3,5 应该不同? 如果是这样,我必须对我的代码进行哪些更改才能完成我的任务?
【问题讨论】:
标签: matlab classification knn