《模式识别上机作业1.doc》由会员分享,可在线阅读,更多相关《模式识别上机作业1.doc(13页珍藏版)》请在三一办公上搜索。
1、word模式识别上机作业作业一:,。用感知器固定增量法求判别函数,设,。写程序上机运行,写出判别函数,打出图表。解答:1、程序代码如下:clc,clearw=0 0 1; 0 1 1; -1 0 -1; -1 -1 -1;W=1 1 1;rowk=1;flag=1;flagS=zeros(1,size(w,1);k=0;while flagfor i=1:size(w,1)if isempty(find(flagS=0) flag=0;break;end k=k+1; pb=w(i,:)*W;if pb=0 flagS(i)=0; W=W+rowk*w(i,:);else flagS(i)=1
2、;endendendW,kwp1=0 0; 0 1;wp2=1 0; 1 1;plot(wp1(:,1),wp1(:,2),o)hold onplot(wp2(:,1),wp2(:,2),*)hold ony=-0.2:1/100:1.2;plot(1/3*ones(1,size(y),y,r-)axis(-0.25 1.25 -0.25 1.25)2、判别函数。计算得到增广权矢量为,故判别函数表达式为:3、分类示意图:图 1 感知器算法分类结果图作业二:在如下条件下,求待定样本的类别,画出分界限,编程上机。1、二类协方差相等;2、二类协方差不等。训练样本号1 2 31 2 3特征1 1 2-
3、1 -1 -2特征1 0 -11 0 -1类别解答:经计算,两类的协方差矩阵不相等。设,计算时相关项直接略去。1、计算时,参考书中P96页式4-1-31等。程序代码如下:clc,clear,close allD1=1,1,2;1,0,-1;D2=-1,-1,-2;1,0,-1; u1=mean(D1,2);u2=mean(D2,2);c1=zeros(size(D1,1),size(D1,1);for i=1:size(D1,2) c1=c1+D1(:,i)*D1(:,i);endc1=c1/size(D1,2)-u1*u1;c2=zeros(size(D2,1),size(D2,1);for
4、 i=1:size(D2,2) c2=c2+D2(:,i)*D2(:,i);endc2=c2/size(D2,2)-u2*u2;I=eye(size(c1,1),size(c1,1);ic1=c1I;ic2=c2I;W1=-0.5*ic1;W2=-0.5*ic2;w1=ic1*u1;w2=ic2*u2;w10=-0.5*log(det(c1)-0.5*u1*ic1*u1; w20=-0.5*log(det(c2)-0.5*u2*ic2*u2;syms x1x2;x=x1;x2;fprintf(决策界面方程为:)D=x*(W1-W2)*x+(w1-w2)*x+(w10-w20);pretty(D
5、)fprintf(2,0代入决策面方程的值为:)value=subs(D,x1,x2,2 0)figureezplot(D) hold onplot(D1(1,:),D1(2,:),bo)plot(D2(1,:),D2(2,:),ks)plot(2,0,rp)运行结果显示,决策面方程为:。2、计算结果。从程序运行结果可以看出,带入决策界面方程值为96,可见属于第一类。见如下图:图2 两类协方差不等分类结果图图中,黑色方块为第二类,蓝色圆圈为第一类,红色五角星即为要判断类别的。绿色交叉的两条直线即为决策面曲线。左上和右下为第一类,右上和左下为第二类。作业三: 有训练集资料矩阵如下表所示,现,、,
6、试问,应属于哪一类?训练样本号1 2 31 2 31 2 3特征0 2 1-1 -2 -20 0 1特征0 1 01 0 -1-2 -1 -2类别要求:用两种解法:a、三类协方差不等;b、三类协方差相等。编程上机,画出三类的分界限。解答:经计算,三类的协方差矩阵不相等。设,计算时相关项直接略去。1、计算时,参考书中P96页式4-1-31等。程序代码如下:clc,clear,close allD1=0 2 1;0 1 0;D2=-1 -2 -2;1 0 -1;D3=0 0 1;-2 -1 -2;X=-2 2;u1=mean(D1,2);u2=mean(D2,2);u3=mean(D3,2);c1
7、=zeros(size(D1,1),size(D1,1);for i=1:size(D1,2) c1=c1+D1(:,i)*D1(:,i);endc1=c1/size(D1,2)-u1*u1;c2=zeros(size(D2,1),size(D2,1);for i=1:size(D2,2) c2=c2+D2(:,i)*D2(:,i);endc2=c2/size(D2,2)-u2*u2;c3=zeros(size(D3,1),size(D3,1);for i=1:size(D3,2) c3=c3+D3(:,i)*D3(:,i);endc3=c3/size(D3,2)-u3*u3;I=eye(si
8、ze(c1,1),size(c1,1);ic1=c1I;ic2=c2I;ic3=c3I;W1=-0.5*ic1;W2=-0.5*ic2;W3=-0.5*ic3;w1=ic1*u1;w2=ic2*u2;w3=ic3*u3;w10=-0.5*log(det(c1)-0.5*u1*ic1*u1; w20=-0.5*log(det(c2)-0.5*u2*ic2*u2;w30=-0.5*log(det(c3)-0.5*u3*ic3*u3;syms x1x2real;x=x1;x2;D12=x*(W1-W2)*x+(w1-w2)*x+(w10-w20);D13=x*(W1-W3)*x+(w1-w3)*x+
9、(w10-w30);D23=x*(W2-W3)*x+(w2-w3)*x+(w20-w30);fprintf(一、二类决策界面方程为:)pretty(D12)fprintf(一、三类决策界面方程为:)pretty(D13)fprintf(二、三类决策界面方程为:)pretty(D23)DD1=x*W1*x+w1*x+w10;DD2=x*W2*x+w2*x+w20;DD3=x*W3*x+w3*x+w30;value=;fprintf( num2str(X(1) , num2str(X(2) 代入1-2决策面方程的值为:)v1=subs(DD1,x1,x2,X)fprintf( num2str(X(
10、1) , num2str(X(2) 代入1-3决策面方程的值为:)v2=subs(DD2,x1,x2,X)fprintf( num2str(X(1) , num2str(X(2) 代入2-3决策面方程的值为:)v3=subs(DD3,x1,x2,X)V=v1 v2 v3;fprintf(可见 num2str(X(1) , num2str(X(2) 属于第 num2str(find(V=max(V) 类。n)figurehold onh=ezplot(D12);set(h,Color,r)h=ezplot(D13);set(h,Color,b)h=ezplot(D23);set(h,Color,
11、y)plot(D1(1,:),D1(2,:),ko)plot(D2(1,:),D2(2,:),ks)plot(D3(1,:),D3(2,:),kp)plot(X(1),X(2),r*)title(分界限与样本点分布)1-2类决策面方程为:1-3类决策面方程为:2-3类决策面方程为:2、计算结果。从程序运行结果可以看出,带入三个判决函数略去相关项计算的值分别为、,可见属于第二类。分类界面参见如下图:图3 三类协方差不等分类结果图作业四:样本123456780215656702133445 用对分法编程上机,分成两类画出图形。解答:1、程序代码如下:clc,clear,close allExamp
12、leData=0,0,2,2,4,4,5,6,6,7,-4,-2,-3,-3,-5,1,0,0,-1,-1,-3; 6,5,5,3,4,3,1,2,1,0,3,2,2,0,2,1,-1,-2,-1,-3,-5;Data=0,2,1,5,6,5,6,7; 0,2,1,3,3,4,4,5;N=size(Data,2);Data=1:N;Data;G1=Data;G2=;N1=size(G1,2);N2=size(G2,2);X1=mean(G1,2);X1=X1(2:end);X2=0;0;E=N1*N2/N*(X1-X2)*(X1-X2);RE=;ZY=;LE=E;while LE=E LE=E
13、; n1=size(G1,2); e1=;for i=1:n1 g1=G1; g2=G2; g2=g2 g1(:,i); g1(:,i)=; nn1=size(g1,2); nn2=size(g2,2); x1=mean(g1,2);x1=x1(2:end); x2=mean(g2,2);x2=x2(2:end); ee1=nn1*nn2/N*(x1-x2)*(x1-x2); e1=e1;ee1;end E=max(e1); RE=RE;E; I=find(e1=E); nzy=G1(1,I); ZY=ZY;nzy;if LE=E G2=G2 G1(:,I); G1(:,I)=; endend
14、RE=(1:length(RE) ZY REfigureplot(G1(2,:),G1(3,:),o)hold onplot(G2(2,:),G2(3,:),*)2、对分法聚类结果。两类的标样本号分别为:第一类:1、2、3第二类:4、5、6、7、83、对分法聚类结果示意图:图4 对分法聚类结果图作业五:十个样本,每个样本2个特征,数据如下:样本1234567891001245561110113345456用K次平均算法和ISODATA算法分成3类,编程上机,并画出分类图。解答:1、K次平均算法程序代码如下:clc,clear,close allData=0 1 2 4 5 5 6 1 1 1;
15、0 1 1 3 3 4 5 4 5 6;K=3;N=size(Data,2);Data=1:N;Data;Z=Data(2:end,1:K); W=; LZ=;while isequal(Z,LZ) LZ=Z;for i=1:K Wi=;endfor i=1:N D=;for j=1:K d= sqrt(sum(Data(2:end,i)-Z(:,j).2); D=D;d;end I=find(D=min(D); WI(1)=WI(1) Data(1,i);end Z=;for i=1:K w=Wi; z=mean(Data(2:end,w),2); Z=Z z;endendZfigurebh
16、=o*s.dhp;for i=1:K w=Wi plot(Data(2,w),Data(3,w),bh(i); hold onend2、K次平均算法聚类结果。两类的标样本号分别为:第一类:1、2、3第二类:8、9、10第三类:4、5、6、73、K次平均算法聚类结果示意图:图5 K次平均算法聚类结果图4、ISODATA算法实现程序为从网上下载的代码,文件较长,参见附上的源代码。调用计算作业数据代码如下:clc,clear,close allX=0 1 2 4 5 5 6 1 1 1;Y=0 1 1 3 3 4 5 4 5 6;ON=1; OC=4; OS=1; k=4; L=1; I=10; N
17、O=1; min=50; centro, Xcluster, Ycluster, A, clustering=isodata(X, Y, k, L, I, ON, OC, OS, NO, min);clc;fprintf(聚成类的数目: %dn,A);figure;hold on;bh=o*s.dhp;for i=1:A, n=find(clustering=i); p=plot(X(n), Y(n),bh(i); title(A);end;fprintf(聚成类的数目: %dn,A);其中,预期的类数设为4才能得到分成3类的结果。5、ISODATA算法聚类结果。两类的标样本号分别为:第一类:1、2、3第二类:7、9、10第三类:4、5、6、86、ISODATA算法聚类结果示意图:图6 ISODATA算法聚类结果图13 / 13