KNN的MATLAB实现

来源:互联网 发布:赈灾晚会的数据统计 编辑:程序博客网 时间:2024/04/30 14:55

这次先实现了最简单的形式。每次只能求出一个测试数据的分类,并且没有用到kd树。下次再实现这两个功能。

function label = KNN( X,y,k,x_test )%k-nearest beighbor,%   X       n*d    traning data%   y       n*1    traning data label%   k       the    number of nearest neighhbor data used to vote%   x_test  1*d    test data[n,~]=size(X);dist=zeros(1,n);for i=1:n    dist(i)=distance(x_test,X(i,:),2);end[~,idx]=sort(dist);y2=y(idx(1:k),1);labels=unique(y);n_la=length(labels);maxnum=0;for i=1:n_la    num=length(find(y2==labels(i)));    if num>maxnum        maxnum=num;        label=labels(i);    endendendfunction dis=distance(x1,x2,p)dis=(sum((abs(x1-x2)).^p)).^(1/p);end
0 0
原创粉丝点击