马氏距离与叶贝斯判别法
判别分析贝叶斯判别

ql
fl
(x0
)
max
1ik
qi
fi
(x0 ),
则x0判给 Gl。
若fi
(x)
(2
1 i
)1
2
exp[
1 2
(
x
(i)
)i
1 ( x
(i)
)]
则,
qi
fi
(
x)
qi
(2
1 i
)1
2
exp[
1 2
(
x
(i)
)i 1 ( x
(i)
)]
上式两边取对数 ln(qi fi (x))
ln
qi
1 ln 2
2
1 ln 2
判别分析是多元统计中用于判别样品所属类型 的一种统计分析方法。是一种在一些已知研究对象 用某种方法已经分成若干类的情况下,确定新的样 品的观测数据属于那一类的统计分析方法。
判别准则: 用于衡量新样品与各已知组别接近程度的思路原则。
判别函数: 基于一定的判别准则计算出的用于衡量新样品与各 已知组别接近程度的描述指标。
1 (x μ(i) )Σ1(x μ(i) ) 2
1 [2 ln 2
qi
(x
μ(i)
)Σ 1 (x
μ(i) )]
令 Fi (x) 2ln qi (x μ(i) )Σ1(x μ(i))
2 ln qi x' Σ1x μ(i)' Σ1x x' Σ1μ(i) μ(i)' Σ1μ(i)
令 Pi (x) 2ln qi 2μ(i)Σ1x μ Σ μ (i) 1 (i)
q2C(1/ 2) f2 (x) q1C(2 /1) f1(x) 0
北大应用多元统计第五章

第五章 §5.1 距离判别法 两总体判别:简例1
简例1 :记二维正态总体N2((i), )为Gi(i=1,2)(两总体
协差阵相同),已知来自Gi(i=1,2)的样本数据阵为
X X (1)
42
3 3 4 21 1 180 0 2,
(2) 32
5 4 39 7 5.n k1 2 4,, n m 2 2 3
例如:在医学诊断中,一个病人肺部有阴影,医生要判 断他是肺结核、肺部良性肿瘤还是肺癌.这里肺结核病 人、良性瘤病人、肺癌病人组成三个总体,病人来源于 这三个总体之一,判别分析的目的是通过测得病人的指 标(阴影的大小,边缘是否光滑,体温多少……)来判断他 应该属哪个总体(即判断他生什么病).
第五章 判别分析
两总体判别: Σ1=Σ2 时的判别方法
对给定样品X,为比较X到各总体的马氏距离, 只须计算Yi(X ) :
第五章 §5.1 距离判别法
两总体判别: Σ1=Σ2 时的判别方法
因为函数Yi(X)是X的线性函数
(i=1,2),故
Ci
第五章 §5.1 距离判别法
两总体判别: Σ1=Σ2 时的判别方法
若考察这两个马氏距离之差,经计算可得:
22
28
X~32 (2) 011 220, A2 (X~(2))X~(2) 22 28
第五章 §5.1 距离判别法 两总体判别:简例1
样本合并组内A为 离差阵
AA1A2 22 2822 2844 146,故
其中
不妨设μ1>μ2 ,则a为正数,W(x)的符号取决于
x>μ或x<μ.
第五章 §5.1 距离判别法
两总体判别: Σ1=Σ2 时的判别方法(m=1时的错判率)
距离判别法xin

