⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nearest_neighbor.m

📁 数据挖掘中经典算法的matlab代码
💻 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 sufrace

L			= 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.')
end

y_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 + -