您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > MATLAB数据分析方法-(3)
1/24MATLAB数据分析方法(机械工业出版社)第4章判别分析普通高等院校计算机课程规划教材MATLAB数据分析方法李柏年吴礼斌主编张孔生丁华参编2/24MATLAB数据分析方法(机械工业出版社)第4章判别分析第4章判别分析判别分析的基本思想是根据已知类别的样本所提供的信息,总结出分类的规律性,建立判别公式和判别准则,判别新的样本点所属类型。本章介绍距离判别分析、Bayes判别分析极其MATLAB软件的实现。4.1距离判别分析4.1.1判别分析的概念在一些自然科学和社会科学的研究中,研究对象用某种方法已划分为若干类型,当得到的一个新样品数据(通常是多元的),要确定该样品属于已知类型中的哪一类,这样的问题属于判别分析.3/24MATLAB数据分析方法(机械工业出版社)第4章判别分析从统计数据分析的角度,可概括为如下模型:设有k个总体,它们都是p元总体,其数量指标是1)若总体的分布函数是已知,对于任一新样品数据,判断它来自哪一个总体。12,,,kGGG12(,,,)TpXXXXiG12(,,,)Tpxxxx2)通常各个总体的分布是未知的,由从各个总体取得的样本(训练样本)来估计。一般,先估计各个总体的均值向量与协方差矩阵。iG4/24MATLAB数据分析方法(机械工业出版社)第4章判别分析原则:1.从统计学的角度,要求判别准则在某种准则下是最优的,例如错判的概率最小等。2.根据不同的判别准则,有不同的判别方法,这里主要介绍距离判别和Bayes判别4.1.2距离的定义1.闵可夫斯基距离设有n维向量称,),,,(,),,,(2121TnTnyyyyxxxxniiiyxyxd11||),(绝对距离5/24MATLAB数据分析方法(机械工业出版社)第4章判别分析称称为n维向量x,y之间的闵可夫斯基距离,其中为常数。niiiyxyxd122)(),(欧氏距离rniriiryxyxd/11)||(),(r(0)r显然,当r=2和1时闵可夫斯基距离分别为欧氏距离和绝对距离.6/24MATLAB数据分析方法(机械工业出版社)第4章判别分析(1)同一总体的两个向量之间的马氏距离其中为总体协方差矩阵,通常取为实对称正定矩阵.显然,当为单位矩阵时马氏距离就是欧氏距离.设有n维向量,则称1(,)()()Tdxyxyxy为n维向量x,y之间的马氏距离.1212(,,,),(,,,)TTnnxxxxyyyy2.马氏距离马氏距离是由印度统计学家马哈拉诺比斯(PCMahalanobis)提出的,由于马氏距离具有统计意义,在距离判别分析时经常应用马氏距离:(4.1.1)7/24MATLAB数据分析方法(机械工业出版社)第4章判别分析(2)一个向量到一个总体的马氏距离总体G的均值向量为μ,协方差矩阵为Σ.则称1(,G)()()Tdxxx为n维向量x与总体G的马氏距离.MATLAB中有一个命令:d=mahal(Y,X),计算X矩阵每一个点(行)至Y矩阵中每一个点(行)的马氏距离。其中Y的列数必须等于X的列数,但它们的行数可以不同。X的行数必须大于列数。输出d是距离向量。(4.1.2)8/24MATLAB数据分析方法(机械工业出版社)第4章判别分析(3)两个总体之间的马氏距离设有两个总体G1,G2,两个总体的均值向量分别为,协方差矩阵相等,皆为Σ,则两个总体之间的马氏距离为,121121212(G,G)()()Td通常,在判别分析时不采用欧氏距离的原因在于,该距离与量纲有关.例如平面上有A,B,C,D四个点,横坐标为代表重量(单位:kg),纵坐标代表长度(单位:cm),如下页图。(4.1.3)9/24MATLAB数据分析方法(机械工业出版社)第4章判别分析这时2222510125101101ABCD显然ABCD如果现在长度用mm为单位,重量的单位保持不变,于是A点的坐标为(0,50),B点的坐标为(0,100),此时计算线段的长度为222250102600100110001ABCD此时,ABCD10/24MATLAB数据分析方法(机械工业出版社)第4章判别分析这表明欧氏距离有一个缺陷,当向量的分量是不同的量纲时欧氏距离的大小竟然与指标的单位有关.而马氏距离则与量纲无关.4.1.3两总体的距离判别分析先考虑两个总体的情况。设,为两个不同的p元已知总体,的均值向量是,,的协方差矩阵是,.设是一个待判样品,距离判别准则为1GiGii12(,,,)Tpxxxx2GiG1,2i1,2i112212,(,)(,),.,(,)(,)xGdxGdxGxGdxGdxG若若(4.1.4)11/24MATLAB数据分析方法(机械工业出版社)第4章判别分析即当到的马氏距离不超过到的马氏距离时,判来自;反之,判来自.1Gx1G2Gx2G由于马氏距离与总体的协方差矩阵有关,所以利用马氏距离进行判别分析需要分别考虑两个总体的协方差矩阵是否相等.1.两个总体协方差矩阵相等的情况设有两个总体G1,G2,均值分别为,协方差矩阵相等为Σ。考虑样品x到两个总体的马氏距离平方差:,1212/24MATLAB数据分析方法(机械工业出版社)第4章判别分析22112122111111112221111111112221112211112121212(,)(,)()()()()22)2()2()()()12[(()2TTTTTTTTTTTTTTTdxGdxGxxxxxxxxxxxxx112112]()2()()TTx其中,令121()2112()()()TWxx于是距离判别准则为12,()0,()0xGWxxGWx(4.1.6)13/24MATLAB数据分析方法(机械工业出版社)第4章判别分析由于总体的均值、协方差矩阵通常是未知的,数据资料来自两个总体的训练样本,于是用样本的均值、样本的协方差矩阵代替总体的均值与协方差.注意:若S1,S2分别为两个样本的协方差矩阵,则在两个总体协方差矩阵相等时,总体的协方差矩阵估计量112212(1)(1)ˆ2nSnSSnn其中n1,n2分别为两个样本的容量.得到教材中判别法则:(4.1.11)(4.1.9)14/24MATLAB数据分析方法(机械工业出版社)第4章判别分析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类15/24MATLAB数据分析方法(机械工业出版社)第4章判别分析上述公式可以化简为: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')16/24MATLAB数据分析方法(机械工业出版社)第4章判别分析例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)17/24MATLAB数据分析方法(机械工业出版社)第4章判别分析解:假定两总体的协方差相等,源程序如下: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.18/24MATLAB数据分析方法(机械工业出版社)第4章判别分析直接调用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.19/24MATLAB数据分析方法(机械工业出版社)第4章判别分析2.两个总体协方差矩阵不相等x211111(,)()()TdxGxx212222(,)()()TdxGxx样品到两个总体的马氏距离平方分别为:222111222111()(,)(,)()()()()TTWxdxGdxGxxxx令则判别准则:12,()0,()0xGWxxGWx(4.1.13)20/24MATLAB数据分析方法(机械工业出版社)第4章判别分析),(),(21122211yyyyyyGymahalGymahalGmahalGmahalGGmahalGmahalG如待判,,,如,,,,如,当两个总体的协方差矩阵不等时,可以建立MATLAB的判别法如下:例4.1.2对例4.1.1的数据,假定两类总体的协方差矩阵不相等,重新判别上述三个蠓虫的类别.解:程序如下:apf=[1.14,1.78;1.18,1.96;1.20,1.86;1.
本文标题:MATLAB数据分析方法-(3)
链接地址:https://www.777doc.com/doc-7510263 .html