距离判别法距离判别的思想是由训练样本得出每个分类的重心(中心)坐标,然后对新样品求出它们离各个类别重心的距离远近,从而归入离的最近的分类,,最常用的距离是马氏距离.距离判别的特点是直观、简单,适合于对自变量均为连续变量的情况进行分类,且它对变量的分布类型无严格要求,特别是并不严格要求总体协方差阵相等。
判别分析的模型可以概括为:假设有个k个总体G1,G2~Gk,并且都是p维总体,对应的数据指标为: X=(X1,X2,~~Xp)T T在各个总体下具有不同的分布特征。
现对某一新的样品数据x=(x1,x2,~~xp)T,要根据各总体的特征按一定准则判断该样品应属于哪一个总体。
定义x与总体G的马氏平方距离:纸上1两个总体的判别准则:设是G1,G2两个不同的p维已知总体,G1的均值向量是μ1,协方差矩阵为Σ1;G2的均值向量是μ2,协方差矩阵为Σ2;设x=(x1,x2,~~xp)T是一个待判样品,距离判别准则为:纸上2即当x到1G的马氏距离不超过到G2的马氏距离时,判定x来自G1;反之,判定x来自。
2GBayes判别法基本思想:设有k个总体G1,G2,~~Gk,它们的先验概论分别为q1,q2,~~qk(可以利用经验给出,也可以通过估计得到)。
各总体的密度函数分别为:f1(x),f2(x),~~fk(x),在观测到一个样品x的情况下,可以用Bayes公式计算它来自第个总体的后验概率:g纸上3并且在纸上4时,则判定X来自第总体。
Bayes判别的基本方法设每一个总体Gi的分布密度为fi(x),i=1,2,~k,来自总体G的样本X被错判为来自总体Gj(i,j=1,2,~~k)时所造成的损失记为C(j!i),并且C(i!j)=0. 那么,对于判别规则R=(R1,R2,~~,Rk)产生的误判概率记为P(j!i,R),有纸上5如果已知样本X来自总体i G的先验概率为qi, i=1,2,,k,则在规则R下,误判的总平均损失为:纸上6R1,R2,~~,Rk确实能够使总平均损失达到极小,他就是Bayes判别的解。
马氏距离判别与贝叶斯判别

