下载此文档

模式识别中K均值与最近邻法matlab实现.docx


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
模式识别算法实现
——K近邻法&最近邻法
程序<用MATLAB做的>
1. 用Iris数据集验证的程序
(1)用Iris数据集验证的M文件:
load ;
A=randperm(50);B=randperm(50);C=randperm(50);
a1=A(1,1:25);
a2=A(1,26:50);
a=Iris(a1,1:4);%%随机取第一类数据的25组
aa=Iris(a2,1:4);
b1=50*ones(1,25)+B(1,1:25);
b2=50*ones(1,25)+B(1,26:50);
b=Iris(b1,1:4);%%随机取第二类数据的25组
bb=Iris(b2,1:4);
c1=100*ones(1,25)+C(1,1:25);
c2=100*ones(1,25)+C(1,26:50);
c=Iris(c1,1:4);%%随机取第三类数据的25组
cc=Iris(c2,1:4);
train_sample=cat(1,a,b,c);%拼接成包含75组数据的样本集
test_sample=cat(1,aa,);
k=7;%7近邻法
cha=zeros(1,75);
sum1=0;sum2=0;sum3=0;
sum=0;
[i,j]=size(train_sample);%i=75,j=4
[u,v]=size(test_sample);%u=75,v=4
for x=1:u
for y=1:i
result=sqrt((test_sample(x,1)-train_sample(y,1))^2+(test_sample(x,2)-train_sample(y,2))^2+(test_sample(x,3)-train_sample(y,3))^2+(test_sample(x,4)-train_sample(y,4))^2);
cha(1,y)=result;
end;
[z,Ind]=sort(cha);%Ind用来存储排序前在cha中的下标
m1=0;
m2=0;
m3=0;
for n=1:k
if Ind(1,n)<=25
m1=m1+1;
elseif Ind(1,n)>25&&Ind(1,n)<=50
m2=m2+1;
else
m3=m3+1;
end
end
if m1>=m2&&m1>=m3
m=1;
elseif m2>=m1&&m2>=m3
m=2;
elseif m3>=m1&&m3>=m2
m=3;
end
if (x<=25&&m==1)
sum1=sum1+1;
elseif(x>25&&x<=50&&m==2)
sum2=sum2+1;
elseif(x>50&&x<=75&&m==3)
sum3=sum3+1;
end
if (x<=25&&m==1)||(x>25&&x<=50&&m==2)||(x>50&&x<=75&&m==3)
sum=sum+1;
end
end
disp(sprintf('第一类分类正确率为%',sum1/25));
disp(sprintf('第二类分类正确率为%',sum2/25));
disp(sprintf('第三类分类正确率为%',sum3/25));
disp(sprintf('总分类正确率为%',sum/75));
(2)验证结果:
K近邻法:K=7 实验结果
表1.
类别
次数
第一类
第二类
第三类
总识别率
1




2




3




4




5




6




7




8




9




10




总识别率




最近邻法(即令K=1) 实验结果
表2.
类别
次数
第一类
第二类
第三类
总识别率
1




2




3



0.

模式识别中K均值与最近邻法matlab实现 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人分享精品
  • 文件大小21 KB
  • 时间2018-01-09
最近更新