对极大似然估计的理解

来源:互联网 发布:正规淘宝刷钻平台 编辑:程序博客网 时间:2024/05/22 03:24

我们平时做图像的目标检测也好,做大数据精准推荐也好,说到底就是做个分类,来一个数据,判断一下它的类别,该是谁的给谁。

假设有K个类别{C1,C2,...,Ck},来一条数据x,它属于K个类别的概率分别记为P(C1|x), P(C2|x), ..., P(Ck,|x), 当然,x只能属于这K个类别中的一个,假设x属于C3, 只有当你算出来的P(C3|x)比其他的都高才能正确分类。

若存在一个分类准则h(x),使得对所有的数据x,都有P(c|x))最大(小c表示x真实所属的类别),那就太好了,所有数据都能正确分类。这就是我们的目标:h(x) = argmaxP(c|x),也就是对每一个x,被分到c类的概率最大。P(c|x)怎么得到呢——重点来了!我个人认为这是分类问题的核心。

两种方案:

1,判别式模型,如LR,决策树,神经网络。就是直接建立P(c|x)的模型,学一个判别式,输入是x,输出是类别;

2,生成式模型——贝叶斯定理:P(c|x) = P(c)*P(x|c)/P(x).点击这里,有一片很好理解的贝叶斯定理的简介。

我们重点看贝叶斯定理公式:

P(c)是先验概率,就是c类占整体的概率,通常用样本中c类的比例来代替;

P(x|c)是条件概率,也叫似然概率,意思是对一个c类,长成x的样子的概率;

P(x)是证据因子,相当于是一个归一化系数,为啥呢,因为全概率公式告诉我们:P(x) = SUM(P(ci)P(x|ci)),这部分对所有类都是一样的。

上面三个,唯一一个难以确定的是条件概率P(x|c),所以欲得后验概率,先算条件概率。假设样本有m个属性,即特征向量x有m维,假设每个属性是二值的(最简单的情况),样本空间也有2^m中可能的取值,这可能比样本总数还多,也就是说很多取值在训练样本中根本没有出现,直接通过样本观测频率估计P(x|c)是不可行的。

怎么办,一种思路就是假设样本符合某种分布,用已有样本来估计这种分布的参数——这就是最大似然估计。举个例子,我假设某个类别c的样本都是正态分布,那根据已有样本很容易计算该分布的均值和方差,概率密度曲线也就出来了,P(x|c)就易得。显然,最大似然估计是一种经验型的估计,其性能完全取决于“猜测”的分布型式跟真实分布的接近程度。

这里有必要提一下,统计学领域两个学派:频率主义学派和贝叶斯学派。他们一个显著区别在于:前者认为样本符合某一确定的分布,分布参数是一个定值,可以用已有样本估算;后者认为,分布参数本身也是随机分布的(可以说是分布的分布……),观测样本只能计算观测的后验分布。这个讲起来比较绕,我后面有机会再写一篇文章单好了。

极大似然估计出条件概率,后验概率也就可以由贝叶斯定理推出。对每个样本,选择使后验概率最大的标记作为类别。等等,故事并没有结束——这个时候来了一个新的角色——风险

最大后验概率也可以叫最小误分概率,就是说所有样本分出来,认为分错的最少的分类器就是最好的——这隐含了一个条件——每一类都同等重要。但现实中,把A错分成B,和把B错分成A,风险可能是不一样的啊!举一个常用的例子,你去银行用自动存款机存钱,存款机里的验钞机有时无法识别你的一些真钞而拒绝它们,这对银行来说是一种损失:失去这几张钞票的存款;但你想像一下,如果今天你拿了一沓假币去存,存款机居然收了(确实有过这种狗血的例子),这对银行是另一种损失:直接财产损失甚至破产。显然,后者严重得多!

所以,条件风险:R(ci|x)=SUM(wijP(cj|x)),其中wij表示把j误分为i的损失,P(cj|x)是j在x下出现的概率,即后验概率。我们的目标是使SUM(R(h(x)|x)),即所有样本的损失和最小。

总结:

极大似然估计用以估计条件概率,进而得到所需的后验概率;

极大似然估计的假设是样本符合某一分布,究竟符合什么分布往往是拍脑袋想的,可能并不准确;

使分类错误率最小的不一定是好的分类器,关键是看总体风险,若各类别满足0/1风险,就直接看最大后验概率就好。


原创粉丝点击