第七章判别分析..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
判别分析 (Discriminant Analysis) 在实际工作中,我们经常遇到分类问题。在古老的分类学中,人们主要依靠经验和专业知识,很少用到数学。随着科学技术的发展,产生了数值分类学。一般地,若事先已经建立类别,则使用判别分析,若事先没有建立类别,则使用聚类分析。 判别分析在生物学、医学、地质学、石油、气象等领域得到较为广泛的应用。 (一)协方差矩阵 设是一个二维随机变量,又,则称为与的协方差,记作。 例如,在Matlab软件包中写一个名字为opt_cov_1的M—文件: x=[1 2 3]; y=[3 2 1]; cov(x,y) 存盘后按F5键执行,得到结果: ans = 1 -1 -1 1 设是n维随机变量,定义,则称 为的协方差矩阵。 (二)基本数学原理 判别分析是利用原有的分类信息,得到判别函数(判别函数是这种分类的函数关系式,一般是与分类相关的若干个指标的线性关系式),然后利用该函数去判断未知样品属于哪一类。因此,这是一个学习和预测的过程。 常用的判别分析法有距离判别法、费歇尔判别法、贝叶斯判别法等。 (1)距离判别法 距离判别法有欧氏距离法和马氏距离法等。其中,欧氏距离法比较粗糙,Matlab软件包中采用的是马氏距离法。 假设共有n个指标,第个指标共测得m个数据(要求): 于是,我们得到阶的数据矩阵,每一行是一个样本数据。阶数据矩阵X的阶协方差矩阵记作。 求n维向量到m×n矩阵X的马氏距离 定义 ,则n维向量到m×n矩阵X的马氏距离的公式如下: 其中,表示第个指标的算术平均值。 ②矩阵X到自身的马氏距离,相当于矩阵X的每一行到X的马氏距离,记作。做这种运算可以求出矩阵X的异常值。 注意:马氏距离法没有考虑样本指标值的分布。 例1 有8×3数据矩阵如下: x = [ 0.052,0.084,0.021;0.037,0.0071,0.022;0.041,0.055,0.11;0.11,0.021,0.0073; 0.030,0.112,0.072;0.16,0.056,0.021;0.074,0.083,0.105;0.19,0.02,1] 在Matlab软件包中输入以下程序: x = [ 0.052,0.084,0.021;0.037,0.0071,0.022;0.041,0.055,0.11;0.11,0.021,0.0073; 0.030,0.112,0.072;0.16,0.056,0.021;0.074,0.083,0.105;0.19,0.02,1] d = mahal(x, x) 执行后得到 d = 0.6998 3.9050 0.8310 1.8819 2.7672 4.2424 0.5991 6.0735 可见,矩阵X中第二行、第五行、第六行、第八行数据异常。 (2)费歇尔判别法 该法是以费歇尔准则为标准来评选判别函数的。所谓费歇尔准则,指的是较优的判别函数应该能根据待判对象的n个指标最大限度的将它所属的类与其它类区分开来。一般采用线性函数作为判别函数。基本方法是:首先假定一个线性的判别函数,然后根据已知信息对判别函数进行训练,得到函数关系式中的系数,从而最终确定判别函数。该法有时会使误判次数增加,但由于使用的是线性函数,所以使用起来也比较方便。 (3)贝叶斯判别法 贝叶斯判别法是一种概率方法,它的好处是可以从分利用先验信息,可以考虑专家的意见。应用此方法,需要事先假定样本指标值的分布(例如,多元正态分布等)。 在Matlab软件包中,将已经分类的m个数据(长度为n)作为行向量,得到一个矩阵training,每行都属于一个分类类别,由它构成一个整数列向量g(共有m行),待分类的k个数据(长度为n)作为行向量,得到一个矩阵sample,然后利用classify函数进行线性判别分析(默认)。它的格式为:classify(sample, training, group),其中,sample与training必须具有相同的列数,group与training必须具有相同的行数,group是一个整数向量。Matlab内部函数classify的功能是将sample 的每一行进行判别,分到training指定的类中。进一步,较复杂的格式为:[class, err]= classify (sample, training, group, type) 其中,class返回分类表,err返回误差比例信息,sample是样本数据矩阵,training是已有的分类数据矩阵,group是分类列向量,type有3种选择: type = line

文档评论(0)

cwhs + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档