一、基于Fisher准则线性分类器设计1、实验内容:已知有两类数据1和2二者的概率已知1)(p=,2)(p=。1中数据点的坐标对应一一如下:数据:x=2数据点的对应的三维坐标为x2=数据的样本点分布如下图:1)请把数据作为样本,根据Fisher选择投影方向W的原则,使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,求出评价投影方向W的函数,并在图形表示出来。并在实验报告中表示出来,并求使)(wJF取极大值的*w。用matlab完成Fisher线性分类器的设计,程序的语句要求有注释。2)根据上述的结果并判断(1,,),,,,,,,,,(,,),属于哪个类别,并画出数据分类相应的结果图,要求画出其在W上的投影。3)回答如下问题,分析一下W的比例因子对于Fisher判别函数没有影响的原因。2、实验代码x1=[将x1、x2、x3变为行向量x1=x1(:);x2=x2(:);x3=x3(:);%计算第一类的样本均值向量m1m1(1)=mean(x1);m1(2)=mean(x2);m1(3)=mean(x3);%计算第一类样本类内离散度矩阵S1S1=zeros(3,3);fori=1:36S1=S1+[-m1(1)+x1(i)-m1(2)+x2(i)-m1(3)+x3(i)]'*[-m1(1)+x1(i)-m1(2)+x2(i)-m1(3)+x3(i)];end%w2的数据点坐标x4=[计算第二类的样本均值向量m2m2(1)=mean(x4);m2(2)=mean(x5);m2(3)=mean(x6);%计算第二类样本类内离散度矩阵S2S2=zeros(3,3);fori=1:36S2=S2+[-m2(1)+x4(i)-m2(2)+x5(i)-m2(3)+x6(i)]'*[-m2(1)+x4(i)-m2(2)+x5(i)-m2(3)+x6(i)];end%总类内离散度矩阵SwSw=zeros(3,3);Sw=S1+S2;%样本类间离散度矩阵SbSb=zeros(3,3);Sb=(m1-m2)'*(m1-m2);%最优解WW=Sw^-1*(m1-m2)'%将W变为单位向量以方便计算投影W=W/sqrt(sum(W.^2));%计算一维Y空间中的各类样本均值M1及M2fori=1:36y(i)=W'*[x1(i)x2(i)x3(i)]';endM1=mean(y);fori=1:36y(i)=W'*[x4(i)x5(i)x6(i)]';endM2=mean(y);%利用当P(w1)与P(w2)已知时的公式计算W0p1=;p2=;W0=-(M1+M2)/2+(log(p2/p1))/(36+36-2);%计算将样本投影到最佳方向上以后的新坐标X1=[x1*W(1)+x2*W(2)+x3*W(3)]';X2=[x4*W(1)+x5*W(2)+x6*W(3)]';%得到投影长度XX1=[W(1)*X1;W(2)*X1;W(3)*X1];XX2=[W(1)*X2;W(2)*X2;W(3)*X2];%得到新坐标%绘制样本点figure(1);plot3(x1,x2,x3,'r*');%第一类holdonplot3(x4,x5,x6,'gp');%第二类legend('第一类点','第二类点');title('Fisher线性判别曲线');W1=5*W;%画出最佳方向line([-W1(1),W1(1)],[-W1(2),W1(2)],[-W1(3),W1(3)],'color','g');%判别已给点的分类a1=[1,,]';a2=[,,]';a3=[,,]';a4=[,,]';a5=[,,]';A=[a1a2a3a4a5];n=size(A,2);%下面代码在改变样本时可不修改%绘制待测数据投影到最佳方向上的点fork=1:nA1=A(:,k)'*W;A11=W*A1;%得到待测数据投影y=W'*A(:,k)+W0;%计算后与0相比以判断类别,大于0为第一类,小于0为第二类ify0plot3(A(1,k),A(2,k),A(3,k),'ro');%点为rp对应第一类plot3(A11(1),A11(2),A11(3),'ro');%投影为r+对应ro类elseplot3(A(1,k),A(2,k),A(3,k),'ch');%点为bh对应ch类plot3(A11(1),A11(2),A11(3),'ch');%投影为b*对应ch类endend%画出最佳方向line([-W1(1),W1(1)],[-W1(2),W1(2)],[-W1(3),W1(3)],'color','m');view([,30]);axis([-2,3,-1,3,,]);gridonholdoff3、实验结果根据求出最佳投影方向,然后按照此方向,将待测数据进行投影。为直观起见,我们将两步画在一张图上,如下:其中,红色的*是给出的第一类样本点,蓝色的五角星是第二类样本点。下方的实直线是最佳投影方向。待测数据投影在其上,圆圈是被分为第一类的样本点,十字是被分为第二类的样本点。使)(wJF取极大值的W=(,,)4、实验分析W的比例因子对于Fisher判别函数没有影响的原因:在本实验中,最需要的是W的方向,或者说是在此方向上数据的投影,那么W的比例因子,即它是单位向量的多少倍长就无关紧要了,不管比例因子有多大,在最后求投影时都会被消掉而起不到实际作用。二、Bayes分类器设计1、实验内容假定某个局部区域细胞识别中正常(1)和非正常(2)两类先验概率分别为正常状态:P(1)=;异常状态:P(2)=。现有一系列待观察的细胞,其观察值为x:已知先验概率是的曲线如下图:)|(1xp)|(2xp类条件概率分布正态分布分别为(-2,)(2,4)试对观察的结果进行分类。1)用matlab完成分类器的设计,要求程序相应语句有说明文字,要求有子程序的调用过程。2)根据例子画出后验概率的分布曲线以及分类的结果示意图。3)如果是最小风险贝叶斯决策,决策表如下:最小风险贝叶斯决策表:状态决策α106α210请重新设计程序,画出相应的后验概率的分布曲线和分类结果,并比较两个结果。2、实验代码最小错误率贝叶斯决策x=[%得到待测细胞个数pw1_x=zeros(1,m);%存放对w1的后验概率矩阵pw2_x=zeros(1,m);%存放对w2的后验概率矩阵results=zeros(1,m);%存放比较结果矩阵fori=1:m%计算在w1下的后验概率pw1_x(i)=(pw1*normpdf(x(i),e1,a1))/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));%计算在w2下的后验概率pw2_x(i)=(pw2*normpdf(x(i),e2,a2))/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));endfori=1:mifpw1_x(i)pw2_x(i)%比较两类后验概率result(i)=0;%正常细胞elseresult(i)=1;%异常细胞endenda=[-5::5];%取样本点以画图n=numel(a);pw1_plot=zeros(1,n);pw2_plot=zeros(1,n);forj=1:npw1_plot(j)=(pw1*normpdf(a(j),e1,a1))/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2));%计算每个样本点对w1的后验概率以画图pw2_plot(j)=(pw2*normpdf(a(j),e2,a2))/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2));endfigure(1);holdonplot(a,pw1_plot,'co',a,pw2_plot,'r-.');fork=1:mifresult(k)==0plot(x(k),,'cp');%正常细胞用五角星表示elseplot(x(k),,'r*');%异常细胞用*表示end;end;legend('正常细胞后验概率曲线','异常细胞后验概率曲线','正常细胞','异常细胞');xlabel('样本细胞的观察值');ylabel('后验概率');title('后验概率分布曲线');gridonreturn%实验内容仿真:x=[,,,,,,,,,,,,,,,,,,,,,,,]disp(x);pw1=;pw2=;[result]=bayes(x,pw1,pw2);最小风险贝叶斯决策x=[%得到待测细胞个数R1_x=zeros(1,m);%存放把样本X判为正常细胞所造成的整体损失R2_x=zeros(1,m);%存放把样本X判为异常细胞所造成的整体损失result=zeros(1,m);%存放比较结果e1=-2;a1=;e2=2;a2=2;%类条件概率分布px_w1:(-2,)px_w2(2,4)r11=0;r12=2;r21=4;r22=0;%风险决策表fori=1:m%计算两类风险值R1_x(i)=r11*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2))+r21*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));R2_x(i)=r12*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2))+r22*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));endfori=1:mifR2_x(i)R1_x(i)%第二类比第一类风险大result(i)=0;%判为正常细胞(损失较小),用0表示elseresult(i)=1;%判为异常细胞,用1表示endenda=[-5::5];%取样本点以画图n=numel(a);R1_plot=zeros(1,n);R2_plot=zeros(1,n);forj=1:nR1_plot(j)=r11*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))+r21*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))R2_plot(j)=r12*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))+r22*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))%计算各样本点的风险以画图endfigure(1);holdonplot(a,R1_plot,'co',a,R2_plot,'r-.');fork=1:mifresult(k)==0plot(x(k),,'cp');%正常细胞用五角星表示elseplot(x(k),,'r*');%异常细胞用*表示end;end;legend('正常细胞','异常细胞','Location','Best');xlabel('细胞分类结果');ylabel('条件风险');title('风险判决曲线');gridonreturn%实验内容仿真:x=[,,,,,,,,,,,,,,,,,,,,,,,]disp(x);pw1=;pw2=;[result]=bayes(x,pw1,pw2);3、实验结果最小错误率贝叶斯决策后验概率曲线:带红色