马氏距离判别与贝叶斯判别《马氏距离判别与贝叶斯判别》实验报告姓名:学号:班级:一、目的:1.熟练掌握matlab软件进行距离判别贝叶斯判别的方法与步骤。
2.掌握判别分析的回代误判率与交叉误判率的编程。
3.掌握贝叶斯判别的误判率的计算。
二、内容:我国山区某大型化工厂,在厂区及邻近地区挑选有代表性的15个大气取样点,每日4次同时抽取大气样品,测定其中含有的6种气体的浓度,前后共4天,每个取样点每种气体实测16次,计算每个取样点每种气体的平均浓度,数据见表1。
气体数据对应的污染地区分类见表1中最后一列。
现有两个取自该地区的4个气体样本,气体指标见表1中的后4行,试解决一下问题:1.判别两类总体的协方差矩阵是否相等,然后用马氏距离判别这4个未知气体样本的污染类别,并计算回代误判率与交叉误判率;若两类总体服从正太分布,第一类与第二类的先验概率分别为7/15、8/15,利用贝叶斯判别样本的污染分类。
2.先验概率为多少时,距离判别与贝叶斯判别相同?调整先验概率对判别结果的影响是什么?3.对第一类与第二类的先验概率分别为7/15、8/15,计算误判概率。
三、程序马氏距离判别:A=load('shiyan4.txt');x1=A([1:4 7 8 15],2:7);x2=A([5 6 9:14],2:7);m1=mean(x1);m2=mean(x2);n1=size(x1,1);n2=size(x2,1);s1=cov(x1);s2=cov(x2);p=6;s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);Q1=(n1-1)*(log(det(s))-log(det(s1))-p+trace(inv(s)*s1)); Q2=(n2-1)*(log(det(s))-log(det(s2))-p+trace(inv(s)*s2)); if Q1<chi2inv(0.95,21)&&q2<chi2inv(0.95,21)< p=""> disp('两组数据协方差相等')elsedisp('两组数据协方差不全相等')end; %判断两总体协方差是否相等%协方差不相等,马氏距离判别x=A(16:19,2:7);w=mahal(x,x1)-mahal(x,x2);for i=1:4if w(i)<=0disp(['第',num2str(i),'个样品污染类别为1']);elsedisp(['第',num2str(i),'个样品污染类别为2']);endend%计算回代误判率for i=1:n1d11(i)=mahal(x1(i,:),x1)-mahal(x1(i,:),x2);endfor i=1:n2d22(i)=mahal(x2(i,:),x2)-mahal(x2(i,:),x1);endn11=length(find(d11>0));n22=length(find(d22>0));p0=(n11+n22)/(n1+n2)%计算交叉误判率for i=1:n1B=x1([1:i-1,i+1:n1],:);n1=length(B(:,1));n2=length(x2(:,1));m1=mean(B);m2=mean(x2);S1=cov(B);S2=cov(x2);S=((n1-1)*S1+(n2-1)*S2)/(n1+n2-2);Q1=(n1-1)*(log(det(S))-log(det(S1))-p+trace(inv(S)*S1));Q2=(n2-1)*(log(det(S))-log(det(S2))-p+trace(inv(S)*S2));if Q1<chi2inv(0.95,21)&&q2<chi2inv(0.95,21)< p="">D11(i)=(x1(i,:)-mean(B))*inv(S)*(x1(i,:)-mean(B))'-(x1(i,:)-mean(x2))*inv(S)*(x1(i,:)-mean(x2))';elseD11(i)=mahal(x1(i,:),x1)-mahal(x1(i,:),x2);end;endfor i=1:n2D=x2([1:i-1,i+1:n2],:);n1=length(x1(:,1));n2=length(D(:,1));S1=cov(x1);S2=cov(D);S=((n1-1)*S1+(n2-1)*S2)/(n1+n2-2);Q1=(n1-1)*(log(det(S))-log(det(S1))-p+trace(inv(S)*S1));Q2=(n2-1)*(log(det(S))-log(det(S2))-p+trace(inv(S)*S2));if Q1<chi2inv(0.95,21)&&q2<chi2inv(0.95,21)< p="">D22(i)=(x1(i,:)-mean(B))*inv(S)*(x1(i,:)-mean(B))'-(x1(i,:)-mean(x2)) *inv(S)*(x1(i,:)-mean(x2))';elseD22(i)=mahal(x2(i,:),x1)-mahal(x2(i,:),x2);end;endN11=length(find(D11>0));N22=length(find(D22>0));p1=(N11+N22)/(n1+n2)贝叶斯判别:A=load('shiyan4.txt');x1=A([1:4 7 8 15],2:7);x2=A([5 6 9:14],2:7);n1=size(x1,1);n2=size(x2,1);s1=cov(x1) ;s2=cov(x2) ;p=2;s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);Q1=(n1-1)*(log(det(s))-log(det(s1))-p+trace(inv(s)*s1));Q2=(n2-1)*(log(det(s))-log(det(s2))-p+trace(inv(s)*s2));%判断两总体协方差是否相等if Q1<chi2inv(0.95,3)&&q2<chi2inv(0.95,3)< p="">disp('两组数据协方差相等')elsedisp('两组数据协方差不全相等')end;%判断两总体协方差是否相等%协方差不相等贝叶斯判别x=A(16:19,2:7);p1=7/15;p2=8/15;for i=1:4d1(i)=mahal(x(i,:),x1)-log(det(s1))-2*log(p1);d2(i)=mahal(x(i,:),x2)-log(det(s2))-2*log(p2);if d1(i)<=d2(i)disp(['第',num2str(i),'个样品污染类别为1']);elsedisp(['第',num2str(i),'个样品污染类别为2']);endend%计算回代误判率n11=0;n22=0;for i=1:n1d1(i,1)=(x1(i,:)-m1)*inv(s1)*(x1(i,:)-m1)'-log(det(s1))-2*log(p1);d1(i,2)=(x1(i,:)-m2)*inv(s2)*(x1(i,:)-m2)'-log(det(s2))-2*log(p2); for j=1:2if d1(i,j)==min(d1(i,:))&j~=1n11=n11+1;endendendfor i=1:n2d2(i,1)=(x2(i,:)-m1)*inv(s1)*(x2(i,:)-m1)'-log(det(s1))-2*log(p1);d2(i,2)=(x2(i,:)-m2)*inv(s2)*(x2(i,:)-m2)'-log(det(s2))-2*log(p2); for j=1:2if d2(i,j)==min(d2(i,:))&j~=2n22=n22+1;endendendp0=(n11+n22)/(n1+n2)%计算交叉误判率N11=0;N22=0;for k=1:n1A=x1([1:k-1,k+1:n1],:);N1=length(A(:,1));M1=mean(A,1);m2=mean(x2);s11=cov(A);s2=cov(x2);S1=((N1-1)*s11+(n2-1)*s2)/(N1+n2-k);for i=1:n1d11(i,1)=M1*inv(S1)*x1(i,:)'-1/2*M1*inv(S1)*M1'+log(p1);d11(i,2)=m2*inv(S1)*x1(i,:)'-1/2*m2*inv(S1)*m2'+log(p2); for j=1:2if d11(i,j)==min(d11(i,:))&j~=1N11=N11+1;endendendendfor k=1:n2B=x2([1:k-1,k+1:n2],:);N2=length(B(:,1));M2=mean(B,1);m1=mean(x1);s22=cov(B);s1=cov(x1);S2=((n1-1)*s1+(N2-1)*s22)/(n1+N2-k);for i=1:n2d22(i,1)=m1*inv(S2)*x2(i,:)'-1/2*m1*inv(S2)*m1'+log(p1);d22(i,2)=M2*inv(S2)*x2(i,:)'-1/2*M2*inv(S2)*M2'+log(p2);for j=1:2if d22(i,j)==min(d22(i,:))&j~=2N22=N22+1;endendendendp1=(N11+N22)/(n1+n2)四、结果马氏距离判别:两组数据协方差不全相等,第1、2个样品污染类别为1第3、4个样品污染类别为2,回代误判率p=0,交叉误判率p=0.5714。
判别分析 (2)

