下载此文档

fisher算法及其matlab实现.doc


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
Fisher 判别法讲解以及 matlab 代码实现两类的线形判别问题可以看作是把所有样本都投影到一个方向上,然后在这个一维空间中确定一个分类的阈值。过这个预置点且与投影方向垂直的超平面就是两类的分类面。第一个问题,如何确定投影方向? X ={x1,x2...xn}, 每个样本是一个 d维向量,其中第一类 w1={ 11x , 12x ... 11nx },第二类 w2={ 21x , 22x ... 22nx }。我们要寻求一个投影方向 w(w也是一个 d维向量),投影以后样本变成: iy = i Txw (y 是一个标量), i=1...n 在原样本空间中,类均值为: ??? ijwx ji ixn m 1 i=1,2( 一共两类的均值) ( ps. im 是一个 d*1 的矩阵,假设每个维度是一个变量值, mi中的每一维度就是这些变量值的均值,如下图所示:图1 特别注明: 有些例子给的矩阵是这样的: 图2 这里的单个样本是 1*d 的矩阵,要注意计算的时候将其转置,不然套用 fisher 算法公式的时候就会发现最后得到的矩阵维数不对。定义各类类内的离散度矩阵为:(类内离散度矩阵其实就是类协方差矩阵,类在多于一个样本,且样本维度>1时是一个矩阵) ????? ijwx TijijimxmxS) )(( (因为, jx 是一个 d*1 的矩阵,也可称作 d维向量, im 也是一个 d*1 的矩阵, 所以最后得到的 iS 一定是一个 d*d 的矩阵) (在用 matlab 计算的时候直接用 cov ( wi)即可得到想要的协方差矩阵,故直接计算不探究细节时图 2可直接 cov 算协方差,不用根据公式转置来转置去,不过 matlab 中算的协方差被缩小了( n1-1 )倍,计算时 iS =cov ( w1 )*( n1-1 )) 总的类内离散度矩阵: 21SSS w??类间离散度矩阵定义为: T bmmmmS) )(( 2121???在投影以后的一维空间里,两类的均值分别是; i Twx j Ti wy ii iimwxwN yN m ijij???????11 i=1,2 故类内离散度不再是一个矩阵,而是一个值???? ijwy iii iimyS 2)( i=1 , 2 总类内离散度为: 11 11SSS ww??类间离散度: 2 11 11)(mmS bb??要使得需求的方向投影能在投影后两类能尽可能的分开,而各类内部又尽可能的聚集,可表示成如下准则,即 fisher 准则: ww bbS SwJ?)( max 将公式代入并通过拉格朗日求极值的方法,可得投影方向: )( 21 1mmSw w???(w是一个 d*1 的矩阵,或者说亦是一个 d维向量) 阈值可表示为: )(2 1 22 11 0mmw???最后将待确定样本代入 0)(wxwxg T??判断)(xg 的符号和哪个类相同,确定其属于哪个类别。例子(注意表格中所给的样本维度和公式中变量维度的问题) 代码已经运行无误代码: % 读取 excel 中特定单元格的数据 w12=xlsread( 'E:\ 模式识别\ 理论学****39; , 'C2:F16' ); % 分别选取类 1 和类 2 、测试样本的数据 w1=w12(1:5,:);

fisher算法及其matlab实现 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人yzhlyb
  • 文件大小114 KB
  • 时间2017-02-20