最大似然分类法 您所在的位置:网站首页 相声笑料分类法 最大似然分类法

最大似然分类法

2024-07-03 15:54| 来源: 网络整理| 查看: 265

                                          最大似然分类法介绍

作者:liangdas

出处:简单点儿,通俗点儿,机器学习  http://blog.csdn.net/liangdas/article/details/19294951

前言:

       最小距离分类法只考虑了待分类样本到各个类别中心的距离,而没有考虑已知样本的分布,所以它的分类速度快,但精度不高。今天要介绍的是另外一种分类方法——最大似然分类法,它也是分类里面用得很多的一种分类方法,它在分类的时候,不仅考虑了待分类样本到已知类别中心的距离,而且还考虑了已知类别的分布特征,所以其分类精度比最小距离分类法要高。

       下面有一个图,黄色所示类别A的分布,蓝色是类别B的分布,类别A和B的类别中心都红色的点表示出来了,那么有一个未知类别的样本p,假设p到类别A的距离是Ap,到类别B的距离是Bp,现在Ap=Bp,那么如果用最小距离分类法,我们是不能判断样本p到底是属于A类还是B类的,所以这就是最小距离分类法的局限性。

感性认识:

       假设在我们读书的时候,在一个月内,30天,你发现晚上11点以后实验室还亮着灯,你很好奇,每次推门进去,发现这30天内,实验室中不是甲就是乙,或者他们同时都在,你做了统计,是甲的天数是28天,是乙的次数是4天,然后有一天晚上11点,你发现实验室的灯又亮了,你同学问你:“你猜现在是谁在实验室呀?”,你会回答“应该是甲吧”。这其实就是生活中我们利用最大似然来分类的一个例子。

       另外一个例子:现在我们有两个盒子:甲和乙,每个里面都装了100个球,其中甲中装了95个红球,5个黑球,乙中装了60个红球,40个黑球,现在有人从盒子里面取出了一个球,发现是红球,然后让你猜:“他是从哪个盒子里面取出来的?”,想必你会猜“甲”吧。

       好了,其实我们生活中,已经对最大似然估计有了自己的经验体会,是不是还没有意识到它就是最大似然分类法呢?呵呵。

基本原理:

       假设有两个事件A,B,我们通过先验的知识,知道A发生的条件下,x也发生的概率是P(x|A); B发生的条件下,x也发生的概率是P(X|B),那么,现在有一个事件x发生了,我们能否判断这个事件x是在A条件下,还是在B条件下发生的可能性大些呢?也就是要求出P(A|x)和P(B|x)哪一个最大?对分类问题而言,哪一个概率大,我们就说x属于哪一类。

       我们回忆下贝叶斯公式:P(A|B)=P(B|A)*P(A)/P(B)

       从贝叶斯公式中我们可以看到,求概率P(A|B)的问题转化成了求P(B|A),P(A)和P(B)的问题,其实里面真正的精华是:概率P(A|B)和P(B|A)的转换。因为通常,我们事先能知道P(A),P(B);或者是P(A)和P(B)在分类问题中是公共的项,可以约去;再或是他们的差异可以忽略不计,所以,要P(A|B)最大,也就是要P(B|A)最大!而对于P(B|A),我们可以从事先已经发生的事件中,通过统计等数学方法计算得到,这样这个分类问题就好解了!我们可以提炼下面的目标函数:

       

       其中是目标函数,是已知x事件发生了,那么它属于的概率;是类别对应的x的概率值;是类别发生的概率,是事件x发生的概率。

       贝叶斯公式的经典之处就是将后验概率的问题转化成了先验概率的问题!

       再回到上面的盒子和白球的问题中,A和B分别代表盒子甲和乙,事件x就是红球发生的概率,我们先验已经知道P(x|A)= 95/100=0.95,P(x|B)=60/100=0.6,我们要求的是P(A|x)和P(B|x),然后比较哪个最大?

       P(A|x)= P(A)*P(x|A)/P(x)

       P(B|x)= P(B)*P(x|B)/P(x)

       对于P(A), P(B),因为我们目前总共只有两个盒子甲和乙,也就是A和B,它们各有一个,所以P(A)=P(B)=1/2=0.5。

       对于P(x),因为P(A|x)和P(B|x)的贝叶斯表达式中都有P(x)这一项,所以,P(x)作为公共项,我们可以不考虑。如果硬是想知道它的值,那么因为是随机取一个球,P(x)=(95+60)/(100+100)。

       这样我们就可以轻松的知道P(A|x)大,还是P(B|x)大了。

       最大似然分类又叫贝叶斯分类。

