基于Fisher准则线性分类器设计实验报告

来源:六年级 发布时间:2021-05-07 点击:

北京邮电大学模式识别实验 专业:××× 学生姓名:××× 指导教师:××× 完成时间:×××× 实验二:基于Fisher准则线性分类器设计 目录 一、实验类型 2 二、实验目的 2 三、实验条件 2 四、实验原理 2 五、实验内容 4 六、实验要求 7 七、实验结果 7 1、源代码 7 2、 决策面 11 3、 参数 11 决策面向量 11 阈值 11 样本点分类 11 八、 实验分析 13 1、 比例因子 13 2、语法障碍 13 一、实验类型 设计型:线性分类器设计(Fisher准则)
二、实验目的 本实验旨在让同学进一步了解分类器的设计概念,能够根据自己的设计对线性分类器有更深刻地认识,理解Fisher准则方法确定最佳线性分界面方法的原理,以及Lagrande乘子求解的原理。

三、实验条件 matlab软件 四、实验原理 线性判别函数的一般形式可表示成
其中 根据Fisher选择投影方向W的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,用以评价投影方向W的函数为:


上面的公式是使用Fisher准则求最佳法线向量的解,该式比较重要。另外,该式这种形式的运算,我们称为线性变换,其中式一个向量,是的逆矩阵,如是d维,和都是d×d维,得到的也是一个d维的向量。

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

以上讨论了线性判别函数加权向量W的确定方法,并讨论了使Fisher准则函数极大的d维向量 的计算方法,但是判别函数中的另一项尚未确定,一般可采用以下几种方法确定如
  或者   
  
或当与已知时可用
    ……  当W0确定之后,则可按以下规则分类,  
   
使用Fisher准则方法确定最佳线性分界面的方法是一个著名的方法,尽管提出该方法的时间比较早,仍见有人使用。

五、实验内容 已知有两类数据和二者的概率已知=0.6, =0.4。

中数据点的坐标对应一一如下:
数据:
x1 = 0.2331 1.5207 0.6499 0.7757 1.0524 1.1974 0.2908 0.2518 0.6682 0.5622 0.9023 0.1333 -0.5431 0.9407 -0.2126 0.0507 -0.0810 0.7315 0.3345 1.0650 -0.0247 0.1043 0.3122 0.6655 0.5838 1.1653 1.2653 0.8137 -0.3399 0.5152 0.7226 -0.2015 0.4070 -0.1717 -1.0573 -0.2099 x2 = 2.3385 2.1946 1.6730 1.6365 1.7844 2.0155 2.0681 2.1213 2.4797 1.5118 1.9692 1.8340 1.8704 2.2948 1.7714 2.3939 1.5648 1.9329 2.2027 2.4568 1.7523 1.6991 2.4883 1.7259 2.0466 2.0226 2.3757 1.7987 2.0828 2.0798 1.9449 2.3801 2.2373 2.1614 1.9235 2.2604 x3 = 0.5338 0.8514 1.0831 0.4164 1.1176 0.5536 0.6071 0.4439 0.4928 0.5901 1.0927 1.0756 1.0072 0.4272 0.4353 0.9869 0.4841 1.0992 1.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 数据点的对应的三维坐标为 x1 = 1.4010 1.2301 2.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.7909 1.3322 1.1466 1.7087 1.5920 2.9353 1.4664 2.9313 1.8349 1.8340 2.5096 2.7198 2.3148 2.0353 2.6030 1.2327 2.1465 1.5673 2.9414 x2 = 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.1833 0.8798 0.5592 0.5150 0.9983 0.9120 0.7126 1.2833 1.1029 1.2680 0.7140 1.2446 1.3392 1.1808 0.5503 1.4708 1.1435 0.7679 1.1288 x3 = 0.6210 1.3656 0.5498 0.6708 0.8932 1.4342 0.9508 0.7324 0.5784 1.4943 1.0915 0.7644 1.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 数据的样本点分布如下图:
图 1:样本点分布图 六、实验要求 1) 请把数据作为样本,根据Fisher选择投影方向的原则,使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,求出评价投影方向的函数,并在图形表示出来。并在实验报告中表示出来,并求使取极大值的。用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),属于哪个类别,并画出数据分类相应的结果图,要求画出其在上的投影。

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

