📄 nearest_neighbor.m
字号:
function D = Nearest_Neighbor(train_features, train_targets, Knn, region)% Classify using the Nearest neighbor algorithm% Inputs:% features - Train features% targets - Train targets% Knn - Number of nearest neighbors % region - Decision region vector: [-x x -y y number_of_points]%% Outputs% D - Decision sufraceL = length(train_targets);N = region(5);x = linspace (region(1),region(2),N);y = linspace (region(3),region(4),N);D = zeros(N);if (L < Knn), error('You specified more neighbors than there are points.')endy_dist = (ones(N,1) * train_features(2,:) - y'*ones(1,L)).^2;for i = 1:N, if (i/50 == floor(i/50)), disp(['Finished ' num2str(i) ' lines out of ' num2str(N) ' lines.']) end x_dist = ones(N,1) * (train_features(1,:)-x(i)).^2; dist = abs(x_dist + y_dist); [sorted_dist, indices] = sort(dist'); k_nearest = train_targets(indices(1:Knn,:)); if (Knn > 1), D(:,i) = (sum(k_nearest) > Knn/2)'; else D(:,i) = (k_nearest > 0)'; end end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -