您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 第4章-判别分析及MATLAB实现(2013)
第4章判别分析(discriminantanalysis)§4.1距离判别及MATLAB实现§4.2Bayes判别§4.3判别分析总结计算与应用数学系,中国石油大学(华东)理学院丁永臻2013统计方法(判别分析):判别分析—在已知研究对象分成若干类型,并已取得各种类型的一批已知样品的观测数据,在此基础上根据某些准则建立判别式,然后对未知类型的样品进行判别分类。距离判别法—首先根据已知分类的数据,分别计算各类的重心,计算新个体到每类的距离,确定最短的距离(欧氏距离、马氏距离)Fisher判别法—利用已知类别个体的指标构造判别式(同类差别较小、不同类差别较大),按照判别式的值判断新个体的类别Bayes判别法—计算新给样品属于各总体的条件概率,比较概率的大小,然后将新样品判归为来自概率最大的总体例(1989年国际数学竞赛A题)蠓的分类蠓是一种昆虫,分为很多类型,其中有一种名为Af,是能传播花粉的益虫;另一种名为Apf,是会传播疾病的害虫,这两种类型的蠓在形态上十分相似,很难区别.现测得6只Apf和9只Af蠓虫的触角长度和翅膀长度数据Apf:(1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96);Af:(1.24,1.72),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08).试判别以下的三个蠓虫属于哪一类?(1.24,1.8),(1.28,1.84),(1.4,2.04)第4章判别分析判别分析的基本思想是根据已知类别的样本所提供的信息,总结出分类的规律性,建立判别公式和判别准则,判别新的样本点所属类型。本章介绍距离判别分析、Bayes判别分析及其MATLAB软件的实现。4.1距离判别分析4.1.1判别分析的概念在一些自然科学和社会科学的研究中,研究对象用某种方法已划分为若干类型,当得到的一个新样品数据(通常是多元的),要确定该样品属于已知类型中的哪一类,这样的问题属于判别分析.从统计数据分析的角度,可概括为如下模型:设有k个总体,它们都是p元总体,其数量指标是1)若总体的分布函数是已知,对于任一新样品数据,判断它来自哪一个总体。12,,,kGGG12(,,,)TpXXXXiG12(,,,)Tpxxxx2)通常各个总体的分布是未知的,由从各个总体取得的样本(训练样本)来估计。一般,先估计各个总体的均值向量与协方差矩阵。iG原则:1.从统计学的角度,要求判别准则在某种准则下是最优的,例如错判的概率最小等。2.根据不同的判别准则,有不同的判别方法,这里主要介绍距离判别和Bayes判别4.1.2距离的定义1.闵可夫斯基距离设有n维向量称,),,,(,),,,(2121TnTnyyyyxxxxniiiyxyxd11||),(绝对距离称称为n维向量x,y之间的闵可夫斯基距离,其中为常数。niiiyxyxd122)(),(欧氏距离rniriiryxyxd/11)||(),(r(0)r显然,当r=2和1时闵可夫斯基距离分别为欧氏距离和绝对距离.(1)同一总体的两个向量之间的马氏距离其中为总体协方差矩阵,通常取为实对称正定矩阵.显然,当为单位矩阵时马氏距离就是欧氏距离.设有n维向量,则称1(,)()()Tdxyxyxy为n维向量x,y之间的马氏距离.1212(,,,),(,,,)TTnnxxxxyyyy2.马氏距离马氏距离是由印度统计学家马哈拉诺比斯(PCMahalanobis)提出的,由于马氏距离具有统计意义,在距离判别分析时经常应用马氏距离:(4.1.1)(2)一个向量到一个总体的马氏距离总体G的均值向量为μ,协方差矩阵为Σ.则称1(,G)()()Tdxxx为n维向量x与总体G的马氏距离.MATLAB中有一个命令:d=mahal(Y,X),计算X矩阵每一个点(行)至Y矩阵中每一个点(行)的马氏距离。其中Y的列数必须等于X的列数,但它们的行数可以不同。X的行数必须大于列数。输出d是距离向量。(4.1.2)(3)两个总体之间的马氏距离设有两个总体G1,G2,两个总体的均值向量分别为,协方差矩阵相等,皆为Σ,则两个总体之间的马氏距离为,121121212(G,G)()()Td通常,在判别分析时不采用欧氏距离的原因在于,该距离与量纲有关.例如平面上有A,B,C,D四个点,横坐标为代表重量(单位:kg),纵坐标代表长度(单位:cm),如下页图。(4.1.3)这时2222510125101101ABCD显然ABCD如果现在长度用mm为单位,重量的单位保持不变,于是A点的坐标为(0,50),B点的坐标为(0,100),此时计算线段的长度为222250102600100110001ABCD此时,ABCD这表明欧氏距离有一个缺陷,当向量的分量是不同的量纲时欧氏距离的大小竟然与指标的单位有关.而马氏距离则与量纲无关.4.1.3两总体的距离判别分析先考虑两个总体的情况。设,为两个不同的p元已知总体,的均值向量是,,的协方差矩阵是,.设是一个待判样品,距离判别准则为1GiGii12(,,,)Tmxxxx2GiG1,2i1,2i112212,(,)(,),.,(,)(,)xGdxGdxGxGdxGdxG若若(4.1.4)即当到的马氏距离不超过到的马氏距离时,判来自;反之,判来自.1Gx1G2Gx2G由于马氏距离与总体的协方差矩阵有关,所以利用马氏距离进行判别分析需要分别考虑两个总体的协方差矩阵是否相等.1.两个总体协方差矩阵相等的情况设有两个总体G1,G2,均值分别为,协方差矩阵相等为Σ。考虑样品x到两个总体的马氏距离平方差:,1222112122111111112221111111112221112211112121212(,)(,)()()()()22)2()2()()()12[(()2TTTTTTTTTTTTTTTdxGdxGxxxxxxxxxxxxx112112]()2()()TTx其中,令121()2112()()()TWxx于是距离判别准则为12,()0,()0xGWxxGWx(4.1.6)由于总体的均值、协方差矩阵通常是未知的,数据资料来自两个总体的训练样本,于是用样本的均值、样本的协方差矩阵代替总体的均值与协方差.注意:若S1,S2分别为两个样本的协方差矩阵,则在两个总体协方差矩阵相等时,总体的协方差矩阵估计量112212(1)(1)ˆ2nSnSSnn其中n1,n2分别为两个样本的容量.得到判别法则:(4.1.11)(4.1.9)matlab判别步骤:1.计算A、B两类的均值向量与协方差阵;ma=mean(A),mb=mean(B),S1=cov(A),S2=cov(B)2.计算总体的协方差矩阵2nnS)1n(S)1n(S212211其中n1,n2分别为两个样本的容量.3.计算未知样本x到A,B两类马氏平方距离之差d=(x-ma)S-1(x-ma)’-(x-mb)S-1(x-mb)’4.若d0,则x属于A类;若d0,则x属于B类上述公式可以化简为:W(x)=(ma-mb)S-1(x-(ma+mb)/2)’若W(x)0,x属于G1;若W(x)0,x属于G2注意:1.此处ma,mb都是行向量;2.当x是一个矩阵时,则用ones矩阵左乘(ma+mb)/2以后,方可与x相减.※Matlab中直接进行数据的判别分析命令为classify,其调用格式class=classify(sample,training,group,'type')例4.1.1(1989年国际数学竞赛A题)蠓的分类蠓是一种昆虫,分为很多类型,其中有一种名为Af,是能传播花粉的益虫;另一种名为Apf,是会传播疾病的害虫,这两种类型的蠓在形态上十分相似,很难区别.现测得6只Apf和9只Af蠓虫的触角长度和翅膀长度数据Apf:(1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96);Af:(1.24,1.72),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08).若两类蠓虫协方差矩阵相等,试判别以下的三个蠓虫属于哪一类?(1.24,1.8),(1.28,1.84),(1.4,2.04)解:假定两总体的协方差相等,源程序如下:apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.;1.28,2;1.30,1.96];af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];x=[1.24,1.8;1.28,1.84;1.4,2.04];%输入原始数据m1=mean(apf);m2=mean(af);s1=cov(apf);s2=cov(af);s=(5*s1+8*s2)/13;%计算样本均值与协方差矩阵fori=1:3W(i)=(x(i,:)-1/2*(m1+m2))*inv(s)*(m1-m2)';%计算判别函数值end;输出结果为:W=2.16401.35681.9802由判别准则(4.1.11)可知,三只蠓虫均属于Apf.直接调用MATLAB的判别分析命令classify。apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.;1.28,2;1.30,1.96];%总体apfaf=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];%总体aftraining=[apf;af];%合并两个总体形成训练集n1=size(apf,1);%总体apf中样本的行数n2=size(af,1);%总体af中样本的行数group=[ones(1,n1),2*ones(1,n2)]';%apf中样本与af中样本类属x=[1.24,1.8;1.28,1.84;1.4,2.04];%输入原始待判数据即sampleclass=classify(x,training,group)%判别分析输出结果为:class=111由判别准则(4.1.11)可知,三只蠓虫均属于Apf.2.两个总体协方差矩阵不相等x211111(,)()()TdxGxx212222(,)()()TdxGxx样品到两个总体的马氏距离平方分别为:222111222111()(,)(,)()()()()TTWxdxGdxGxxxx令则判别准则:12,()0,()0xGWxxGWx(4.1.13)),(),(21122211yyyyyyGymahalGymahalGmahalGmahalGGmahalGmahalG如待判,,,如,,,,如,当两个总体的协方差矩阵不等时,可以建立MATLAB的判别法如下:例4.1.2对例4.1.1的数据,假定两类总体的协方差矩阵不相等,重新判别上述三个蠓虫的类别.解:程序如下:apf=[1.14,1.78;1.18,1
本文标题:第4章-判别分析及MATLAB实现(2013)
链接地址:https://www.777doc.com/doc-2329655 .html