- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
簡单的利用Fisher准则函数获取最佳投影线的Matlab程序
简单的利用Fisher准则函数获取最佳投影线的Matlab程序
?????发现利用Fisher准则函数计算最佳投影方向的公式好像很简单,就写这个吧!
????? 这个Fisher法就是将高维空间中的样本投影到一维空间中,以降低复杂度。具体可以参见边肇祺、张学工著,清华大学出版社的《模式识别》(第二版)P87。
????? 用这种方法时使用到了几个概念:
????? 样本向量:样本向量是列向量,样本是d维空间中的点,因此它的位置可以用一个d维列向量表示;
????? 各类样本均值向量:一类中所有样本向量的均值,也是d维列向量;
????? 样本类内离散度矩阵:
????????? x为样本向量,mi为Ci类的均值向量,Si为Ci类的类内离散度矩阵。
????? 总类内离散度矩阵:Sw=S1+S2;
????? 利用Lagrange乘子法可以求出使Fisher准则函数取极大值的向量:
????? 这个向量指出了相对于Fisher准则函数最好的投影线方向。
????? 虽然推导出这个结果,破费了些周折,但是结果的形式还是相对比较简单的,所以用Matlab程序实现它应该不麻烦。
????? 最终的这个向量仅与总类内离散度矩阵和各类的均值向量有关,我们可以对类内离散度矩阵的表达式变一下形,使程序更容易写:
????? 这样的变形也许在数学上的意义不大,但是可以简化程序,使得类内离散度矩阵仅用一次矩阵乘法就可完成。
????? 以下程序在Matlab7.0.1下编写。
????? 在编写求解最佳投影线方向的代码之前,先得编写生成样本的函数,如下(为这个函数取名困扰了我很久,最后查字典得知样本是swatch,所以这个函数命名为createSwatch):
function swatch=createSwatch(xmin,xmax,ymin,ymax,num,varargin) xlen=abs(xmax-xmin); ylen=abs(ymax-ymin); if numel(varargin)0 isa(varargin{1},function_handle) ??? f=varargin{1}; else ??? f=@rand; end swatch=[xlen*f(1,num)+min(xmax,xmin);... ??? ylen*f(1,num)+min(ymax,ymin)];
????? 这次的实验是针对2D空间的样本,所以这个createSwatch函数用来产生2D空间的样本点。前四个参数xmin,xmax,ymin,ymax用来设定样本的横纵坐标的范围,第五个参数num用来指定产生的样本的个数,最后有一个可选的参数,用来传入一个函数句柄,用来自定义样本的分布率,默认使用rand,均匀分布。
????? 最后生成的num个样本以矩阵的形式返回,矩阵的一列代表一个样本,矩阵的第一行代表样本的横坐标,第二行代表样本的纵坐标。
????? 然后是计算最佳投影线方向的函数:
function w=JF(c1,c2) %利用Fisher准则函数确定最佳投影方向 %c1和c2分别为两类样本的样本矩阵 %得到样本矩阵的尺寸信息 %样本矩阵的行数代表样本的维数 %样本矩阵的列数代表样本的个数 size1=size(c1); size2=size(c2); %计算两类样本的均值向量 m1=sum(c1,2)/size1(2); m2=sum(c2,2)/size2(2); %样本向量减去均值向量 c1=c1-m1(:,ones(1,size1(2))); c2=c2-m2(:,ones(1,size2(2))); %计算各类的类内离散度矩阵 S1=c1*c1.; S2=c2*c2.; %计算总类内离散度矩阵 Sw=S1+S2; %计算最佳投影方向向量 w=Sw^-1*(m1-m2); %将向量长度变成1 w=w/sqrt(sum(w.^2));
????? 这个函数有两个参数c1,c2,分别是两个类别的样本矩阵;
????? 返回值w是一个2维单位列向量,用来指出最佳投影线的方向。
????? 最后编写一个测试用的脚本:
clear all; %定义两类样本的空间范围 x1min=2;x1max=6; y1min=-4,y1max=0; x2min=6,x2max=10; y2min=2,y2max=6; %产生两类2D空间的样本 c1=createSwatch(x1min,x1max,y1min,y1max,100); c2=createSwatch(x2min,x2max,y2min,y2max,
您可能关注的文档
最近下载
- 12 全国生态环境监测专业技术人员大比武理论试题集 第十二章 综合分析 .pdf VIP
- GB51004-2015建筑地基基础工程施工规范.doc VIP
- 致敏物质控制措施检查记录表.docx VIP
- 智慧水利大数据信息化集成服务平台建设综合解决方案.docx VIP
- 城市公共交通规划与运输(1).pptx VIP
- 14 全国生态环境监测专业技术人员大比武理论试题集 第十四章 理论考试试题真题 .pdf VIP
- 2023年南宁市青秀区总工会招聘考试真题.docx VIP
- 烟淄管道干线扩能改造工程 环境影响报告书.pdf VIP
- GB50391-2014:油田注水工程设计规范.pdf VIP
- 资源管理平台系统-技术方案.docx VIP
文档评论(0)