N维空间的最大似然分类法原理:

       上面的例子中, x都是二项分布的,也就是x的取值只取两个值,通常为0,1,发生或者不发生等,但是在实际问题中,x往往不是服从这么一个简单的二项分布,而很有可能是其他更复杂一些的分布。

       在统计学和模式识别中,对某一个待研究的集合,在经验的基础上,我们通常假设它是一个服从正太分布的变量集合,如一群人的身高、某各班级某一科目的考试成绩、某个类别的某一维特征,我们都假定它是服从正态分布的,也叫高斯分布,即用均值,和方差来描述的一组样本分布。对一维正态分布,它的概率密度函数表达式是:表示的是变量分布中的出现的概率。

       通常,为了描述某一个对象,我们会从这个对象抽象出多个属性,每一个属性代表一个一维空间,多个属性就组成一个多维空间。对于多维空间的中的变量,它也有其正态分布的概率密度函数:

        

其中,是概率密度,是特征维数,又叫特征空间维数(对遥感图像分类来说, 就是波段的个数);是n维空间中的一个向量;也是一个n向量,它是由每一维特征的均值组成的一个向量;是n维特征向量之间的协方差矩阵。

上面已经指出了,最大似然分类的目标函数是:

       

       当x是一个多维空间中的一个向量,而且每一维空间都的分布都服从正态分布的时候,则x的概率密度函数是:

        

       通常可以根据已知条件计算得到,或者其区别可以忽略不计。

       是公共项,所以不用考虑其具体的值。

N维空间的最大似然分类法的化简:

       到目前为止,我们利用上面的就可以计算出最大似然分类的结果了,但是在上面的计算公式中有一个指数的计算,我们知道指数计算在计算机中是特别耗费时间,当特征维数较多,待分类的类别个数也比较多的的时候,指数计算势必会导致最后的分类的速度变得很慢,所以能不能把指数计算去掉呢?答案当然是可以的,我们只需要对表达式取对数。

       因为是公共项,所以,我们去掉,目标函数就变为:

       对目标函数取对数:

         

       在分类之前,我们为了消除量纲的影响,都需要对所有维的特征做归一化处理,使其服从标准正态分布,另外,如果我们在取特征的时候,每一维特征都取得非常好,它们之间相互独立(其实可以对特征做变换,使各维特征能够相互独立,如PCA,LDA等),如果上述条件都满足,每个特征都会具有相同的方差,不同维之间的协方差为0(因为不同维特征不相关),这种情况下,协方差矩阵是对角阵,且是一个单位阵 E,因此,每一类的协方差都相等,因此,公式化简为:

       

       如果各类的先验概率相等,即 的大小与类别无关,那么上面的式子中的最后一项又可以去掉,最终公式变成了:

       

       到此为止,这个目标函数就已经没有了指数和对数计算了!就剩下一些矩阵的运算了,所以运算速度也得到了很大的提高!

       在实际的使用当中,我们需要根据不同的问题特点,来确定最终能化简的程度。

参考资料:

百度文库——最大似然分类器的基本思想和数学原理:

http://wenku.baidu.com/view/12a5de46a8956bec0975e364.html

百度文库——最大似然分类算法原理及实现:

http://wenku.baidu.com/view/03a40da0f524ccbff12184c7.html

百度文库——矩阵模板类:

http://wenku.baidu.com/link?url=GawKlZv9teHxqjBWuBRVWs52HRusBAa_SnkNN2AGi8hR9ScGGRBWCA7beNhuCGRAx4OcbJJZN3NXKdit_ejkS4yjYYSNnSdIq0lK2i43hym

矩阵加减求逆运算的模板类:

http://download.csdn.net/download/weijieli/2766053

ps:使用或者转载请标明出处,禁止以商业为目的的使用。

如果有需要word版,或者是pdf版的,请与我联系,QQ:358536026



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有