您好,欢迎访问三七文档
1模式识别上机作业队别:研究生二队姓名:孙祥威学号:1120822作业一:1{(0,0),(0,1)},2{(1,0),(1,1)}。用感知器固定增量法求判别函数,设1(1,1,1)w,1k。写程序上机运行,写出判别函数,打出图表。解答:1、程序代码如下:clc,clearw=[001;011;-10-1;-1-1-1];W=[111];rowk=1;flag=1;flagS=zeros(1,size(w,1));k=0;whileflagfori=1:size(w,1)ifisempty(find(flagS==0))flag=0;break;endk=k+1;pb=w(i,:)*W';ifpb=0flagS(i)=0;W=W+rowk*w(i,:);elseflagS(i)=1;endendendW,kwp1=[00;01;];wp2=[10;11];plot(wp1(:,1),wp1(:,2),'o')3holdonplot(wp2(:,1),wp2(:,2),'*')holdony=-0.2:1/100:1.2;plot(1/3*ones(1,size(y)),y,'r-')axis([-0.251.25-0.251.25])2、判别函数。计算得到增广权矢量为*(3,0,1)Tw,故判别函数表达式为:1310x3、分类示意图:图1感知器算法分类结果图作业二:在下列条件下,求待定样本(2,0)Tx的类别,画出分界线,编程上机。1、二类协方差相等;2、二类协方差不等。训练样本号k123123特征1x112-1-1-24特征2x10-110-1类别12解答:经计算,两类的协方差矩阵不相等。设12()()PP,计算时相关项直接略去。1、计算时,参考书中P96页式(4-1-31)等。程序代码如下:clc,clear,closeallD1=[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));fori=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));fori=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=c1\I;ic2=c2\I;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;symsx1x2;x=[x1;x2];fprintf('决策界面方程为:')D=x'*(W1-W2)*x+(w1-w2)'*x+(w10-w20);pretty(D)fprintf('(2,0)代入决策面方程的值为:')value=subs(D,{x1,x2},[20])figureezplot(D)5holdonplot(D1(1,:),D1(2,:),'bo')plot(D2(1,:),D2(2,:),'ks')plot(2,0,'rp')运行结果显示,决策面方程为:11248180xxx。2、计算结果。从程序运行结果可以看出,(2,0)Tx带入决策界面方程值为96,可见属于第一类1。见下图:图2两类协方差不等分类结果图图中,黑色方块为第二类2,蓝色圆圈为第一类1,红色五角星即为要判断类别的(2,0)Tx。绿色交叉的两条直线即为决策面曲线。左上和右下为第一类,右上和左下为第二类。作业三:有训练集资料矩阵如下表所示,现已知,9N、1233NNN、2n、3M,试问,(2,2)TX应属于哪一类?训练样本号k123123123特征1x021-1-2-20016特征2x01010-1-2-1-2类别123要求:用两种解法:a、三类协方差不等;b、三类协方差相等。编程上机,画出三类的分界线。解答:经计算,三类的协方差矩阵不相等。设123()()()PPP,计算时相关项直接略去。1、计算时,参考书中P96页式(4-1-31)等。程序代码如下:clc,clear,closeallD1=[021;010;];D2=[-1-2-2;10-1;];D3=[001;-2-1-2];X=[-22];u1=mean(D1,2);u2=mean(D2,2);u3=mean(D3,2);c1=zeros(size(D1,1),size(D1,1));fori=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));fori=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));fori=1:size(D3,2)c3=c3+D3(:,i)*D3(:,i)';endc3=c3/size(D3,2)-u3*u3';I=eye(size(c1,1),size(c1,1));ic1=c1\I;ic2=c2\I;ic3=c3\I;W1=-0.5*ic1;W2=-0.5*ic2;W3=-0.5*ic3;w1=ic1*u1;w2=ic2*u2;7w3=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;symsx1x2real;x=[x1;x2];D12=x'*(W1-W2)*x+(w1-w2)'*x+(w10-w20);D13=x'*(W1-W3)*x+(w1-w3)'*x+(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(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=[v1v2v3];fprintf(['可见('num2str(X(1))','num2str(X(2))')属于第'num2str(find(V==max(V)))'类。\n'])figureholdonh=ezplot(D12);set(h,'Color','r')h=ezplot(D13);set(h,'Color','b')h=ezplot(D23);set(h,'Color','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类决策面方程为:8221211229633618240140737488355328xxxxxx1-3类决策面方程为:2121226612660xxxxx2-3类决策面方程为:222121122512627241802251799813685248xxxxxx2、计算结果。从程序运行结果可以看出,(2,0)Tx带入三个判决函数(略去()iP相关项)计算的值分别为-95.3521、-17.3521、-29.3521,可见属于第二类2。分类界面参见下图:图3三类协方差不等分类结果图作业四:样本123456781x021565672x02133445用对分法编程上机,分成两类画出图形。解答:91、程序代码如下:clc,clear,closeallExampleData=[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;whileLE=ELE=E;n1=size(G1,2);e1=[];fori=1:n1g1=G1;g2=G2;g2=[g2g1(:,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];endE=max(e1);RE=[RE;E];I=find(e1==E);nzy=G1(1,I);ZY=[ZY;nzy];ifLE=E10G2=[G2G1(:,I)];G1(:,I)=[];endendRE=[(1:length(RE))'ZYRE]figureplot(G1(2,:),G1(3,:),'o')holdonplot(G2(2,:),G2(3,:),'*')2、对分法聚类结果。两类的标样本号分别为:第一类:1、2、3第二类:4、5、6、7、83、对分法聚类结果示意图:图4对分法聚类结果图作业五:已知十个样本,每个样本2个特征,数据如下:样本123456789101x0124556111112x0113345456用K次平均算法和ISODATA算法分成3类,编程上机,并画出分类图。解答:1、K次平均算法程序代码如下:clc,clear,closeallData=[0124556111;0113345456];K=3;N=size(Data,2);Data=[1:N;Data];Z=Data(2:end,1:K);W={};LZ=[];while~isequal(Z,LZ)LZ=Z;fori=1:KW{i}=[];endfori=1:ND=[];forj=1:Kd=sqrt(sum((Data(2:end,i)-Z(:,j)).^2));D=[D;d];endI=find(D==min(D));W{I(1)}=[W{I(1)}Data(1,i)];endZ=[];fori=1:Kw=W{i};z=mean(Data(2:end,w),2);Z=[Zz];endendZfigurebh=['o''*''s''.''d''h''p'];fo
本文标题:模式识别上机作业
链接地址:https://www.777doc.com/doc-7332200 .html