七、实验结果 1、源代码 x1=[0.2331 1.5207 0.6499 0.7757 1.0524 1.1974 ... 0.2908 0.2518 0.6682 0.5622 0.9023 0.1333 ... -0.5431 0.9407 -0.2126 0.0507 -0.0810 0.7315 ... 0.3345 1.0650 -0.0247 0.1043 0.3122 0.6655 ... 0.5838 1.1653 1.2653 0.8137 -0.3399 0.5152 ... 0.7226 -0.2015 0.4070 -0.1717 -1.0573 -0.2099]'; y1=[2.3385 2.1946 1.6730 1.6365 1.7844 2.0155 ... 2.0681 2.1213 2.4797 1.5118 1.9692 1.8340 ... 1.8704 2.2948 1.7714 2.3939 1.5648 1.9329 ... 2.2027 2.4568 1.7523 1.6991 2.4883 1.7259 ... 2.0466 2.0226 2.3757 1.7987 2.0828 2.0798 ... 1.9449 2.3801 2.2373 2.1614 1.9235 2.2604]'; z1=[0.5338 0.8514 1.0831 0.4164 1.1176 0.5536 ... 0.6071 0.4439 0.4928 0.5901 1.0927 1.0756 ... 1.0072 0.4272 0.4353 0.9869 0.4841 1.0992 ... 1.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]'; %存储第一类点 x2=[1.4010 1.2301 2.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.7909 ... 1.3322 1.1466 1.7087 1.5920 2.9353 1.4664 ... 2.9313 1.8349 1.8340 2.5096 2.7198 2.3148 ... 2.0353 2.6030 1.2327 2.1465 1.5673 2.9414]'; y2=[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.1833 ... 0.8798 0.5592 0.5150 0.9983 0.9120 0.7126 ... 1.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.4342 ... 0.9508 0.7324 0.5784 1.4943 1.0915 0.7644 ... 1.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]'; %存储第二类点 Pw1=0.6 Pw2=0.4 %求第一类点的均值向量m1 m1x=mean(x1(:)) %全部平均 m1y=mean(y1(:)) %全部平均 m1z=mean(z1(:)) %全部平均 m1=[m1x m1y m1z] %求第二类点的均值向量m2 m2x=mean(x2(:)) %全部平均 m2y=mean(y2(:)) %全部平均 m2z=mean(z2(:)) %全部平均 m2=[m2x m2y m2z] %求第一类类内离散矩阵S1 S1=zeros(3,3) for i=1:36 S1=S1+([x1(i),y1(i),z1(i)]'-m1)*([x1(i),y1(i),z1(i)]'-m1)' end %求第二类类内离散矩阵S2 S2=zeros(3,3) for i=1:36 S2=S2+([x2(i),y2(i),z2(i)]'-m2)*([x2(i),y2(i),z2(i)]'-m2)' end %求总类内离散度矩阵Sw Sw=S1+S2 %求向量W* W=(inv(Sw))*(m1-m2) %画出决策面 x=0:.1:2.5 y=0:.1:3 [X,Y]=meshgrid(x,y) Z=(W(1)*X+W(2)*Y)/(-W(3)) mesh(X,Y,Z) %保持 hold on %透视决策面 hidden off %求第一类样品的投影值均值 Y1=0 for i=1:36 Y1=Y1+W'*[x1(i),y1(i),z1(i)]' end M1=Y1/36 %求第二类样品的投影值均值 Y2=0 for i=1:36 Y2=Y2+W'*[x2(i),y2(i),z2(i)]' end M2=Y2/36 %选取阈值Y0 Y0=(M1+M2)/2+(log(Pw1)/log(Pw2))/70 %判定未知样品类别 X1=[1,1.5,0.6]' if W'*X1>Y0 disp('点X1(1,1.5,0.6)属于第一类') plot3(1,0.5,0.6,'or') else disp('点X1(1,1.5,0.6)属于第二类') plot3(1,0.5,0.6,'ob') end X2=[1.2,1.0,0.55]' if W'*X2>Y0 disp('点X2(1.2,1.0,0.55)属于第一类') plot3(1.2,1.0,0.55,'or') else disp('点X2(1.2,1.0,0.55)属于第二类') plot3(1.2,1.0,0.55,'ob') end X3=[2.0,0.9,0.68]' if W'*X3>Y0 disp('点X3(2.0,0.9,0.68)属于第一类') plot3(2.0,0.9,0.68,'or') else disp('点X3(2.0,0.9,0.68)属于第二类') plot3(2.0,0.9,0.68,'ob') end X4=[1.2,1.5,0.89]' if W'*X4>Y0 disp('点X4(1.2,1.5,0.89)属于第一类') plot3(1.2,1.5,0.89,'or') else disp('点X4(1.2,1.5,0.89)属于第二类') plot3(1.2,1.5,0.89,'ob') end X5=[0.23,2.33,1.43]' if W'*X5>Y0 disp('点X5(0.23,2.33,1.43)属于第一类') plot3(0.23,2.33,1.43,'or') else disp('点X5(0.23,2.33,1.43)属于第二类') plot3(0.23,2.33,1.43,'ob') end 2、 决策面 图 2:决策面(红色代表第一类,蓝色代表第二类)
3、 参数 决策面向量 W = -0.0798 0.2005 -0.0478 阈值 Y0 = 0.1828 样本点分类 X1 = 1.0000 1.5000 0.6000 点X1(1,1.5,0.6)属于第一类 X2 = 1.2000 1.0000 0.5500 点X2(1.2,1.0,0.55)属于第二类 X3 = 2.0000 0.9000 0.6800 点X3(2.0,0.9,0.68)属于第二类 X4 = 1.2000 1.5000 0.8900 点X4(1.2,1.5,0.89)属于第二类 X5 = 0.2300 2.3300 1.4300 点X5(0.23,2.33,1.43)属于第一类 八、 实验分析 1、 比例因子 决策面向量W的比例因子并不影响判别函数。分析如下:
阈值:
判别函数:
可以证明,Y0与WT有关,所以当改变WT时,判别函数两边同时改变,所以WT并不影响判别函数。

2、语法障碍 由于之前不怎么接触matlab,所以此次实验做得比较漫长。为了方便程序进行矩阵的运算,我把原始数据由矩阵转化成一维向量,后面的求和运算相应的转化为循环结构实现。

推荐访问:
上一篇:中学毕业典礼发言
下一篇:各学科与信息技术巧妙“融合”

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有