13 MATLAB判别分析

更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016

更多MATLAB数据分析视频请点击,或者在网易云课堂上搜索《MATLAB数据分析与统计》 http://study.163.com/course/courseMain.htm?courseId=1003615016

判别分析是对未知类别的样本进行归类的一种方法。虽然也是对样品进行分类,但它与聚类分析还是不同的。聚类分析的研究对象还没有分类,就是要根据抽样的样本进行分类,而判别分析的研究对象已经有了分类,只是根据抽样的样本建立判别公式和判别准则,然后根据这些判别公式和判别准则,判别未知类别的样品所属的类别。

 判别分析有着非常广泛的应用,比如在考古学上,根据出土物品判别墓葬年代,墓主人身份,性别;在医学上,根据患者的临床症状和化验结果判断患者疾病的类型;在经济上,根据各项经济发展指标判断一个国家经济发展水平所属的类型;在模式识别领域,用来进行文字识别,语音识别,指纹识别等。

 我们这章的主要内容是距离判别和贝叶斯判别

1.距离判别

1.1 马氏距离(Mahalanobis距离)

  马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的)并且是尺度无关的(scale-invariant),即独立于测量尺度。对于一个均值为μ,协方差矩阵为Σ的多变量向量,其马氏距离为sqrt( (x-μ)'Σ^(-1)(x-μ) )。

 定义x,y之间的平方马氏距离为

     d^2(x,y)=(x-y)'Σ^(-1)(x-y)

  定义x到总体G的平方马氏距离为

   d^2(x,G)=(x-μ)'Σ^(-1)(x-μ)

1.2 两总体距离判别

 设有两个p维总体G1和G2,分布的均值向量分布为u1,u2,协方差矩阵分别为Σ1>0,Σ2>0。现有一未知类别的样本x,试判断x的归属

 如果  d^2(x,G1)<d^2(x,G2),则x属于G1类

 如果 d^2(x,G1)>d^2(x,G2), 则x属于G2类

 d^2(x,G1) = d^2(x,G2),待判

1.3距离判别法的MATLAB实现

 MATLAB统计工具箱中提供了classify函数,用来对未知类别的样品进行判别,可以进行距离判别和先验分布为正态分布的贝叶斯判别。调用格式如下:

 <1> class=classify(sample,training,group)

  将sample中的每一个观测归入training中观测所在的某个组。输入参数sample是待判别的样本数据矩阵,training是用于构成判别函数的训练样本数据矩阵,他们的每一行对应一个观测,每一列对应一个变量,sample和training具有相同的列数。参数group是与training相应的分组变量,group和training具有相同的行数,group中的每一个元素指定了training中相应观测所在的组。group可以是一个分类变量、数值向量、字符串数组或字符串元胞数组。输出参数class是一个列向量,用来指定sample中个观测所在的组,class与group具有相同的数据类型。

 classify函数把group中的NaN或空字符串作为数据缺失数据,从而忽略training中相应的观测。

<2>class=classify(sample,training,group,type)

 可以通过type参数指定判别函数的类型,type的可能取值如下表:

type参数的可能取值

   说明

‘linear’

线性判别函数(默认情况)

‘diaglinear’

与‘linear’类似,此时用一个对角矩阵作为协方差矩阵的估计

‘quadratic’

二次判别函数

‘diagquadratic’

与‘quadratic’类似,此时用对角矩阵作为各个协方差矩阵的估计

‘mahalanobis’

各组的协方差矩阵不全相等并未知时的距离,此时分别得出各组的协方差矩阵的估计


<3>class=classify(sample,training,group,type,proir)

 可以通过prior参数指定各组的先验概率,默认情况下,各组先验概率相等。

<4>[class,err]=classify(........)

  返回基于training数据的误判概率的估计值

1.4 距离判别的例子

对21个破产的企业收集他们在破产前两年的年度财务数据,同时对25个财务良好的企业也收集同一时期的数据。数据涉及4个变量

x1=现金流量/总债务

x2=净收入/总资产

x3=流动资产/流动债务

x4=流动资产/净销售额


数据中,1组为破产企业,2组为非破产企业。现有4个未判企业,他们的相关数据位于表中的最后4行,根据距离判决法,对这4个未判企业进行判别。

%读取数据
%读取C2:F51范围的数据,即全部样本数据
sample = xlsread('企业.xls','C2:F51');

%读取C2:F47范围的数据,即已知组别的样本数据
training = xlsread('企业.xls','C2:F47');

%读取B2:B47范围的数据,即样本的分组信息

  • 23
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术提高效率

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值