有关K近邻的文章有很多,也是非常简单但是又很实用的一种分类方法。
可以参考维基百科:点击打开链接
或者这篇博客:点击打开链接
代码实现:
function y = knn(X, X_train, y_train, K)
%KNN k-Nearest Neighbors Algorithm.
%
% INPUT: X: testing sample features, P-by-N_test matrix.
% X_train: training sample features, P-by-N matrix.
% y_train: training sample labels, 1-by-N row vector.
% K: the k in k-Nearest Neighbors
%
% OUTPUT: y : predicted labels, 1-by-N_test row vector.
%
% Author: Ren Kan
[~,N_test] = size(X);
predicted_label = zeros(1,N_test);
for i=1:N_test
[dists, neighbors] = top_K_neighbors(X_train,y_train,X(:,i),K);
% calculate the K nearest neighbors and the distances.
predicted_label(i)