贝叶斯公式广泛的被利用到机器学习领域,实际上它也是概率论的基础,因为它贯穿了整个机器学习中对随机问题进行分析的整个过程。
贝叶斯公式实际上解决了计算条件概率的问题。发生一件事情的概率,指的是在随机实验中,有多少比例的样本发生了特定的事情(A),就称为该事件的发生概率(P(A))。如果一个样本会发生两个事件,称为A和B,那么有两个条件概率:
P(B|A):发生A事件的样本里,发生B事件的概率,即满足A条件前提下,发生B事件的条件概率。
P(A|B):发生B事件的样本里,发生A事件的概率,即满足B条件前提下,发生A事件的条件概率。
有人可能会觉得对于满足条件的样本数而言,P(B|A)和P(A|B)应该是相同的,为何条件概率不同?原因是,条件概率指的是发生第二个事件相对于第一个事件的概率,而不是相对于整个样本的。
贝叶斯公式非常简洁的说明了如何计算条件概率:
P(B|A) = P(A|B) * P(B) / P(A)
为了方便理解,这个公式还可以写成这样:
P(B|A) * P(A) = P(A|B) * P(B)
公式的左右两边实际上就是同时满足A和B两个条件下,在整个样本中出现的概率。这就是前面提到的,满足两个条件的样本数是确定的,并不会因为哪个条件在先而发生变化。
如下图所示,整个方框为所有样本数(t),其中A圈表示A的样本数(a);B圈表示B的样本数(b);A和B重叠的样本数为c;那么:
P(A) = a/t
P(B) = b/t
P(A|B) = c/a
P(B|A) = c/b
相信各位很容易看出来有这个关系:
c/t = P(A|B) * P(B) = P(B|A) * P(A)
也就是A和B条件同时满足时在整个样本中出现的概率。这样就能明白贝叶斯公式为什么可以成立的原因了。正如拉普拉斯所说,概率论只不过是把常识用数学公式表达了出来而已。