首页 > 代码库 > 先验概率、后验概率、条件概率

先验概率、后验概率、条件概率

今天看了 Larry Wasserman写的 All of Statistics中的第一章,第一章主要讲概率,其中最主要的就是贝叶斯公式。要了解贝叶斯公式,就得知道全概率公式:

通俗的讲,先验概率就是事情尚未发生前,我们对该事发生概率的估计,例如全概率公式中P(B)就是先验概率,求解方法有很多种,全概率公式是一种,也可以根据经验等,例如抛一枚硬币头向上的概率为0.5。

后验概率则是表示在事情已经发生的条件下,要求该事发生原因是有某个因素引起的可能性的大小。

先验概率是在缺乏某个事实的情况下描述一个变量;而后验概率(Probability of outcomes of an experiment after it has been performed and a certain event has occured.)是在考虑了一个事实之后的条件概率。

通过贝叶斯公式,利用先验概率、似然函数可以计算出后验概率。

贝叶斯公式有很多应用,可以应用到分类,也可以用来决策,基本思路都是找出使后验概率最大的那个结果。以分类为例,就是找出一个最大的概率:已知样本的某些特性,求解该样本属于某个类别的后验概率。举个垃圾邮件的例子:

将邮件分为三类,A1=spam,A2=low priority ,A3=high priority.从以前的经验中得到先验概率P(A1)=0.7,P(A2)=0.2,P(A3)=0.1.这三个的概率之和一定为1。设事件B为邮件中包含单词free(为啥是free,我也不知道,只是举个例子不要当真,也可以是democracy),我们可以古典概率模型计算出P(B|A1)=0.9,P(B|A2)=0.01,P(B|A3)=0.01.当然这三个的和可能不为1,你知道原因么?言归正传,某天我收到一封邮件,发件人来自米国这个头号资本主义国家,这不是重点,重点是这封邮件包含了单词free,问这封邮件为spam的概率是多少?


也就是说你有0.995的成功率判定该邮件为spam,至此你不知不觉地已经构建了最简单的反垃圾邮件算法,更多细节与拓展需要继续学习。

贝叶斯只是反垃圾邮件的一种方法,还可以用svm等方法,这个还没细看。

上述例子只是贝叶斯公式的一个简单应用,它还有更多的变形与应用,以后遇到在细写吧。

再举一个很经典的例子来深入了解下贝叶斯公式。这个例子基本是每个总结贝叶斯公式必用的例子,一方面是这个例子很经典,另一个原因就是人们都太懒了不愿意去想新的例子,不幸的是我也很懒。

如下:

有三个门,一个门后面有一个里有汽车,如果选对了就可以得到这辆车,当应试者选定一个门之后,主持人打开了另外一个门,空的。问应试者要不要换一个选择。假设主持人知道车所在的那个门。
经典解法(结论倒是正确的):
    第一次选择正确的概率是1/3,因此汽车在另外两个门里的概率是2/3。主持人指出一个门,如果你开始选错了(2/3概率),则剩下的那个门里100%有汽车;如果你第一次选对(1/3)了,剩下那个门里100%没汽车。
所以主持人提示之后,你不换的话正确概率是1/3*100%+2/3*0=1/3,你换的话正确概率是1/3*0+2/3*100%=2/3。这个解法的的问题在于,现在主持人已经打开一个空门了(而且主持人是有意打开这个门的),在这一“信息” 出现后,还能说当初选错的概率是2/3吗?这一后验事实不会改变我们对于先验概率的看法吗?答案是会的。更具体地说,主持人打开一扇门后,对当初选择错误 的概率估计不一定等于2/3。
    从头说起。假设我选了B门,假设主持人打开了C门,那么他在什么情况下会打开C门呢?
    若A有车(先验概率P=1/3),那主持人100%打开C门(他显然不会打开B);
    若B有车(先验概率P=1/3),那此时主持人有A和C两个选择,假设他以K的概率打开C(一般K=1/2,但我们暂把它设成变量);
    若C有车(先验概率P=1/3),那主持人打开C的概率为0(只要他不傻。。。)
    已知他打开了C,那根据贝叶斯公式——这里P(M|N)表示N事件发生时M事件发生的概率:

                            P(C打开|B有车)* p(B有车)

P(B有车|C打开)=     ------------------------------

                                 P(C打开)

                P(C打开|B有车)* p(B有车)

= ------------------------------------

   P(C打开|A有车)* p(A有车)+ P(C打开|B有车)* p(B有车)

                            K * 1/3

                =      -------------------

                         1 * 1/3 + K * 1/3

                          K

                =      -------

                        K + 1
    该值何时等于1/3 呢(也就是经典解法里的假设)? 只有 K=1/2 时。也就是一般情况下。但如果主持人有偏好,比方说他就是喜欢打开右边的门(假设C在右边),设K=3/4, 那么B有车的概率就变成了 3/5,不再是1/3,后验事实改变了先验概率的估计!

    但这并不改变正确的选择,我们仍然应该改选A门, 解释如下:

                             P(C打开|A有车)* p(A有车)

P(A有车|C打开)=   ------------------------------

                                 P(C打开)

             P(C打开|A有车)* p(A有车)

 = --------------------------------------------

    P(C打开|A有车)* p(A有车)+ P(C打开|B有车)* p(B有车)

                               1 * 1/3

                =       -------------------

                            1 * 1/3 + K * 1/3

                       1

                =   -------

                     K + 1

    而K < 1(假设主持人没有极端到非C不选的程度),所以永远有 P(B有车|C打开) < P( A有车|C打开).A有车的概率永远比B大,我们还是应该改变选择。
    这个解法的重点在于考虑了C被打开这个事实的影响,从而消除了关于先验后验的纷扰。

先验概率、后验概率、条件概率