K-最近邻算法,不使用MATLAB中的knnsearch(),绝对距离

时间:2015-02-16 15:59:36

标签: matlab machine-learning knn

我的任务是编写K-Nearest Neighbor算法而不使用内置的MATLAB命令knnsearch()。

我正在关注此处提供的代码:     http://www.cs.tut.fi/sgn/arg/SGN-2806/exer1/knn.m

为了计算距离,我使用绝对差异。

我的训练数据如下所示:

training data = [0 1 3 4 5 0 3 4 9 1 35 13 29 1 3]

计算knn的样本数据,这个:

inputdata = [1, 4, 5, 5, 2, 1 3]

这是我用来计算绝对差异的原因:

distancesbetweendata = abs(bsxfun(@minus, inputdata(1:N)), trainingdata(N-1));

返回0 /空

这是对的吗?

在我关注的代码中,数据准备如下:

N = size(sampleData,1);  % N is length of data
M = size(sampleData,2);  % M is index for class

然而,它使用多行数据,而我只使用一行。

我应该如何在这个实例中准备我的数据?

编辑:

如何计算输出:

[sorted, idx] = sort(distance);

classes = sampleData(idx(1:min(N, k)));

resultClass = mode(classes); %OUTPUT

0 个答案:

没有答案