%白血病人数据和类别
sam_p=[14.0 5.1;13.2 4.4;11.0 4.5;11.3 3.8;9.1 4.5;10.3 3.2;13.0 3.6;12.4 5.4;10.3 4.2;9.0 4.7;10.6 5.5;9.5 3.5;13.8 4.5];
legend(‘健康人‘,‘白血病‘)
%二值回归判别
x1=[ones(size(Y)),sample];
[b,bint,r,rint,stats]=regress(Y,x1);%多元回归分析,此处还应该进行残差分析
ye=x1*b;
cresult1=ye>mean(Y);
%利用马氏距离判别
dh1=mahal(sam_p,sam_h);%计算健康人样本与白血病类的马氏距离
安装内存(RAM):4.00GB系统类型:64位操作系统
2、软件环境:MATLAB R2010b软件
三、实验内容
(包括本实验要完成的实验问题及需要的相关知识简单概述)
1.实验原理
判别分析的方法(1)距离判别;它的核心是根据所定义的距离来判别,样本中的每一组中,都可以在模型中的变量所定义的空间中确定这一点,这一点代表了所有变量的均数,这些点称为类别中心,根据样本离各个类别中心的距离远近来判别,即离那个中心距离最近,就属于那一类。
对白血病人中的第5、10、11样本的分类错误,错误率11.4%
在图中可以看出有三个白血病人混到了健康人中在上面说到的方法中都是线性判别方法无法将样本分成两类直线,可以用人工神经网络解决非线性问题或是剔除问题样本。
五、实验小结:
1、通过本次试验了解了二值回归、马氏距离、和Bayes判别分析的方法以及计算欧氏距离的norm函数和计算马氏距离的mahal函数,另外,ciassify函数采用Bayes方法进行判别分析;
判别分析(第1、2节_绪论、距离判别法)

