knnclassify和knnsearch给出不同的结果

时间:2015-01-13 12:39:07

标签: matlab classification nearest-neighbor knn

我使用 knnclassify 在Matlab中进行kNN分类,并且运行良好。现在,我需要知道到邻居的距离,似乎 knnsearch funcion给了我这个。

问题是结果不一样。我很确定 knnsearch 工作不正常,但我不知道原因。

这是我的代码:

k=1;
distance='euclidean';
rule='nearest';

%kNN classification
result = knnclassify(sample_matrix, training_matrix, label_matrix,k,distance,rule);

%showing which element is recognized and the distance to it
[recognition,distances] = knnsearch(training_matrix, sample_matrix,'k',k);

所以,结果和识别应该是一样的,然后我就能看到距离。

结果是:

  

4 1 1 2 4 1 1 4 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 2 3 3 3 3 3 3 4 4 4 4 4   4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7   8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9 9

这是承认:

  

3 1 1 2 3 1 1 3 1 1 2 2 1 2 2 2 1 2 2 2 2 2 2 2 2 2 2 3 2 2 4 3 3 4 3   4 4 3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 6 6 6 5 5 6 6 6   7 6 6 6 6 7 6 6 6 7 8 7 7 7 7 7 7 7 7 7

(他们应该是两个向量)。 期望的结果是

  

1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4   4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8   8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9

所以,结果几乎很好(足够好)并且认可是一场灾难。 正如你所看到的,开始比结束要好得多。 有谁可以帮帮我? 非常感谢你。

0 个答案:

没有答案