您好,欢迎访问三七文档
模式识别实验报告实验一、最近邻规则的聚类算法一、实验要求编写采用最近邻规则的聚类算法,距离采用欧式距离,阈值可设定。采用二维特征空间中的10个样本对程序进行验证。x1=(0,0),x2=(3,8),x3=(2,2),x4=(1,1),x5=(5,3),x6=(4,8),x7=(6,3),x8=(5,4),x9=(6,4),x10=(7,5)。二、实验步骤○1、选取距离阈值T,并且任取一个样本作为第一个聚合中心Z1,如:Z1=x1;○2、计算样本x2到Z1的距离D21;若D21≤T,则x2∈Z1,否则令x2为第二个聚合中心,Z2=x2。设Z2=x2,计算x3到Z1和Z2的距离D31和D32。若D31T和D32T,则建立第三个聚合中心Z3;否则把x3归于最近邻的聚合中心。依此类推,直到把所有的n个样本都进行分类。○3、按照某种聚类准则考察聚类结果,若不满意,则重新选取距离阈值T、第一个聚合中心Z1,返回第二步②处,直到满意,算法结束。三、程序设计详见附件1:test1.m。四、仿真结果01234567012345678最近邻聚类算法:阈值T=0.1,第一个聚类中心(0,0)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=0.1,第一个聚类中心(5,4)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=1,第一个聚类中心(0,0)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=1,第一个聚类中心(5,4)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=3,第一个聚类中心(0,0)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=3,第一个聚类中心(5,4)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=6,第一个聚类中心(0,0)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=6,第一个聚类中心(5,4)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=10,第一个聚类中心(0,0)data1data2data3data4data5data6data7data8data9data1001234567012345678最近邻聚类算法:阈值T=10,第一个聚类中心(5,4)data1data2data3data4data5data6data7data8data9data10五、结果分析1、考虑阈值对聚类的影响:由上述仿真结果可知,阈值大小对于分类的影响非常大。当阈值小于1的时候,样本(10个)共分为10类;而当阈值大于10的时候,样本全分为1类;当阈值在其中时,随着阈值的变化分类页多样化。所以选取合适的阈值是正确分类的前提标准!2、考虑初始聚类中心对聚类的影响:在合适的阈值下,第一个聚类中心的选取对分类结果几乎没有什么影响;而相对的,阈值不合适的情况下,第一个聚类中心的选取对分类结果还是有一些影响,仿真结果会出现一些偏差。3、实验小结:综上可知,只有预先分析过样本,对阈值进行范围估算,再通过实验验证,才能得到合适的阈值,对样本进行正确分类,而初始聚合中心对其没有影响。实验二、k-均值聚类算法一、实验要求:编写k-均值聚类算法的程序,对下列数据进行聚类。(0,0),(1,0),(0,1),(1,1),(2,1),(1,2),(2,2),(3,2),(6,6),(7,6),(8,6),(6,7),(7,7),(8,7),(9,7),(7,8),(8,8),(9,8),(8,9),(9,9).二、实验步骤○1、给出n个混合样本,令I=1,表示迭代运算次数,选取c个初始聚合中心,j=1,2,…,c;○2、计算每个样本与聚合中心的距离,,。若,则。○3、计算c个新的聚合中心:,。○4、判断:若,,则I=I+1,返回第二步b处,否则结束。三、程序设计详见附件2:test2.m。四、仿真结果1、类别数目一定时,初始聚类中心对聚类的影响:01234567890123456789K-均值聚类算法:类别数c=2,初始聚合中心为(0,0),(1,1)01234567890123456789K-均值聚类算法:类别数c=2,初始聚合中心为(0,0),(6,6)01234567890123456789K-均值聚类算法:类别数c=2,初始聚合中心为(1,1),(7,8)01234567890123456789K-均值聚类算法:类别数c=2,初始聚合中心为(3,2),(9,9)初始聚合中心为(0,0),(2,2),(5,5),(7,7),(9,9)01234567890123456789K-均值聚类算法:类别数目c=5初始聚合中心为(1,1),(3,3),(6,6),(7,7)(8,8)01234567890123456789K-均值聚类算法:类别数目c=52、类别数目对聚类的影响:初始聚合中心为(0,0)01234567890123456789K-均值聚类算法:类别数目c=1初始聚合中心为(0,0),(9,9)01234567890123456789K-均值聚类算法:类别数目c=2初始聚合中心为(0,0),(5,5),(9,9)01234567890123456789K-均值聚类算法:类别数目c=3初始聚合中心为(0,0),(2,2),(7,7),(9,9)01234567890123456789K-均值聚类算法:类别数目c=4初始聚合中心为(0,0),(2,2),(5,5),(7,7),(9,9)01234567890123456789K-均值聚类算法:类别数目c=5五、结果分析1、类别数目一定时,考虑初始聚合中心对聚类的影响:由上述仿真结果可知,当类别数目为1和2时,初始聚合中心对聚类没有影响。但当C=2时,该类别属于正确分类。而类别数目大于2时,初始聚合中心对聚类的影响非常大,仿真结果多样化,不能作为分类标准。2、考虑类别数目对聚类的影响:当类别数目变化时,结果也随之出现变化。3、总结综上可知,只有预先分析过样本,确定合适的类别数目,才能对样本进行正确分类,而初始聚合中心对其没有影响。实验三、感知器算法一、实验要求:使用感知器算法给出区分两类模式的判别函数。ω1=(x1,x2)={(1,0,1),(0,1,1)}ω2=(x3,x4)={(1,1,0),(0,1,0)}二、实验步骤○1、初始化:给定一个训练模式集{x1,x2,…xN},其中每个类别已知,它们分属于ω1,ω2;xi=(xi1,xi2,…xin)T为n维向量,增广为(n+1)维向量:xi=(xi1,xi2,…xin,1);ω2类样本乘以-1;权向量w为(n+1)维向量。○2、置步数k=1,令增量C为常数,且C0,分别赋予初始增广权矢量w(1)的各分量较小的任意值。○3、输入训练模式xk,计算判别函数值wT(k)xk○4、调整增广权矢量,规则是:如果wT(k)xk≤0,则w(k+1)=w(k)+Cxk;如果wT(k)xk0,则w(k+1)=w(k);○5、如果kN,令k=k+1,返至第二步。如果k=N,则检验判别函数wTx对x1,x2,…,xN,是否都能正确分类。若是,结束;若不是,令k=1,返至第二步。三、程序设计详见附件3:test3.m。四、仿真结果假设初始的权矢量为w=[1111]T。1、输入步长c的值:1x=conj(x1)conj(x2)conj(x3)1w=0-130y=3*conj(x3)-conj(x2)2、输入步长c的值:0.5x=conj(x1)conj(x2)conj(x3)1w=-0.5000-0.50001.5000-0.5000y=(3*conj(x3))/2-conj(x2)/2-conj(x1)/2-1/23、输入步长c的值:0.1x=conj(x1)conj(x2)conj(x3)1w=0.3000-0.20001.0000-0.2000y=(3*conj(x1))/10-conj(x2)/5+conj(x3)-1/5五、结果分析选取的步长(即增量)不同,其计算得到的权矢量和判别函数也不尽相同。但是,无论步长为何,该算法总能使样本正确分类。实验四、感知器算法一、实验要求:实验所用样本数据如表给出,编制程序实现ω1、ω2、ω3、ω4类的分类。二、实验步骤前提条件:只考虑第三种情况:如果di(x)dj(x)任意j≠i,则判x∈ωi。○1、赋初值,分别给c个权矢量wi(1)(i=1,2,…c)赋任意的初值,选择正常数ρ,置步数k=1;○2、输入符号未规范化的增广训练模式xk,xk∈{x1,x2…xN},计算c个判别函数:di(xk)=wi’(k)xk(i=1,2,…c);○3、调整增广权矢量,规则是:a、如果xk∈ωi和di(xk)dj(xk)(任意j≠i),则:wi(k+1)=wi(k)(i=1,2,…c)b、如果xk∈ωi和dl(xk)≥di(xk)(l≠i)则:wi(k+1)=wi(k)+ρxkwl(k+1)=wl(k)-ρxkwj(k+1)=wj(k)(任意j≠l,i)○4、如果kN,令k=k+1,返至○2。如果k=N,则检验判别函数wi’x对x1,x2…xN,是否都能正确分类。若是,结束;若不是,令k=1,返至○2。三、程序设计详见附件4:test4.m。四、仿真结果假设初始的权矢量皆为w1=w2=w3=w4=[1111]T。1、输入步长c的值:1w(:,:,1,1)=4.0000-0.9000-4.60001.0000w(:,:,1,2)=8.0000-7.20009.00001.0000w(:,:,1,3)=-3.70004.600012.70000w(:,:,1,4)=-11.6000-4.7000-10.6000-1.0000D=11.3800-78.6600-13.54002.980017.8700-78.2200-23.4800-3.67009.9600108.380024.4400-124.480021.670065.5600-35.3200-29.5100-24.7900-0.500050.23000.7100-28.0900-65.940077.4200-30.510020.330011.2800-86.8800108.55002.6400-136.9400-65.7900177.12000001.00002、输入步长c的值:0.5w(:,:,1,1)=2.50000.0500-1.80001.0000w(:,:,1,2)=4.5000-3.10005.00001.0000w(:,:,1,3)=-1.35002.80006.85000.5000w(:,:,1,4)=-5.3000-1.8500-4.80000D=7.8900-37.1300-4.57003.690011.4850-36.5600-9.19000.715010.580059.790017.8200-56.640011.285033.2300-17.2100-14.3050-11.69500.450025.81501.0550-9.5950-28.520043.1600-10
本文标题:模式识别实验报告
链接地址:https://www.777doc.com/doc-6312799 .html