x * , X G1 , * x , X G2 .
第二节 距离判别法
因为是单指标的问题,这时判别函数设为:Y Y ( x) x 此例中 * 79, 因 x0 78 * ,故判 X 0 G2 。
,在
下面给出对于 m元总体的这种相对距离 —即所谓的马氏距离 定义
2 更一般地,设总体G1的分布为 N (1 , 1 ) ,设总体G2的分布为
N (2 , 22 ) ,则利用统计距离,可以找出分界点 * ,且不妨设
1 2 ,所以若令 ( x 1 )2 ( x 2 )2 解出 1 2 2 1 * x , 12 22 1 2
d (X, Y) 2 ( X1 Y1 )2
( X p Yp )2 .
但在解决实际问题时,特别是针对多元数据的分析问题,欧氏 距离就显示出了它的一些缺陷。 譬 如 , 设 有 两 个 正 态 总 体 , X ~ N ( 1 , ) 和
2
Y ~ N ( 2 ,4 2 ) ,现有一个样品位于如图 5.1 所示的 A 点,距总 体 X 的中心的距离为 2 远,距总体 Y 的中心的距离为 3 远, 那么, A 点处的样品到底离哪一个总体近呢?
第一节 引言
判别分析内容很丰富,方法很多。①判断分析方法按判别的
总体个数来区分,有两个总体判别分析和多总体判别分析;②按
区分不同总体所用的数学模型来分,有线性判别和非线性判别; ③按判别时所处理的变量方法不同,有逐步判别和序贯判别等。
④判别分析可以从不同角度提出问题,因此有不同的判别准则,
如马氏距离最小准则、Fisher准则、平均损失最小准则、最小平 方准则、最大似然准则、最大概率准则等等,按判别准则的不同
距离判别法贝叶斯判别法和费歇尔判别法的异同
距离判别法贝叶斯判别法和费歇尔判别法的异同距离判别法、贝叶斯判别法和费歇尔判别法是三种常见的分类方法。
它们都是基于已知类别的数据集,通过学习得到一个分类模型,然后用该模型对未知数据进行分类。
虽然它们都属于分类方法,但是它们之间还是存在一些异同点的。
一、距离判别法距离判别法是根据样本之间的距离来进行分类的方法。
具体地说,对于一个未知样本,计算它与每个已知类别中心之间的距离,然后将其归为距离最近的那个类别。
其中“中心”可以是类别内所有样本的平均值或者其他统计量。
优点:1. 简单易懂:距离判别法直观易懂,容易理解。
2. 计算简单:计算样本与中心之间的距离只需要进行简单的数学运算即可。
缺点:1. 对异常值敏感:由于距离判别法是基于样本之间的距离来进行分类,因此如果存在异常值,则可能会影响分类结果。
2. 需要提前确定中心:在使用距离判别法时需要提前确定每个类别的中心,而这个过程可能会比较困难。
二、贝叶斯判别法贝叶斯判别法是一种基于概率的分类方法。
它假设每个类别都服从某种概率分布,然后根据贝叶斯公式计算出每个类别对于给定样本的后验概率,最终将样本归为后验概率最大的那个类别。
优点:1. 可以处理多维特征:与距离判别法不同,贝叶斯判别法可以处理多维特征。
2. 对异常值不敏感:由于贝叶斯判别法是基于概率分布来进行分类的,因此对于一些异常值,它可以通过概率分布来进行修正。
缺点:1. 需要大量数据:由于贝叶斯判别法需要估计每个类别的概率分布,因此需要大量的数据才能得到准确的结果。
2. 对先验概率敏感:在使用贝叶斯判别法时需要提前确定每个类别的先验概率,而这个过程可能会比较困难。
三、费歇尔判别法费歇尔判别法是一种基于方差分析理论的分类方法。
它假设每个类别服从某种概率分布,然后根据方差分析的原理来计算每个类别对于给定样本的“可信度”,最终将样本归为“可信度”最高的那个类别。
优点:1. 可以处理多维特征:与距离判别法不同,费歇尔判别法可以处理多维特征。
判别分析--费希尔判别、贝叶斯判别、距离判别
判别分析--费希尔判别、贝叶斯判别、距离判别判别分析⽐较理论⼀些来说,判别分析就是根据已掌握的每个类别若⼲样本的数据信息,总结出客观事物分类的规律性,建⽴判别公式和判别准则;在遇到新的样本点时,再根据已总结出来的判别公式和判别准则,来判断出该样本点所属的类别。
1 概述三⼤类主流的判别分析算法,分别为费希尔(Fisher)判别、贝叶斯(Bayes)判别和距离判别。
具体的,在费希尔判别中我们将主要讨论线性判别分析(Linear Discriminant Analysis,简称LDA)及其原理⼀般化后的衍⽣算法,即⼆次判别分析(Quadratic Discriminant Analysis,简称QDA);⽽在贝叶斯判别中将介绍朴素贝叶斯分类(Naive Bayesian Classification)算法;距离判别我们将介绍使⽤最为⼴泛的K最近邻(k-Nearest Neighbor,简称kNN)及有权重的K最近邻( Weighted k-Nearest Neighbor)算法。
1.1 费希尔判别费希尔判别的基本思想就是“投影”,即将⾼维空间的点向低维空间投影,从⽽简化问题进⾏处理。
投影⽅法之所以有效,是因为在原坐标系下,空间中的点可能很难被划分开,如下图中,当类别Ⅰ和类别Ⅱ中的样本点都投影⾄图中的“原坐标轴”后,出现了部分样本点的“影⼦”重合的情况,这样就⽆法将分属于这两个类别的样本点区别开来;⽽如果使⽤如图8-2中的“投影轴”进⾏投影,所得到的“影⼦”就可以被“类别划分线”明显地区分开来,也就是得到了我们想要的判别结果。
原坐标轴下判别投影轴下判别我们可以发现,费希尔判别最重要的就是选择出适当的投影轴,对该投影轴⽅向上的要求是:保证投影后,使每⼀类之内的投影值所形成的类内离差尽可能⼩,⽽不同类之间的投影值所形成的类间离差尽可能⼤,即在该空间中有最佳的可分离性,以此获得较⾼的判别效果。
对于线性判别,⼀般来说,可以先将样本点投影到⼀维空间,即直线上,若效果不明显,则可以考虑增加⼀个维度,即投影⾄⼆维空间中,依次类推。
判别分析的概念距离判别法费歇尔判别法贝叶
用数学的语言来说,判别问题可以表述为:对于n个样品, 每个样品有p个指标,已知每个样品属于某一k类别(总 体)G1,G2,…,Gk,对于每类别其分布函数分别为 f1(y),f2(y),…,fk(y),对于一个给定样品y,我们要判 断出这个样本来自哪个总体。判别分析的主要问题就是 如何寻找最佳的判别函数和建立判别规则。
D( X , G1) (X X (1) )( X X (1) )
D( X , G2 ) (X X (2) )( X X (2) ) X (1),X (2)分别为G1、G2的均值向量。 然后比较D( X , G1),D( X , G2 )的大小,按最近准则判别归类。 在多元统计分析中经常用马氏距离做上述判别分析。
聚类分析数据格式
k
判别分析数据格式
第二节 距离判别法
距离判别法就是根据已知分类的数 据,分别计算各类的重心即分组(类) 的均值,判别准则是对任给的一次观测, 若它与第i类的重心距离最近,就认为 它来自第i类。
距离判别法对各类(或总体)的分 布,并无特别的要求。
1、两个总体的距离判别法
设有两个总体G1、G2,村第一个总体中抽取n1个样品, 从第二个总体中抽取n2个样品,每个样品观测p个指标。 今取任一个样品,实测指标值为X=(x1, x2 , , xp ),问
X应判归那一类?
首先计算X到G1、G2总体的距离,分别记为D( X ,G1)和
D( X ,G2 ),按距离最近原则判别归类,则可以写成:
X G1,
X
Байду номын сангаас
G2
,
待判,
当D( X ,G1) D( X ,G2 ) 当D( X ,G1) D( X ,G2 ) 当D( X ,G1) D( X ,G2 )
马氏距离判别法
马氏距离判别法马氏距离判别法是一种常见的分类算法,其基本思想是利用样本均值和协方差矩阵来计算样本之间的马氏距离,从而将不同类别的样本进行分类。
在实际应用中,马氏距离判别法常被用于模式识别、数据挖掘、图像处理等领域。
一、基本概念1. 马氏距离马氏距离是一种度量两个随机向量之间的距离的方法。
它考虑了各个分量之间的相关性,并且可以被看作是两个随机向量在协方差矩阵下的欧几里得距离。
2. 样本均值样本均值是指一个样本集合中所有数据的平均值。
在马氏距离判别法中,每个类别都有一个对应的样本均值。
3. 协方差矩阵协方差矩阵描述了不同维度之间的相关性。
它可以告诉我们一个变量与其他变量之间如何相互影响,并且可以被用来计算马氏距离。
二、算法流程1. 计算每个类别的样本均值和协方差矩阵首先,需要对每个类别的样本进行统计分析,计算出每个类别的样本均值和协方差矩阵。
这些统计量可以用来描述每个类别的数据分布情况。
2. 计算马氏距离对于一个新的样本,需要计算它与每个类别的样本均值之间的马氏距离。
马氏距离越小,则说明这个新样本越可能属于该类别。
3. 判别分类根据马氏距离大小,将新样本判定为属于其中一个类别。
三、优缺点1. 优点(1)考虑了各个特征之间的相关性,能够更准确地区分不同类别之间的数据;(2)适用于多维度数据处理,并且对异常值具有一定鲁棒性。
2. 缺点(1)需要计算每个类别的协方差矩阵,当特征维度较高时,计算复杂度较高;(2)对于不同类别之间具有相同特征分布情况时,效果不佳;(3)对于非正态分布或者存在噪声影响时,效果也不佳。
四、应用实例1. 图像分类马氏距离判别法可以被用于图像分类领域。
通过计算样本均值和协方差矩阵来描述每个类别的图像特征分布情况,从而实现对不同类别的图像进行分类。
2. 数据挖掘在数据挖掘领域,马氏距离判别法可以被用于异常检测和聚类分析等任务中。
通过计算不同样本之间的马氏距离来识别异常数据,并且可以将相似的数据进行聚类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if d11(i,j)==min(d11(i,:))&j~=1
N11=N11+1;
end
end
end
end
for k=1:n2
B=x2([1:k-1,k+1:n2],:);
N2=length(B(:,1));
M2=mean(B,1);m1=mean(x1);
s22=cov(B);s1=cov(x1);
统计与数学模型分析实验中心
《MATLAB数据分析方法》实验报告
班级:学号:姓名: 实验日期:实验地点:
实验名称:距离判别与北叶斯判别分析使用软件名称:MATLAB
目的
1.熟练掌握matlab软件进行距离判别贝叶斯判别的方法与步骤。
2.掌握判别分析的回代误判率与交叉误判率的编程。
3.掌握贝叶斯判别的误判率的计算。
1
9
0.084
0.066
0.029
0.32
0.012
0.041
2
10
0.085
0.076
0.019
0.3
0.01
0.04
2
11
0.064
0.072
0.02
0.25
0.028
0.038
2
12
0.054
0.065
0.022
0.28
0.021
0.04
2
13
0.048
0.089
0.062
0.26
0.038
0.036
实验内容
我国山区某大型化工厂,在厂区及邻近地区挑选有代表性的15个大气取样点,每日4次同时抽取大气样品,测定其中含有的6种气体的浓度,前后共4天,每个取样点每种气体实测16次,计算每个取样点每种气体的平均浓度,数据见表1。气体数据对应的污染地区分类见表1中最后一列。现有两个取自该地区的4个气体样本,气体指标见表1中的后4行,试解决一下问题:
s11=cov(A);s2=cov(x2);
S1=((N1-1)*s11+(n2-1)*s2)/(N1+n2-k);
for i=1:n1
d11(i,1)=M1*inv(S1)*x1(i,:)'-1/2*M1*inv(S1)*M1'+log(p1);
d11(i,2)=m2*inv(S1)*x1(i,:)'-1/2*m2*inv(S1)*m2'+log(p2);
s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2);
Q1=(n1-1)*(log(det(s))-log(det(s1))-p+trace(inv(s)*s1));
Q2=(n2-1)*(log(det(s))-log(det(s2))-p+trace(inv(s)*s2));
%判断两总体协方差是否相等
for j=1:2
if d2(i,j)==min(d2(i,:))&j~=2
n22=n22+1;
end
end
end
p0=(n11+n22)/(n1+n2)
%计算交叉误判率
N11=0;N22=0;
for k=1:n1
A=x1([1:k-1,k+1:n1],:);
N1=length(A(:,1));
M1=mean(A,1);m2=mean(x2);
Q2=(n2-1)*(log(det(S))-log(det(S2))-p+trace(inv(S)*S2));
if Q1<chi2inv(0.95,21)&&Q2<chi2inv(0.95,21)
D11(i)=(x1(i,:)-mean(B))*inv(S)*(x1(i,:)-mean(B))'-(x1(i,:)-mean(x2))*inv(S)*(x1(i,:)-mean(x2))';
Q1=(n1-1)*(log(det(S))-log(det(S1))-p+trace(inv(S)*S1));
Q2=(n2-1)*(log(det(S))-log(det(S2))-p+trace(inv(S)*S2));
if Q1<chi2inv(0.95,21)&&Q2<chi2inv(0.95,21)
for j=1:2
if d22(i,j)==min(d22(i,:))&j~=2
N22=N22+1;
end
end
end
end
p1=(N11+N22)/(n1+n2)
实验结果分析
结果:马氏距离判别:两组数据协方差不全相等,第1、2个样品污染类别为1第3、4个样品污染类别为2,回代误判率p=0,交叉误判率p=0.5714。
0.0071
0.02
1
4
0.045
0.05
0.11
0.1
0.025
0.0063
1
5
0.038
0.13
0.079
0.17
0.058
0.043
2
6
0.03
0.11
0.07
0.16
0.05
0.046
2
7
0.034
0.095
0.058
0.16
0.2
0.029
1
8
0.03
0.09
0.068
0.18
0.22
0.039
S2=((n1-1)*s1+(N2-1)*s22)/(n1+N2-k);
for i=1:n2
d22(i,1)=m1*inv(S2)*x2(i,:)'-1/2*m1*inv(S2)*m1'+log(p1);
d22(i,2)=M2*inv(S2)*x2(i,:)'-1/2*M2*inv(S2)*M2'+log(p2);
0.16
0.056
0.021
待定
样品4
0.074
0.083
0.105
0.19
0.02
1
待定
程序:
马氏距离判别:
A=load('shiyan4.txt');
x1=A([1:4 7 8 15],2:7);
x2=A([5 6 9:14],2:7);
m1=mean(x1);m2=mean(x2);n1=size(x1,1);
end
end
%计算回代误判率
n11=0;n22=0;
for i=1:n1
d1(i,1)=(x1(i,:)-m1)*inv(s1)*(x1(i,:)-m1)'-log(det(s1))-2*log(p1);
d1(i,2)=(x1(i,:)-m2)*inv(s2)*(x1(i,:)-m2)'-log(det(s2))-2*log(p2);
贝叶斯判别:两组数据协方差不全相等,第1、2个样品污染类别为1,第3、4个样品污染类别为2,回代误判率p=0,交叉误判率p=0.2667
教师评语
if Q1<chi2inv(0.95,21)&&Q2<chi2inv(0.95,21)
disp('两组数据协方差相等')
else
disp('两组数据协方差不全相等')
end; %判断两总体协方差是否相等
%协方差不相等,马氏距离判别
x=A(16:19,2:7);w=mahal(x,x1)-mahal(x,x2);
1.判别两类总体的协方差矩阵是否相等,然后用马氏距离判别这4个未知气体样本的污染类别,并计算回代误判率与交叉误判率;若两类总体服从正太分布,第一类与第二类的先验概率分别为7/15、8/15,利用贝叶斯判别样本的污染分类。
2.先验概率为多少时,距离判别与贝叶斯判别相同?调整先验概率对判别结果的影响是什么?
n1=length(B(:,1));n2=length(x2(:,1));
m1=mean(B);m2=mean(x2);
S1=cov(B);S2=cov(x2);
S=((n1-1)*S1+(n2-1)*S2)/(n1+n2-2);
Q1=(n1-1)*(log(det(S))-log(det(S1))-p+trace(inv(S)*S1));
eal(x2(i,:),x2)-mahal(x2(i,:),x1);
end
n11=length(find(d11>0));n22=length(find(d22>0));
p0=(n11+n22)/(n1+n2)
%计算交叉误判率
for i=1:n1
B=x1([1:i-1,i+1:n1],:);
if Q1<chi2inv(0.95,3)&&Q2<chi2inv(0.95,3)
disp('两组数据协方差相等')
else
disp('两组数据协方差不全相等')
end;%判断两总体协方差是否相等%协方差不相等 贝叶斯判别
x=A(16:19,2:7);p1=7/15;p2=8/15;
for i=1:4
2
14
0.045
0.092
0.072
0.2
0.035
0.032
2
15
0.069
0.087
0.027
0.05
0.089
0.021
1
样品1