马氏距离与叶贝斯判别法
- 格式:doc
- 大小:92.50 KB
- 文档页数:4
距离判别法距离判别的思想是由训练样本得出每个分类的重心(中心)坐标,然后对新样品求出它们离各个类别重心的距离远近,从而归入离的最近的分类,,最常用的距离是马氏距离.距离判别的特点是直观、简单,适合于对自变量均为连续变量的情况进行分类,且它对变量的分布类型无严格要求,特别是并不严格要求总体协方差阵相等。
判别分析的模型可以概括为:假设有个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。
距离判别法贝叶斯判别法和费歇尔判别法的异同距离判别法、贝叶斯判别法和费歇尔判别法是三种常见的分类方法。
它们都是基于已知类别的数据集,通过学习得到一个分类模型,然后用该模型对未知数据进行分类。
虽然它们都属于分类方法,但是它们之间还是存在一些异同点的。
一、距离判别法距离判别法是根据样本之间的距离来进行分类的方法。
具体地说,对于一个未知样本,计算它与每个已知类别中心之间的距离,然后将其归为距离最近的那个类别。
其中“中心”可以是类别内所有样本的平均值或者其他统计量。
优点: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中的“投影轴”进⾏投影,所得到的“影⼦”就可以被“类别划分线”明显地区分开来,也就是得到了我们想要的判别结果。
原坐标轴下判别投影轴下判别我们可以发现,费希尔判别最重要的就是选择出适当的投影轴,对该投影轴⽅向上的要求是:保证投影后,使每⼀类之内的投影值所形成的类内离差尽可能⼩,⽽不同类之间的投影值所形成的类间离差尽可能⼤,即在该空间中有最佳的可分离性,以此获得较⾼的判别效果。
对于线性判别,⼀般来说,可以先将样本点投影到⼀维空间,即直线上,若效果不明显,则可以考虑增加⼀个维度,即投影⾄⼆维空间中,依次类推。
马氏距离判别法马氏距离判别法是一种常见的分类算法,其基本思想是利用样本均值和协方差矩阵来计算样本之间的马氏距离,从而将不同类别的样本进行分类。
在实际应用中,马氏距离判别法常被用于模式识别、数据挖掘、图像处理等领域。
一、基本概念1. 马氏距离马氏距离是一种度量两个随机向量之间的距离的方法。
它考虑了各个分量之间的相关性,并且可以被看作是两个随机向量在协方差矩阵下的欧几里得距离。
2. 样本均值样本均值是指一个样本集合中所有数据的平均值。
在马氏距离判别法中,每个类别都有一个对应的样本均值。
3. 协方差矩阵协方差矩阵描述了不同维度之间的相关性。
它可以告诉我们一个变量与其他变量之间如何相互影响,并且可以被用来计算马氏距离。
二、算法流程1. 计算每个类别的样本均值和协方差矩阵首先,需要对每个类别的样本进行统计分析,计算出每个类别的样本均值和协方差矩阵。
这些统计量可以用来描述每个类别的数据分布情况。
2. 计算马氏距离对于一个新的样本,需要计算它与每个类别的样本均值之间的马氏距离。
马氏距离越小,则说明这个新样本越可能属于该类别。
3. 判别分类根据马氏距离大小,将新样本判定为属于其中一个类别。
三、优缺点1. 优点(1)考虑了各个特征之间的相关性,能够更准确地区分不同类别之间的数据;(2)适用于多维度数据处理,并且对异常值具有一定鲁棒性。
2. 缺点(1)需要计算每个类别的协方差矩阵,当特征维度较高时,计算复杂度较高;(2)对于不同类别之间具有相同特征分布情况时,效果不佳;(3)对于非正态分布或者存在噪声影响时,效果也不佳。
四、应用实例1. 图像分类马氏距离判别法可以被用于图像分类领域。
通过计算样本均值和协方差矩阵来描述每个类别的图像特征分布情况,从而实现对不同类别的图像进行分类。
2. 数据挖掘在数据挖掘领域,马氏距离判别法可以被用于异常检测和聚类分析等任务中。
通过计算不同样本之间的马氏距离来识别异常数据,并且可以将相似的数据进行聚类。