我使用 KNN 搜索对测试数据进行分类并找到分类率。
下面是matlab代码:例如:
load fisheriris
x = meas(:,3:4); % x =all training data
y = [5 1.45;6 2;2.75 .75]; % y =3 testing data for 'versicolor' species
[n,d] = knnsearch(x,y,'k',1); % find the nearest neighbors to three testing data
predicted_class=species(n);
true_class=[cellstr('versicolor'); cellstr('versicolor'); cellstr('versicolor')];
Classification_rate=100*sum(strcmp(predicted_class,true_class))/length(predicted_class);
但是,上面的 matlab 代码仅适用于 k=1,如果我尝试 k=2,则使用 strcmp 时出现错误“输入必须是相同的大小,或者任何一个都可以是标量。” 反正有修改代码吗??
然后,如果我想测试另一个物种,例如“virginica”,我需要花时间将 true_class 从“versicolor”更改为“virginica”,有什么方法可以自动更改它吗?谢谢