条件概率
假设有两个随机事件A、B,事件A发生的概率为P(A),事件B发生的概率为P(B),那么事件B已经发生的条件下,事件A发生的概率记为P(A|B),这就是条件概率。
计算条件概率的公式很简单,可以写成:
即,A和B事件同时发生的概率/B事件发生的概率。
条件概率的应用
用下面的例子来进一步说明一下:
一座别墅在过去的 20 年里一共发生过 2 次被盗,别墅的主人有一条狗,狗平均每周晚上叫 3 次,那么:在狗叫的时候发生入侵的概率是多少?
我们定义狗叫为A事件,盗窃为B事件,已经知道,P(A) = 3/7,P(B) = 2/(20*365) = 2/7300。假设狗叫和盗窃为两个独立事件,也就是互相之间没有任何关联的话,那么P(AB)的值为P(A)x P(B),根据上面的条件概率公式,就可以计算出P(A|B)和P(B|A)的值。
推导贝叶斯公式
接下来,我们把条件概率的公式变形一下:P(AB) = P(A)xP(B|A)=P(B)xP(A|B),可以导出,P(B|A) = P(A|B) x P(B) / P(A),这个就是贝叶斯公式了。
你也可以说,贝叶斯公式就是条件概率,但贝叶斯公式更侧重强调两个条件概率P(B|A) 和 P(A|B)之间的关系。接下来看看贝叶斯公式的应用场景,还是拿上面的例子来说明。
贝叶斯的应用
我们知道,现实生活中盗窃和狗叫两个事件肯定会有联系的,有盗窃发生时,狗叫的概率会比平时大很多。这里假设当地警察根据多年经验,判断出来这个概率为0.9,我们前面定义了狗叫为A事件,盗窃为B事件,那么0.9其实就是 P(A|B)的值 。然后警察把这个概率,告诉了当地居民,居民根据贝叶斯公式算出了P(B|A),也就是狗叫时,发生盗窃的概率,P(B|A) = 0.9*(2/7300) / (3/7) = 0.00058。好了,这下我们知道了,发生盗窃的概率为2/7300,也就是0.00027,而狗叫时发生盗窃的概率比狗不叫时要高出一倍。
假设过去经验表明,平均一年居民因为盗窃而损失1万元的话,那只要养条狗,然后在每次狗叫的时候起来看看,就可以减少一半的盗窃案,居民平均一年盗窃的平均损失也就可以降为5000元。所以,你们自己算算账吧,养条狗值不值?
所以说,数学才是人生导师啊!
词性标注
机器学习中的多分类可以使用贝叶斯来实现。这里举个例子。
自然语言处理中经常涉及到词性标注,这里使用机器学习中的贝叶斯分类来做。
首先准备大量的语料,每一条语料几个按自然语言顺序排列的词的词名及词性。
如:
推进:动词——改革:名词
我们:名称——的:助词——改革:名字
需要:副词——改革:动词——制度:名词
……
大量语料输入贝叶斯分类训练器,计算贝叶斯分类模型中的概率分布,最终生成词性标注模型。
当有新的语料需要预测时,比如:艰难:形容词——的:助词——改革:?
模型判断出,“改革”在此处为名词。