1、1实验二 感知器准则与 Fisher 算法实验1、 【实验目的】贝叶斯分类方法是基于后验概率的大小进行分类的方法,有时需要进行概率密度函数的估计,而概率密度函数的估计通常需要大量样本才能进行,随着特征空间维数的增加,这种估计所需要的样本数急剧增加,使计算量大增。 在实际问题中,人们可以不去估计概率密度,而直接通过与样本和类别标号有关的判别函数来直接将未知样本进行分类。这种思路就是判别函数法,最简单的判别函数是线性判别函数。采用判别函数法的关键在于利用样本找到判别函数的系数,模式识别课程中的感知器算法是一种求解判别函数系数的有效方法。本实验的目的是通过编制程序,实现感知器准则算法,并实现线性可分
2、样本的分类。本实验通过编制程序让初学者能够体会 Fisher 线性判别的基本思路,理解线性判别的基本思想,掌握 Fisher 线性判别问题的实质。2、实验内容1实验所用样本数据如表 2-1 给出(其中每个样本空间(数据)为两维,x 1 表示第一维的值、x 2 表示第二维的值) ,编制程序实现 1、 2 类 2、 3 类的分类。分析分类器算法的性能。 具体要求 1、复习感知器算法; 2、写出实现批处理感知器算法的程序 1)从 a=0 开始,将你的程序应用在 1 和 2 的训练数据上。记下收敛的步数。 2)将你的程序应用在 2 和 3 类上,同样记下收敛的步数。 3)试解释它们收敛步数的差别。 3
3、、提高部分:3 和 4 的前 5 个点不是线性可分的,请手工构造非线性映射,使这些点在映射后的特征空间中是线性可分的,并对它们训练一个感2知器分类器。分析这个分类器对剩下的(变换后的)点分类效果如何? 2 Fisher 准则下面表样本数据中的类别 1 和 2 计算最优方向 W。画出最优方向 W 的直线,并标记出投影后的点在直线上的位置。 3、 【实验原理】线性判别函数的一般形式可表示成其中0)(wXWgTdwW 21dxX 1根据 Fisher 选择投影方向 W 的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,用以评价投影方向 W 的函数为: 21
4、)()SmJF)(21*W上面的公式是使用 Fisher 准则求最佳法线向量的解,该式比较重要。另外,该式这种形式的运算,我们称为线性变换,其中 21m式一个向量, 是 的逆矩阵,如1WS是 d 维, 和 都是 dd 维,得到的 也是一个 d 维的向量。21mWS1*向量 就是使 Fisher 准则函数 达极大值的解,也就是按 Fisher 准则将 d 维* )(JF3X 空间投影到一维 Y 空间的最佳投影方向,该向量 的各分量值是对原 d 维特征向量求加*W权和的权值。以上讨论了线性判别函数加权向量 W 的确定方法,并讨论了使 Fisher 准则函数极大的d 维向量 *W 的计算方法,但是判
5、别函数中的另一项 尚未确定,一般可采用以下几种0方法确定 如0210m或者 NW210 或当 与 已知时可用1)(p2)(/ln21210Npm当 W0 确定之后,则可按以下规则分类,201XwWT使用 Fisher 准则方法确定最佳线性分界面的方法是一个著名的方法,尽管提出该方法的时间比较早,仍见有人使用。4、 【实验内容:】1实验所用样本数据如表 2-1 给出(其中每个样本空间(数据)为两维,x 1 表示第一维的值、x 2 表示第二维的值) ,编制程序实现 1、 2 类 2、 3 类的分类。分析分类器算法的性能。 具体要求 1、复习感知器算法; 2、写出实现批处理感知器算法的程序 1)从
6、a=0 开始,将你的程序应用在 1 和 2 的训练数据上。记下收敛的步数。 2)将你的程序应用在 2 和 3 类上,同样记下收敛的步数。 3)试解释它们收敛步数的差别。 43、提高部分:3 和 4 的前 5 个点不是线性可分的,请手工构造非线性映射,使这些点在映射后的特征空间中是线性可分的,并对它们训练一个感知器分类器。分析这个分类器对剩下的(变换后的)点分类效果如何? 5、 【实验程序及结果:】(1) 线性判别函数【源程序:】clearw1=0.1 6.8 -3.5 2.0 4.1 3.1 -0.8 0.9 5.0 3.9;1.1 7.1 -4.1 2.7 2.8 5.0 -1.3 1.2
7、6.4 4.0;w2=7.1 -1.4 4.5 6.3 4.2 1.4 2.4 2.5 8.4 4.1;4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -6.1 3.7 -2.2;w3=-3.0 0.5 2.9 -0.1 -0.4 -1.3 -3.4 1 -5.1 1.9;-2.9 8.7 2.1 5.2 2.2 3.7 6.2 3.4 1.6 5.1;ww1=ones(1,size(w1,2);w1;ww2=ones(1,size(w2,2);w2;ww3=ones(1,size(w3,2);w3;w12=ww1,-ww2;y=zeros(1,size(w12,2);a=1;1
8、;1;k=0;while any(y0plot3(A(1,k),A(2,k),A(3,k),go); %点为“rp“对应第一类 plot3(A11(1),A11(2),A11(3),go); %投影为“r+“对应go类else plot3(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【实验结果:】9【实验分析】的比例因子对于 Fisher 判别函数没有影响的原因:W在本实验中,最需要是在此方向上数据的投影,那么 W 的比例因子,即它是单位向量的多少倍长就无关紧要了。