文档介绍:,看这k个近邻中多数属于哪一类,就把x归于哪一类。具体说就是在N个已知的样本中,找出x的k个近邻。设这N个样本中,来自类的样本有个,来自的样本有个,...,来自类的样本有个,若分别是k个近邻中属于类的样本数,则我们可以定义判别函数为:决策规则为:若,%KNN算法程序functionerror=knn(X,Y,K)%error为分类错误率data=X;[M,N]=size(X);Y0=Y;[m0,n0]=size(Y);t=[123];%3类向量ch=randperm(M);%随机排列1—Merror=0;fori=1:10Y1=Y0;b=ch(1+(i-1)*M/10:i*M/10);X1=X(b,:);X(b,:)=[];Y1(b,:)=[];c=X;[m,n]=size(X1);%m=15,n=4[m1,n]=size(c);%m1=135,n=4forii=1:mforj=1:m1ss(j,:)=sum((X1(ii,:)-c(j,:)).^2);end[z1,z2]=sort(ss);%由小到大排序hh=hist(Y1(z2(1:K)),t);[w,best]=max(hh);yy(i,ii)=t(best);%保存修改的分类结果enderror=error+sum(Y0(b,:)~=yy(i,:)');X=data;enderror=error/M;%算法主程序:%*4的iris数据,Y为150*1的分类结果,以下均使用该数据n=0;fori=1:10error=knn(X,Y,1);n=n