ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:17.31KB ,
资源ID:11676954      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11676954.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(模式识别中K均值与最近邻法matlab实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、模式识别中K均值与最近邻法matlab实现模式识别算法实现 K近邻法&最近邻法一 程序1. 用Iris数据集验证的程序(1)用Iris数据集验证的M文件:load iris.mat;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

2、,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,bb,cc);k=7;%7近邻法cha=zeros(1,75);sum1=0;sum2=0;sum3=0;sum=0;i,j=size(train_sample);%i=75,j=4u,v=size(test_sample);%u=75,v=4for x=1:u

3、 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&Ind(1,n)=m2&m1=m3 m=1; elsei

4、f m2=m1&m2=m3 m=2; elseif m3=m1&m3=m2 m=3; end if (x25&x50&x=75&m=3) sum3=sum3+1; end if (x25&x50&x=75&m=3) sum=sum+1; endenddisp(sprintf(第一类分类正确率为%4.2f,sum1/25);disp(sprintf(第二类分类正确率为%4.2f,sum2/25);disp(sprintf(第三类分类正确率为%4.2f,sum3/25);disp(sprintf(总分类正确率为%4.2f,sum/75);(2)验证结果:a) K近邻法:K=7 实验结果表1.类别次

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

6、00.920.880.9351.000.960.980.9561.000.960.960.9771.000.960.800.9281.001.001.001.0091.000.880.960.95101.000.960.920.96总识别率1.000.940.920.95(3) 数据分析第一个表格是用K(k=7)近邻法得到的识别率,第二个表格是用最近邻法得到的识别率,可以看出对于Iris数据,两种方法的识别率都达到了95%左右。2. 用Wine数据集验证的程序(1)用Wine数据集验证的M文件:load wine.mat;A=randperm(59);B=randperm(71);C=rand

7、perm(48);a1=A(1,1:30);a2=A(1,31:59);a=wine(a1,1:14);aa=wine(a2,1:14);b1=59*ones(1,36)+B(1,1:36);b2=59*ones(1,35)+B(1,37:71);b=wine(b1,1:14);bb=wine(b2,1:14);c1=130*ones(1,24)+C(1,1:24);c2=130*ones(1,24)+C(1,25:48);c=wine(c1,1:14);cc=wine(c2,1:14);train_sample=cat(1,a,b,c);%拼接成样本集test_sample=cat(1,aa

8、,bb,cc);k=7;%7近邻法cha=zeros(1,90);sum1=0;sum2=0;sum3=0;sum4=0;sum=0;i,j=size(train_sample);u,v=size(test_sample);for x=1:u for y=1:i result=sqrt(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+(test_sample(x,5)-train_sample(y,5)2+(test_sam

9、ple(x,6)-train_sample(y,6)2+(test_sample(x,7)-train_sample(y,7)2+(test_sample(x,8)-train_sample(y,8)2+(test_sample(x,9)-train_sample(y,9)2+(test_sample(x,10)-train_sample(y,10)2+(test_sample(x,11)-train_sample(y,11)2+(test_sample(x,12)-train_sample(y,12)2+(test_sample(x,13)-train_sample(y,13)2+(test

10、_sample(x,14)-train_sample(y,14)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)30&Ind(1,n)=m2&m1=m3 m=1; elseif m2=m1&m2=m3 m=2; elseif m3=m1&m3=m2 m=3; end if (x29&x64&x=88&m=3) sum3=sum3+1; end if (x29&x64&x=88&m=3) sum=sum+1; endenddisp(sprint

11、f(第一类分类正确率为%4.2f,sum1/30);disp(sprintf(第二类分类正确率为%4.2f,sum2/36);disp(sprintf(第三类分类正确率为%4.2f,sum3/24);disp(sprintf(总分类正确率为%4.2f,sum/90);(2) 验证结果:a).K近邻法:K=7 实验结果表1.类别次数第一类第二类第三类总识别率10.900.690.380.6820.970.690.420.7130.900.670.500.7040.770.560.670.6650.870.610.460.6660.700.440.670.5970.970.720.540.7680

12、.800.670.540.6890.930.580.580.70100.870.500.790.70总识别率0.870.610.560.68b).最近邻法 (即令K=1) 实验结果表2.类别次数第一类第二类第三类总识别率10.770.750.670.7320.800.670.630.7030.830.670.630.7140.770.640.630.6850.880.640.580.6860.830.690.500.6970.800.640.580.6880.800.780.540.7290.870.640.670.72100.700.670.420.61总识别率0.810.680.590.69(3)数据分析这两个是对Wine数据的识别率,第一个表格是用K(k=7)近邻法得到的识别率,第二个表格是用最近邻法得到的识别率,可以看出对于Wine数据,两种方法的识别率只达到了68%69%左右。3大作业收获 通过这次的大作业,我学会了用MATLAB,感觉这个软件比C好多了。而且有一个很重要的收获,我自己刚开始写的没有随机取数的功能,后来,和同学聊了聊,才结识了randperm函数,感觉很有帮助。而且,对于.m文件和.mat文件的调用,也更加熟悉了。认识了UCI数据库。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1