Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在knn分类器(matlab)中使用k的多值求精度_Matlab_Image Processing_Classification_Pattern Recognition_Knn - Fatal编程技术网

如何在knn分类器(matlab)中使用k的多值求精度

如何在knn分类器(matlab)中使用k的多值求精度,matlab,image-processing,classification,pattern-recognition,knn,Matlab,Image Processing,Classification,Pattern Recognition,Knn,我使用knn分类器根据作者对图像进行分类(作者识别问题)。我在一个给定的数据库中工作,该数据库包含150个图像,其中100个图像用于培训,50个图像用于测试。 我使用此代码查找分类器的精度(k=1): 我想找出k[1..25]的不同值的不同精度,并将结果保存在matrix matlab中。我还想绘制结果图,以查看精度随k值变化的情况。 请帮助我更改此代码,并提前感谢knnclavide有一个可选的第四个参数k,即最近邻居的数量。您只需将knncclassify放入for循环中,并迭代k的所有值即

我使用knn分类器根据作者对图像进行分类(作者识别问题)。我在一个给定的数据库中工作,该数据库包含150个图像,其中100个图像用于培训,50个图像用于测试。 我使用此代码查找分类器的精度(k=1):

我想找出k[1..25]的不同值的不同精度,并将结果保存在matrix matlab中。我还想绘制结果图,以查看精度随k值变化的情况。
请帮助我更改此代码,并提前感谢

knnclavide
有一个可选的第四个参数
k
,即最近邻居的数量。您只需将
knncclassify
放入for循环中,并迭代
k
的所有值即可

load('testdirection.mat') 
load('traindirection.mat')
load('testlabels.mat') 
load('trainlabels.mat') 

for k=25:-1:1
    class = knnclassify(testdirection,traindirection, trainlabels, k);
    cp = classperf(testlabels,class);
    correctRate(k) = cp.CorrectRate;
end
您可以绘制结果,例如使用
stem
plot

stem(1:25,correctRate);

PS:注意,根据MATLAB文档,
knnclavide
将在未来版本中删除,您最好使用
fitchnn

感谢您的回复,但我得到了错误文图结果:使用阀杆(第44行)的错误X必须与Y长度相同。knn1(第11行)阀杆(1:25,k)的错误;哦,对不起,我答错了。请参见编辑的
stem
语句
stem(1:25,correctRate);