基于Fisher准则线性分类器设计

  • 格式:doc
  • 大小:127.16 KB
  • 文档页数:7

基于Fisher 准则线性分类器设计一、实验目的:1.进一步了解分类器的设计概念2.能够根据自己的设计对线性分类器有更深刻地认识3.理解Fisher 准则方法确定最佳线性分界面方法的原理及Lagrande 乘子求解的原理二、实验条件:matlab 软件三、实验原理:线性判别函数的一般形式可表示成0)(w X W X g T += 其中⎪⎪⎪⎭⎫ ⎝⎛=d x x X 1 ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=d w w w W 21 根据Fisher 选择投影方向W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,用以评价投影方向W 的函数为:2221221~~)~~()(S S m m W J F +-= )(211*m m S W W -=-上面的公式是使用Fisher 准则求最佳法线向量的解,该式比较重要。

另外,该式这种形式的运算,我们称为线性变换,其中21m m -式一个向量,1-W S 是W S 的逆矩阵,如21m m -是d 维,W S 和1-W S 都是d ×d 维,得到的*W 也是一个d 维的向量。

向量*W 就是使Fisher 准则函数)(W J F 达极大值的解,也就是按Fisher 准则将d 维X 空间投影到一维Y 空间的最佳投影方向,该向量*W 的各分量值是对原d 维特征向量求加权和的权值。

以上讨论了线性判别函数加权向量W 的确定方法,并讨论了使Fisher 准则函数极大的d 维向量*W 的计算方法,但是判别函数中的另一项0W 尚未确定,一般可采用以下几种方法确定0W 如 2~~210m m W +-=或者 m N N m N m N W ~~~2122110=++-= 或当1)(ωp 与2)(ωp 已知时可用[]⎥⎦⎤⎢⎣⎡-+-+=2)(/)(ln 2~~2121210N N p p m m W ωω ……当W 0确定之后,则可按以下规则分类,2010ωω∈→->∈→->X w X W X w X W T T使用Fisher 准则方法确定最佳线性分界面的方法是一个著名的方法,尽管提出该方法的时间比较早,仍见有人使用。

四、实验内容:已知有两类数据1ω和2ω二者的概率已知1)(ωp =0.6,2)(ωp =0.4。

1ω中数据点的坐标对应一一如下:数据:x =0.2331 1.5207 0.6499 0.7757 1.0524 1.19740.2908 0.2518 0.6682 0.5622 0.9023 0.1333-0.5431 0.9407 -0.2126 0.0507 -0.0810 0.73150.3345 1.0650 -0.0247 0.1043 0.3122 0.66550.5838 1.1653 1.2653 0.8137 -0.3399 0.51520.7226 -0.2015 0.4070 -0.1717 -1.0573 -0.2099y =2.3385 2.1946 1.6730 1.6365 1.7844 2.01552.0681 2.1213 2.4797 1.5118 1.9692 1.83401.87042.2948 1.7714 2.3939 1.5648 1.93292.2027 2.4568 1.7523 1.6991 2.4883 1.72592.0466 2.0226 2.3757 1.7987 2.0828 2.07981.94492.3801 2.2373 2.1614 1.9235 2.2604z =0.5338 0.8514 1.0831 0.4164 1.1176 0.55360.6071 0.4439 0.4928 0.5901 1.0927 1.07561.0072 0.4272 0.4353 0.9869 0.4841 1.09921.0299 0.7127 1.0124 0.4576 0.8544 1.1275 0.7705 0.4129 1.0085 0.7676 0.8418 0.8784 0.9751 0.7840 0.4158 1.0315 0.7533 0.9548 数据点的对应的三维坐标为2x2 =1.4010 1.23012.0814 1.1655 1.3740 1.1829 1.7632 1.9739 2.4152 2.5890 2.8472 1.9539 1.2500 1.2864 1.2614 2.0071 2.1831 1.79091.3322 1.1466 1.7087 1.59202.9353 1.46642.9313 1.8349 1.8340 2.5096 2.7198 2.3148 2.0353 2.6030 1.2327 2.1465 1.5673 2.9414y2 =1.0298 0.9611 0.9154 1.4901 0.8200 0.9399 1.1405 1.0678 0.8050 1.2889 1.4601 1.4334 0.7091 1.2942 1.3744 0.9387 1.2266 1.18330.8798 0.5592 0.5150 0.9983 0.9120 0.71261.2833 1.1029 1.2680 0.7140 1.2446 1.3392 1.1808 0.5503 1.4708 1.1435 0.7679 1.1288 z2 =0.6210 1.3656 0.5498 0.6708 0.8932 1.43420.9508 0.7324 0.5784 1.4943 1.0915 0.76441.2159 1.3049 1.1408 0.9398 0.6197 0.6603 1.3928 1.4084 0.6909 0.8400 0.5381 1.3729 0.7731 0.7319 1.3439 0.8142 0.9586 0.7379 0.7548 0.7393 0.6739 0.8651 1.3699 1.1458数据的样本点分布如下图:-23五、实验步骤:1.把数据作为样本,根据Fisher 选择投影方向W 的原则,使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,求出评价投影方向W 的函数,并在图形表示出来。

并在实验报告中表示出来,并求使)(w J F 取极大值的*w 。

用matlab 完成Fisher 线性分类器的设计,程序的语句要求有注释。

2.根据上述的结果并判断(1,1.5,0.6)(1.2,1.0,0.55),(2.0,0.9,0.68),(1.2,1.5,0.89),(0.23,2.33,1.43),属于哪个类别,并画出数据分类相应的结果图,画出其在W 上的投影。

3.回答如下问题,分析一下W 的比例因子对于Fisher 判别函数没有影响的原因。

六、实验代码%w1中数据点的坐标x1 =[0.2331 1.5207 0.6499 0.7757 1.0524 1.19740.2908 0.2518 0.6682 0.5622 0.9023 0.1333-0.5431 0.9407 -0.2126 0.0507 -0.0810 0.73150.3345 1.0650 -0.0247 0.1043 0.3122 0.66550.5838 1.1653 1.2653 0.8137 -0.3399 0.51520.7226 -0.2015 0.4070 -0.1717 -1.0573 -0.2099];x2 =[2.3385 2.1946 1.6730 1.6365 1.7844 2.01552.0681 2.1213 2.4797 1.5118 1.9692 1.83401.87042.2948 1.7714 2.3939 1.5648 1.93292.2027 2.4568 1.7523 1.6991 2.4883 1.72592.0466 2.0226 2.3757 1.7987 2.0828 2.07981.94492.3801 2.2373 2.1614 1.9235 2.2604];x3 =[0.5338 0.8514 1.0831 0.4164 1.1176 0.55360.6071 0.4439 0.4928 0.5901 1.0927 1.07561.0072 0.4272 0.4353 0.9869 0.4841 1.09921.0299 0.7127 1.0124 0.4576 0.8544 1.12750.7705 0.4129 1.0085 0.7676 0.8418 0.87840.9751 0.7840 0.4158 1.0315 0.7533 0.9548];%将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);for i=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 =[1.4010 1.2301 2.0814 1.1655 1.3740 1.18291.7632 1.97392.4152 2.5890 2.8472 1.95391.2500 1.2864 1.26142.0071 2.1831 1.79091.3322 1.1466 1.7087 1.59202.9353 1.46642.9313 1.8349 1.8340 2.5096 2.7198 2.31482.0353 2.6030 1.2327 2.1465 1.5673 2.9414];x5 =[1.0298 0.9611 0.9154 1.4901 0.8200 0.93991.1405 1.0678 0.8050 1.2889 1.4601 1.43340.7091 1.2942 1.3744 0.9387 1.2266 1.18330.8798 0.5592 0.5150 0.9983 0.9120 0.71261.2833 1.1029 1.2680 0.7140 1.2446 1.33921.1808 0.5503 1.4708 1.1435 0.7679 1.1288];x6 =[0.6210 1.3656 0.5498 0.6708 0.8932 1.43420.9508 0.7324 0.5784 1.4943 1.0915 0.76441.2159 1.3049 1.1408 0.9398 0.6197 0.66031.3928 1.4084 0.6909 0.8400 0.5381 1.37290.7731 0.7319 1.3439 0.8142 0.9586 0.73790.7548 0.7393 0.6739 0.8651 1.3699 1.1458];x4=x4(:);x5=x5(:);x6=x6(:);%计算第二类的样本均值向量m2m2(1)=mean(x4);m2(2)=mean(x5);m2(3)=mean(x6);%计算第二类样本类内离散度矩阵S2S2=zeros(3,3);for i=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及M2for i=1:36y(i)=W'*[x1(i) x2(i) x3(i)]';endM1=mean(y)for i=1:36y(i)=W'*[x4(i) x5(i) x6(i)]';endM2=mean(y)%利用当P(w1)与P(w2)已知时的公式计算W0p1=0.6;p2=0.4;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*') %第一类hold onplot3(x4,x5,x6,'bp') %第二类legend('第一类点','第二类点')title('Fisher线性判别曲线')W1=5*W;%画出最佳方向line([-W1(1),W1(1)],[-W1(2),W1(2)],[-W1(3),W1(3)],'color','b');%判别已给点的分类a1=[1,1.5,0.6]';a2=[1.2,1.0,0.55]';a3=[2.0,0.9,0.68]';a4=[1.2,1.5,0.89]';a5=[0. 23,2.33,1.43]';A=[a1 a2 a3 a4 a5]n=size(A,2);%下面代码在改变样本时都不必修改%绘制待测数据投影到最佳方向上的点for k=1:nA1=A(:,k)'*W;A11=W*A1;%得到待测数据投影y=W'*A(:,k)+W0;%计算后与0相比以判断类别,大于0为第一类,小于0为第二类if y>0plot3(A(1,k),A(2,k),A(3,k),'go'); %点为"rp"对应第一类plot3(A11(1),A11(2),A11(3),'go'); %投影为"r+"对应go类elseplot3(A(1,k),A(2,k),A(3,k),'m+'); %点为"bh"对应m+类plot3(A11(1),A11(2),A11(3),'m+'); %投影为"b*"对应m+类endend%画出最佳方向line([-W1(1),W1(1)],[-W1(2),W1(2)],[-W1(3),W1(3)],'color','k');view([-37.5,30]);axis([-2,3,-1,3,-0.5,1.5]);grid onhold off七、实验结果根据求出的最佳投影方向,然后将待测数据按照此方向进行投影,数据的样本点分布如下:其中,第一类样本点是红色的星号表示,第二类样本点是蓝色的五角星。