我在不使用内置函数的情况下预测KNN分类器时遇到了麻烦。我在这里卡住了,不知道下一步该怎么做。这是我的代码:
% 计算欧几里得距离 dist = pdist2(test, train, 'euclidean'); for k = [1 3 5 7] [~, nearest] = sort(dist, 2); nearst = nearest(:, 1:k);end % for 循环
其中 test
是一个 297×64 的矩阵,train
是一个 1500×64 的矩阵。dist
矩阵是 297×1500。任何帮助都将不胜感激!
回答:
所以你已经成功地按照距离对索引进行了排序,存储在 nearst
中,你所需要做的就是引用原始数据的标签。你应该有一个名为 labels
的变量,保存每个点的真实标签。使用 nearst
中存储的索引来读取这些标签,并简单地报告最常见的值。