还剩7页未读,继续阅读
文本内容:
基于变换的数据分类K-L iris
一、实验原理变换是一种基于目标统计特性的最佳正交变换它具有一些优良的性质K-L即变换后产生的新的分量正交或者不相关;以部分新的分量表示原矢量均方误差最小;变换后的矢量更趋确定,能量更集中这一方法的目的是寻找任意统计分布的数据集合之主要分量的子集设n维矢量x=[x],x,---,x„]r,其均值矢量ji=E[x],协方差阵2此协方差阵为对称正定阵,则经过正交分解克表示为C=E[x-ux-uy],tG=UAUT淇中A=㈤,u=M〃2,为对应特征值的特征向量组成的变换阵,且满足变换阵为旋转矩阵,再此变换阵下变换U-=17X为丫=1/卜-U,在新的正交基空间中,相应的协方差阵C.=uCxU=dhg[4,4,,4j通过略去对应于若干较小特征值的特征向量来给降维然后进行处理通常情况下y特征值幅度差别很大,忽略一些较小的值并不会引起大的误差对经过变换后的特征向量按最小错误率决策和神经网络方法进K-L bayesBP行分类
二、实验步骤
5.
84330.6857-
0.
04241.
27430.
51633.0573-
0.
04240.18998-
0.3297-
0.
12163.7580,
1.2743-
0.
32973.
11631.
29561.
19930.5163-
0.
12161.
29560.5810计算样本向量的均值矶和协方差阵1N=x]C=E[x-ux-uyx计算协方差阵的特征值和特征向量,则2A=diag[
4.2282,
0.24-
0.3614267,
0.07821,
0.
020.
31550.08453835]-
0.3197-
0.8567-
0.4798-
0.
65660.5820-
0.
35830.7537-
0.7302-
0.
59790.1734-
0.
07620.0755-
0.5458从上面的计算可以看到协方差阵特征值和相对于
0.
0238350.07821和很小,并经计算个特征值对误差影响所占比重分别为
0.
242674.
2282、、和因此可以去掉个最小的特征值,
92.462%
5.3066%
1.7103%
0.52122%,k=l〜2得到新的变换阵Ui,=[%,%,,唠]将样本变换为、3y=U x-U按照最小错误率决策方法分类4bayes用神经网络方注进行分类5BP
三、实验结果及分析最小错误率决策分类
1.bayes将最小的一个特征值对应的特征向量去掉,则新的变换矩阵为
10.023835-
0.3614-
0.
65660.
58200.0845-
0.7302-
0.5979-
0.
85670.1734-
0.0762-
0.
35830.0755-
0.5458经变换后的向量在新的维空间如图所示:31样本经K-L变换后分布V w1类*w2类△w3类图样本经变换后分布图
1.1K-L变换后的各类样本分别用前个样本进行训练,用剩下的个样本进32行测试,结果如下取第一类样本的后个数据按可、g分类,分类正确;120tl=20,t2=0,取第二类样本的后个数据按、分类,分类正确201g tl=0,12=20,取第一类样本的后个数据按可、电分类,分类正确;220tl=20,t3=0,取第三类样本的后个数据按
①、电分类,,分类正确201tl=t3=20,取第二类样本的后个数据按和、例分类,中一样320t2=19,t3=l,g本错分到例中;取第三类样本的后个数据按处、外分类,20t2=0,分类正确t3=20,将最小的两个特征值和对应的特征向量去掉,则新的变换矩
20.
0238350.07821阵为--
0.3614-
0.6566一,
0.0845-
0.7302t7U=i-
0.
85670.1734-
0.
35830.0755经变换后的向量在新的维平面如图所示22样本经K-L变换后分布43210-1-2--
1.5-
100.
511.图样本经变换后分布图1-2K-L变换后的各类样本分别用前个样本进行训练,用剩下的个样本进行测试,3020结果如下)取第一类样本的后个数据按、g分类,分类正确;120I tl=20,t2=0,取第二类样本的后20个数据按g、
①2分类,tl=o,t2=20,分类正确)取第一类样本的后个数据按可、例分类,分类正确;220tl=20,t3=0,取第三类样本的后个数据按可、例分类,分类正确20tl=0,t3=20,3)取第二类样本的后20个数据按
①
2、
①3分类,t2=19,t3=l,%中一样本错分到例中;取第三类样本的后个数据按、例分类,202t2=l例中一样本错分到处中t3=19,以上结果与未经变换的最小错误率决策分类结果比较,结果几乎完全K-L bayes相同,只是在去掉最小的两个特征值对应特征向量的变换时取第三类样本的后K-L2个数据按g、外分类,
①3中一样本错分到g中神经网络分类
2.BP将最小的两个特征值和对应的特征向量去掉,经新的变换矩
10.
0238350.07821阵变换后的各类样本分别用前个样本进行训练,用剩下的个样本进行测3020试,分类结果如下nl=20n2=19n3=19,即第二和第三类各有一个样本错分到另一类中去,分类结果图如下分类结果I I III1I:::nnQU.0皿neu.o0-nAU.4n9u.znui i i ii-
0.2-
0.
200.
20.
40.
60.
811.2丫⑴图误差性能曲线2-2将最小的一个特征值对应的特征向量去掉,经新的变换矩阵变换后
20.023835的各类样本分别用前个样本进行训练,用剩下的个样本进行测试,分3020类结果如下nl=20n2=19n3=19,即第二和第三类各有一个样本错分到另一类中去,分类结果图如下分类结果I11111I[上▲上•4I小imiznn□*I♦nA■11i IU.OncU.O金-nA11111n9u.z:*:nui iiiin9-U.Z-
0.
200.
20.
40.
60.
811.2丫⑴图误差性能曲线2-4以上结果与未经变换的神经网络分类结果比较,变换后结果在大多K-L BPK-L数情况下未经处理的分类结果通过以上两种基于变换的分类方法可以看到,该变换可以将样本的显著特K-L征抽取出来,在降低特征数据的维数减少运算量和存储量的同时,分类结果基本不受影响,甚至在某些次优分类方法(BP神经网络)下可能优于未经变换处理进行的分类图2-3分类结果图三xoemBOanmsU-21附K-L变换的最小错误率bayes分类:clear%原始数据导入iris=load,C:\MATLAB7\work\模式识别\iris.txt;N=150;%MXN=150个样本%求第一类样本均值for i=1:Nfor j=1:4wi,j=irisi,j+1;endendsumx=sumw,1;for i=l:4meanx1,i=sumx1,i/N;end%求样本协方差矩阵z4,4=0;var4,4=0;var=covw;[v,latent,explained]二pcacovvar;v二fliplrv;%对特征向量按对应特征值从小到大排序v:,1:2二口;%去掉最小特征值对应的特征向量for i=l:150w_k_li,:=wi,:-meanx*v;%w_k_l为150*3J矩阵end%求第一类样本均值M=30;wl k1:,:=w k11:M,:;meanxl_k_l=sumwl_k_l,1/M;w2_k_l:,:=w_k_l51:50+M,:;meanx2_k_l=sumw2_k_l,1/M;w3k1:,:=w_k_l101:100+M,:;meanx3_k_l=sumw3_k_l,1/M;%%求第一类样本协方差矩阵varl_k l=covwl k1;var2k l=covw2k1;var3k l=covw3k1;varl_k_l_inv=invvarl_k_lvar2_k_l_inv二invvar2_k_lvar3_k_l_inv二invvar3_k_lvarl k1det=detvarl k1var2_k_l_det=detvar2_k_l;var3_k_l_det=detvar3_k_l;pl=
0.5;p2=
0.5;p3=
0.5;%取测试数据,test:,:=w_k_l81:100,:;tl=0;t2=0;t3=0;for i=1:50-Mx=testi,1;y=testi,2;%z=testi,3;%gl=-
0.5*[x,y,z]-meanxl_k_l*varl_k_l_inv*[x,y,z]-meanxl k l-
0.5*logabsvarl_k_l_det;%g2=-
0.5*[x,y,z]-meanx2_k_l*var2_k_l_inv*[x,y,zY-meanx2_k_l,-
0.5*logabsvar2_k_l_det;%g3=-
0.5*[x,y,z]-meanx3k l*var3k l inv*[x,y,z]-meanx3k1一
0.5*logabsvar3_k_l_det;gl=-
0.5*[x,y]-meanxl_k_l*varl_k_l_inv*[x,y]-meanxl_k_r-
0.5*logabsvarl_k_l_det;g2=-
0.5*[x,y]-meanx2_k_l*var2_k_l_inv*[x,y]-meanx2_k_T-
0.5*logabsvar2k1det;g3=-
0.5*[x,y]-meanx3_k_l*var3kl_inv*[x,y]-meanx3k」-
0.5*log absvar3_k_l_det;if g2g3t2=t2+l;%若81比2,则属于第一类,否则属于第二类,并统计每一类的个数elset3=t3+l;endend变换的神经网络分类K-L BPclear%原始数据导入iris=loadC:\MATLAB7\work\模式识别\iris.txt;%求第一类样本均值for i=1:150for j=1:4wi,j=irisi,j+1;endendsumx=sumw,1;for i=l:4meanxl,i=sumx1,i/150;end%求样本协方差矩阵var=cov[v,latent,explained]=pcacovvar;v=fliplrv;%对特征向量按对应特征值从小到大排序v:,l:2=[];%去掉最小特征值对应的特征向量w k1=w*v;%w k1为150*2矩阵M=30;for k=l:3for i=1:Mxl i+k-l*M,:=w_k_l i+k-l*50,:;dl i+k-l*M,l=abs modk,2-
0.1;dl i+k-l*M,2=abs floork/2-
0.1;endendx2:,l:2=xl;x2:,3:4=dl;%训1练样本顺序打乱xd=x2randpermnumelx2/4,:;x=xd:,1:2;d=xd:,3:4;P=x,;T=d,;net=newff minmaxP,[8,2],{logsig,logsig},trainrp,;%purelin纯线性函数trainrp用于模式识别速度较快net.trainparam.epochs=2000;net.trainparam.goal=
0.0045;net=trainnet,P,T;simnet,PN=50-M;for k=l:3for i=1:NP_testi+kT*N,:=w_k_li+k-l*50+M,:;endend%[P_p,minp,maxp]=premnmxP test;P_p=P_test;P_P=P_P,;Y=simnet,P_pfigurenl=0;n2=0;n3=0;为统计各组分类正确数for k=l:3for i=l:N switchkplot Yl,i+k-l*N,Y2,i+k-1*N,r+ifYl,i
0.5Y2,i
0.5nl=nl+l;endplot Yl,i+k-l*N,Y2,i+kT*N,,gs,ifYl,i+N
0.5Y2,i+N
0.5n2=n2+l;endplot Yl,i+k-l*N,Y2,i+k-1*N,b*ifYl,i+2*N〉
0.5Y2,i+2*N
0.5n3=n3+l;endendhold onendendhold onplot0:
0.001:1,
0.5/—^holdonplot
0.5,0:
0.001:1/—^axis[-
0.
21.2-
0.21,2]xlabelY1ylabel,Y2JtitleC分类结果grid on。