《课程设计——模式识别大作业.pdf》由会员分享,可在线阅读,更多相关《课程设计——模式识别大作业.pdf(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、模式识别大作业模式识别大作业题题目:目:K-K-近邻法、近邻法、c c 均值、模糊均值、模糊的算法与编程的算法与编程姓名:章苗苗学院:电子工程学院系:电子工程学院专业:智能科学与技术年级:2009 级学号:02095058老师:张向荣c c 均值法均值法一、K-近邻法:#include#include#include#define k 7/函数调用声明void RESULT(double A6,double study6,double test7);void rand1(double A6,double study6);void randt1(double A6,double test7);v
2、oid rand2(double A6,double study6);void randd2(double A6,double test7);void rand3(double A6,double study6);void randd3(double A6,double test7);void rand4(double A6,double study6);void randd4(double A6,double test7);void rand5(double A6,double study6);void randd5(double A6,double test7);void SEARCH(d
3、ouble A,int low,int high);void OUTPUT(double test7,FILE*fp);double MAX(double t1,double t2,double t3);double distance(int i,int j,double sample6,double test7);/主程序:void main()char s100;double A1506;int i,j;double study606;/学习样本double test907;/测试样本FILE*fp;if(fp=fopen(Iris.txt,r)=NULL)printf(cannot op
4、en file n);exit(0);fgets(s,100,fp);fgets(s,100,fp);fgets(s,100,fp);for(i=0;i150;i+)for(j=0;j6;j+)fscanf(fp,%lf,&Aij);/读取样本集存入 Afclose(fp);fp=fopen(Classification Outputs(k=7).doc,w);/建立“分类结果(k=5).doc”文档存放分类结果fprintf(fp,nThe first output:n);rand1(A,study);/初始化数组 studyrandt1(A,test);/初始化数组 testRESULT(
5、A,study,test);/RESULT 聚类OUTPUT(test,fp);/输出聚类结果并计算正确率fprintf(fp,nThe second output:n);rand2(A,study);randd2(A,test);RESULT(A,study,test);OUTPUT(test,fp);fprintf(fp,nThe third output:n);rand3(A,study);randd3(A,test);RESULT(A,study,test);OUTPUT(test,fp);fprintf(fp,The fourth output:n);rand4(A,study);r
6、andd4(A,test);RESULT(A,study,test);OUTPUT(test,fp);fprintf(fp,The fifth output:n);rand5(A,study);randd5(A,test);RESULT(A,study,test);OUTPUT(test,fp);fclose(fp);/K 近邻算法得到分类结果:void RESULT(double A6,double study6,double test7)int i,j,t;double u;double t1,t2,t3;double temp60;double mk;double D9060;for(i
7、=0;i90;i+)for(j=0;j60;j+)Dij=distance(i,j,study,test);for(i=0;i90;i+)t1=0;t2=0;t3=0;for(j=0;j60;j+)tempj=Dij;SEARCH(temp,0,59);for(t=0;tk;t+)for(j=0;j60;j+)if(tempt=Dij)mt=j;for(t=0;tk;t+)if(study(int)mt5=1.0)t1+;else if(study(int)mt5=2.0)t2+;else t3+;u=MAX(t1,t2,t3);testi6=u;/初始化样本集及测试集:void rand1(
8、double A6,double study6)int i,j;for(i=0;i20;i+)for(j=0;j6;j+)studyij=Aij;studyi+20j=Ai+50j;studyi+40j=Ai+100j;void randt1(double A6,double test7)int i,j;for(i=20;i50;i+)for(j=0;j6;j+)testi-20j=Aij;testi+10j=Ai+50j;testi+40j=Ai+100j;void rand2(double A6,double study6)int i,j;for(i=10;i30;i+)for(j=0;j
9、6;j+)studyi-10j=Aij;studyi+10j=Ai+50j;studyi+30j=Ai+100j;void randd2(double A6,double test7)int i,j;for(i=0;i10;i+)for(j=0;j6;j+)testij=Aij;testi+10j=Ai+50j;testi+20j=Ai+100j;for(i=30;i50;i+)for(j=0;j6;j+)testij=Aij;testi+20j=Ai+30j;testi+40j=Ai+60j;void rand3(double A6,double study6)int i,j;for(i=2
10、0;i40;i+)for(j=0;j6;j+)studyi-20j=Aij;studyij=Ai+50j;studyi+20j=Ai+100j;void randd3(double A6,double test7)int i,j;for(i=0;i20;i+)for(j=0;j6;j+)testij=Aij;testi+20j=Ai+50j;testi+40j=Ai+100j;for(i=40;i50;i+)for(j=0;j6;j+)testi+20j=Aij;testi+30j=Ai+50j;testi+40j=Ai+100j;void rand4(double A6,double stu
11、dy6)int i,j;for(i=30;i50;i+)for(j=0;j6;j+)studyi-30j=Aij;studyi-10j=Ai+50j;studyi+10j=Ai+100j;void randd4(double A6,double test7)int i,j;for(i=0;i30;i+)for(j=0;j6;j+)testij=Aij;testi+30j=Ai+50j;testi+60j=Ai+100j;void rand5(double A6,double study6)int i,j;for(i=0;i10;i+)for(j=0;j6;j+)studyij=Aij;stud
12、yi+10j=Ai+40j;studyi+20j=Ai+50j;studyi+30j=Ai+90j;studyi+40j=Ai+100j;studyi+50j=Ai+140j;void randd5(double A6,double test7)int i,j;for(i=10;i40;i+)for(j=0;j6;j+)testi-10j=Aij;testi+20j=Ai+50j;testi+50j=Ai+100j;/搜索检验位置样本 x 的最近邻是否存在:void SEARCH(double A,int low,int high)int i=low;int j=high;double piv
13、ot=Alow;while(ij)while(i=pivot)j-;Ai=Aj;while(ij&Ai=pivot)i+;Aj=Ai;Ai=pivot;if(lowi+1)SEARCH(A,i+1,high);/结果输出聚类结果及正确率:void OUTPUT(double test7,FILE*fp)int i,j,n=0;for(i=0;i90;i+)for(j=0;j7;j+)fprintf(fp,%lf,testij);fprintf(fp,n);for(i=0;i=t2&t1=t3)return 1;else if(t2=t3&t2=t1)return 2;else return 3
14、;/求距离函数double distance(int i,int j,double sample6,double test7)int m;double s=0;for(m=1;m4;m+)s+=pow(testim-samplejm,2);s=sqrt(s);return s;附:k=7 时归类结果The first result:21.000000 5.400000 3.400000 1.700000 0.200000 1.000000 1.00000022.000000 5.100000 3.700000 1.500000 0.400000 1.000000 1.00000023.0000
15、00 4.600000 3.600000 1.000000 0.200000 1.000000 1.00000024.000000 5.100000 3.300000 1.700000 0.500000 1.000000 1.00000025.000000 4.800000 3.400000 1.900000 0.200000 1.000000 1.00000026.000000 5.000000 3.000000 1.600000 0.200000 1.000000 1.00000027.000000 5.000000 3.400000 1.600000 0.400000 1.000000
16、1.00000028.000000 5.200000 3.500000 1.500000 0.200000 1.000000 1.00000029.000000 5.200000 3.400000 1.400000 0.200000 1.000000 1.00000030.000000 4.700000 3.200000 1.600000 0.200000 1.000000 1.00000031.000000 4.800000 3.100000 1.600000 0.200000 1.000000 1.00000032.000000 5.400000 3.400000 1.500000 0.4
17、00000 1.000000 1.00000033.000000 5.200000 4.100000 1.500000 0.100000 1.000000 1.00000034.000000 5.500000 4.200000 1.400000 0.200000 1.000000 1.00000035.000000 4.900000 3.100000 1.500000 0.200000 1.000000 1.00000036.000000 5.000000 3.200000 1.200000 0.200000 1.000000 1.00000037.000000 5.500000 3.5000
18、00 1.300000 0.200000 1.000000 1.00000038.000000 4.900000 3.600000 1.400000 0.100000 1.000000 1.00000039.000000 4.400000 3.000000 1.300000 0.200000 1.000000 1.00000040.000000 5.100000 3.400000 1.500000 0.200000 1.000000 1.00000041.000000 5.000000 3.500000 1.300000 0.300000 1.000000 1.00000042.000000
19、4.500000 2.300000 1.300000 0.300000 1.000000 1.00000043.000000 4.400000 3.200000 1.300000 0.200000 1.000000 1.00000044.000000 5.000000 3.500000 1.600000 0.600000 1.000000 1.00000045.000000 5.100000 3.800000 1.900000 0.400000 1.000000 1.00000046.000000 4.800000 3.000000 1.400000 0.300000 1.000000 1.0
20、0000047.000000 5.100000 3.800000 1.600000 0.200000 1.000000 1.00000048.000000 4.600000 3.200000 1.400000 0.200000 1.000000 1.00000049.000000 5.300000 3.700000 1.500000 0.200000 1.000000 1.00000050.000000 5.000000 3.300000 1.400000 0.200000 1.000000 1.00000071.000000 5.900000 3.200000 4.800000 1.8000
21、00 2.000000 2.00000072.000000 6.100000 2.800000 4.000000 1.300000 2.000000 2.00000073.000000 6.300000 2.500000 4.900000 1.500000 2.000000 2.00000074.000000 6.100000 2.800000 4.700000 1.200000 2.000000 2.00000075.000000 6.400000 2.900000 4.300000 1.300000 2.000000 2.00000076.000000 6.600000 3.000000
22、4.400000 1.400000 2.000000 2.00000077.000000 6.800000 2.800000 4.800000 1.400000 2.000000 2.00000078.000000 6.700000 3.000000 5.000000 1.700000 2.000000 3.00000079.000000 6.000000 2.900000 4.500000 1.500000 2.000000 2.00000080.000000 5.700000 2.600000 3.500000 1.000000 2.000000 2.00000081.000000 5.5
23、00000 2.400000 3.800000 1.100000 2.000000 2.00000082.000000 5.500000 2.400000 3.700000 1.000000 2.000000 2.00000083.000000 5.800000 2.700000 3.900000 1.200000 2.000000 2.00000084.000000 6.000000 2.700000 5.100000 1.600000 2.000000 3.00000085.000000 5.400000 3.000000 4.500000 1.500000 2.000000 2.0000
24、0086.000000 6.000000 3.400000 4.500000 1.600000 2.000000 2.00000087.000000 6.700000 3.100000 4.700000 1.500000 2.000000 2.00000088.000000 6.300000 2.300000 4.400000 1.300000 2.000000 2.00000089.000000 5.600000 3.000000 4.100000 1.300000 2.000000 2.00000090.000000 5.500000 2.500000 4.000000 1.300000
25、2.000000 2.00000091.000000 5.500000 2.600000 4.400000 1.200000 2.000000 2.00000092.000000 6.100000 3.000000 4.600000 1.400000 2.000000 2.00000093.000000 5.800000 2.600000 4.000000 1.200000 2.000000 2.00000094.000000 5.000000 2.300000 3.300000 1.000000 2.000000 2.00000095.000000 5.600000 2.700000 4.2
26、00000 1.300000 2.000000 2.00000096.000000 5.700000 3.000000 4.200000 1.200000 2.000000 2.00000097.000000 5.700000 2.900000 4.200000 1.300000 2.000000 2.00000098.000000 6.200000 2.900000 4.300000 1.300000 2.000000 2.00000099.000000 5.100000 2.500000 3.000000 1.100000 2.000000 2.000000100.000000 5.700
27、000 2.800000 4.100000 1.300000 2.000000 2.000000121.000000 6.900000 3.200000 5.700000 2.300000 3.000000 3.000000122.000000 5.600000 2.800000 4.900000 2.000000 3.000000 3.000000123.000000 7.700000 2.800000 6.700000 2.000000 3.000000 3.000000124.000000 6.300000 2.700000 4.900000 1.800000 3.000000 3.00
28、0000125.000000 6.700000 3.300000 5.700000 2.100000 3.000000 3.000000126.000000 7.200000 3.200000 6.000000 1.800000 3.000000 3.000000127.000000 6.200000 2.800000 4.800000 1.800000 3.000000 2.000000128.000000 6.100000 3.000000 4.900000 1.800000 3.000000 3.000000129.000000 6.400000 2.800000 5.600000 2.
29、100000 3.000000 3.000000130.000000 7.200000 3.000000 5.800000 1.600000 3.000000 3.000000131.000000 7.400000 2.800000 6.100000 1.900000 3.000000 3.000000132.000000 7.900000 3.800000 6.400000 2.000000 3.000000 3.000000133.000000 6.400000 2.800000 5.600000 2.200000 3.000000 3.000000134.000000 6.300000
30、2.800000 5.100000 1.500000 3.000000 3.000000135.000000 6.100000 2.600000 5.600000 1.400000 3.000000 3.000000136.000000 7.700000 3.000000 6.100000 2.300000 3.000000 3.000000137.000000 6.300000 3.400000 5.600000 2.400000 3.000000 3.000000138.000000 6.400000 3.100000 5.500000 1.800000 3.000000 3.000000
31、139.000000 6.000000 3.000000 4.800000 1.800000 3.000000 2.000000140.000000 6.900000 3.100000 5.400000 2.100000 3.000000 3.000000141.000000 6.700000 3.100000 5.600000 2.400000 3.000000 3.000000142.000000 6.900000 3.100000 5.100000 2.300000 3.000000 3.000000143.000000 5.800000 2.700000 5.100000 1.9000
32、00 3.000000 3.000000144.000000 6.800000 3.200000 5.900000 2.300000 3.000000 3.000000145.000000 6.700000 3.300000 5.700000 2.500000 3.000000 3.000000146.000000 6.700000 3.000000 5.200000 2.300000 3.000000 3.000000147.000000 6.300000 2.500000 5.000000 1.900000 3.000000 3.000000148.000000 6.500000 3.00
33、0000 5.200000 2.000000 3.000000 3.000000149.000000 6.200000 3.400000 5.400000 2.300000 3.000000 3.000000150.000000 5.900000 3.000000 5.100000 1.800000 3.000000 3.000000正确率 0.955556The second result:1.000000 5.100000 3.500000 1.400000 0.200000 1.000000 1.0000002.000000 4.900000 3.000000 1.400000 0.20
34、0000 1.000000 1.0000003.000000 4.700000 3.200000 1.300000 0.200000 1.000000 1.0000004.000000 4.600000 3.100000 1.500000 0.200000 1.000000 1.0000005.000000 5.000000 3.600000 1.400000 0.200000 1.000000 1.0000006.000000 5.400000 3.900000 1.700000 0.400000 1.000000 1.0000007.000000 4.600000 3.400000 1.4
35、00000 0.300000 1.000000 1.0000008.000000 5.000000 3.400000 1.500000 0.200000 1.000000 1.0000009.000000 4.400000 2.900000 1.400000 0.200000 1.000000 1.00000010.000000 4.900000 3.100000 1.500000 0.100000 1.000000 1.00000051.000000 7.000000 3.200000 4.700000 1.400000 2.000000 2.00000052.000000 6.400000
36、 3.200000 4.500000 1.500000 2.000000 2.00000053.000000 6.900000 3.100000 4.900000 1.500000 2.000000 2.00000054.000000 5.500000 2.300000 4.000000 1.300000 2.000000 2.00000055.000000 6.500000 2.800000 4.600000 1.500000 2.000000 2.00000056.000000 5.700000 2.800000 4.500000 1.300000 2.000000 2.00000057.
37、000000 6.300000 3.300000 4.700000 1.600000 2.000000 2.00000058.000000 4.900000 2.400000 3.300000 1.000000 2.000000 2.00000059.000000 6.600000 2.900000 4.600000 1.300000 2.000000 2.00000060.000000 5.200000 2.700000 3.900000 1.400000 2.000000 2.000000101.000000 6.300000 3.300000 6.000000 2.500000 3.00
38、0000 3.000000102.000000 5.800000 2.700000 5.100000 1.900000 3.000000 3.000000103.000000 7.100000 3.000000 5.900000 2.100000 3.000000 3.000000104.000000 6.300000 2.900000 5.600000 1.800000 3.000000 3.000000105.000000 6.500000 3.000000 5.800000 2.200000 3.000000 3.000000106.000000 7.600000 3.000000 6.
39、600000 2.100000 3.000000 3.000000107.000000 4.900000 2.500000 4.500000 1.700000 3.000000 2.000000108.000000 7.300000 2.900000 6.300000 1.800000 3.000000 3.000000109.000000 6.700000 2.500000 5.800000 1.800000 3.000000 3.000000110.000000 7.200000 3.600000 6.100000 2.500000 3.000000 3.00000031.000000 4
40、.800000 3.100000 1.600000 0.200000 1.000000 1.00000032.000000 5.400000 3.400000 1.500000 0.400000 1.000000 1.00000033.000000 5.200000 4.100000 1.500000 0.100000 1.000000 1.00000034.000000 5.500000 4.200000 1.400000 0.200000 1.000000 1.00000035.000000 4.900000 3.100000 1.500000 0.200000 1.000000 1.00
41、000036.000000 5.000000 3.200000 1.200000 0.200000 1.000000 1.00000037.000000 5.500000 3.500000 1.300000 0.200000 1.000000 1.00000038.000000 4.900000 3.600000 1.400000 0.100000 1.000000 1.00000039.000000 4.400000 3.000000 1.300000 0.200000 1.000000 1.00000040.000000 5.100000 3.400000 1.500000 0.20000
42、0 1.000000 1.00000041.000000 5.000000 3.500000 1.300000 0.300000 1.000000 1.00000042.000000 4.500000 2.300000 1.300000 0.300000 1.000000 1.00000043.000000 4.400000 3.200000 1.300000 0.200000 1.000000 1.00000044.000000 5.000000 3.500000 1.600000 0.600000 1.000000 1.00000045.000000 5.100000 3.800000 1
43、.900000 0.400000 1.000000 1.00000046.000000 4.800000 3.000000 1.400000 0.300000 1.000000 1.00000047.000000 5.100000 3.800000 1.600000 0.200000 1.000000 1.00000048.000000 4.600000 3.200000 1.400000 0.200000 1.000000 1.00000049.000000 5.300000 3.700000 1.500000 0.200000 1.000000 1.00000050.000000 5.00
44、0000 3.300000 1.400000 0.200000 1.000000 1.00000061.000000 5.000000 2.000000 3.500000 1.000000 2.000000 2.00000062.000000 5.900000 3.000000 4.200000 1.500000 2.000000 2.00000063.000000 6.000000 2.200000 4.000000 1.000000 2.000000 2.00000064.000000 6.100000 2.900000 4.700000 1.400000 2.000000 2.00000
45、065.000000 5.600000 2.900000 3.600000 1.300000 2.000000 2.00000066.000000 6.700000 3.100000 4.400000 1.400000 2.000000 2.00000067.000000 5.600000 3.000000 4.500000 1.500000 2.000000 2.00000068.000000 5.800000 2.700000 4.100000 1.000000 2.000000 2.00000069.000000 6.200000 2.200000 4.500000 1.500000 2
46、.000000 3.00000070.000000 5.600000 2.500000 3.900000 1.100000 2.000000 2.00000071.000000 5.900000 3.200000 4.800000 1.800000 2.000000 2.00000072.000000 6.100000 2.800000 4.000000 1.300000 2.000000 2.00000073.000000 6.300000 2.500000 4.900000 1.500000 2.000000 3.00000074.000000 6.100000 2.800000 4.70
47、0000 1.200000 2.000000 2.00000075.000000 6.400000 2.900000 4.300000 1.300000 2.000000 2.00000076.000000 6.600000 3.000000 4.400000 1.400000 2.000000 2.00000077.000000 6.800000 2.800000 4.800000 1.400000 2.000000 2.00000078.000000 6.700000 3.000000 5.000000 1.700000 2.000000 3.00000079.000000 6.00000
48、0 2.900000 4.500000 1.500000 2.000000 2.00000080.000000 5.700000 2.600000 3.500000 1.000000 2.000000 2.00000091.000000 5.500000 2.600000 4.400000 1.200000 2.000000 2.00000092.000000 6.100000 3.000000 4.600000 1.400000 2.000000 2.00000093.000000 5.800000 2.600000 4.000000 1.200000 2.000000 2.00000094
49、.000000 5.000000 2.300000 3.300000 1.000000 2.000000 2.00000095.000000 5.600000 2.700000 4.200000 1.300000 2.000000 2.00000096.000000 5.700000 3.000000 4.200000 1.200000 2.000000 2.00000097.000000 5.700000 2.900000 4.200000 1.300000 2.000000 2.00000098.000000 6.200000 2.900000 4.300000 1.300000 2.00
50、0000 2.00000099.000000 5.100000 2.500000 3.000000 1.100000 2.000000 2.000000100.000000 5.700000 2.800000 4.100000 1.300000 2.000000 2.000000101.000000 6.300000 3.300000 6.000000 2.500000 3.000000 3.000000102.000000 5.800000 2.700000 5.100000 1.900000 3.000000 3.000000103.000000 7.100000 3.000000 5.9