在介绍朴素贝叶斯和贝叶斯信念网络之前,我们首先得知道其中涉及到的相关概念和背景知识。
概念和背景知识
条件概率
条件概率就是指已知事件B发生的条件下,事件A发生的概率(即事件A在事件B发生下的条件概率) ,记为
根据上面的Venn 图可以很容易清楚地知道,在事件B发生的情况下,事件A发生的概率等于P(A∩B)除以P(B),所以条件的公式即为:
全概率公式
出了条件概率之外,还有可能会用到全概率公式。所以,我们简单介绍一下全概率公式。
假定样本空间S,是两个事件A与A'所构成。如下图:
然后在这个样本空间S中,任意一个事件B,如下图:
那么,对于事件B,它发生的概率就等于事件A和B同时发生的概率与事件A'和事件B同时发生的概率之和,即
由之前的条件概率公式可以得出A和B同时发生的概率:
所以,任意事件B的概率可以下次如下形式:
同理,可以推广到由n个事件构成的样本空间:
贝叶斯公式
对条件概率进行变形可以得到,对于任何事件A满足:P(Ai|B)P(B)=P(B|Ai)*P(Ai),即P(Ai|B)=P(B|Ai)*P(Ai)/P(B)
由全概率公式
替换条件概率中的P(B),得到下面的贝叶斯公式:
我们把贝叶斯公式中的P(Bi)称作时间Bi的先验概率,这是一种事件发生前的预判概率,一般基于先验知识。
而P(A|Bi)是在Bi事件发生的条件下事件A发生的概率(条件概率,这也是一种后验概率)
P(Bi|A)是在事件A发生条件下事件Bi发生的概率(条件概率,这也是一种后验概率,这一般使我们求解的目标)
属性条件独立性假设
对已知类别,假设所有属性相互独立。或者说,假设每个属性独立地对分类结果发生影响。
如果两个事件A和B是相互独立的,那么有:
X可以写成:
故p(c|x)可写成:
注意p(x)=。
由于分母是常量,与c无关,故我们计算c的各种取值的可能性时并不会对各结果的相对大小产生影响。因此可以忽略。
贝叶斯分类算法原理
朴素贝叶斯分类器
贝叶斯信念网络
贝叶斯信念网络,简称贝叶斯网络。它是由一个有向无环图和一个条件概率表所组成。其中,有向无环图是表示一组随机变量以及它们之间的条件依赖关系,每个结点代表一个随机变量,每条弧代表一个概率依赖。如果一条弧由结点X到Y,则X是Y的双亲或直接前驱,而Y是Z的后继。
条件概率表则是用来描述属性之间的联合概率分布。
举个例子吧:
上图中的西瓜问题的一种贝叶斯网结构和属性" 根蒂"的条件概率表。从图中网络结构可看出,而"根蒂"则直接依赖于"甜度"。进一步从条件概率表能得到"根蒂"对"甜度"的依赖关系,如P(根蒂=硬挺|甜度=高) =0.1。
贝叶斯网结构有效地表达了属性间的条件独立性。贝叶斯信网络的一个重要性质描述了各随机变量(节点)之间的条件独立假设:给定某一节点的双亲,则该随机变量条件独立于有向无环图中所有它的非后代。
如果是上面这个例子,则:
x3和x4在给定x1的取值时独立,x4和x5在给定x2的取值时独立。
构造与训练贝叶斯网络分为以下两步(也就是说,给你一个训练元组,要用贝叶斯信念网络进行分类,需要做的事):
(1)确定随机变量间的拓扑关系,形成DAG。这一步通常需要领域专家完成,而想要建立一个好的拓扑结构,通常需要不断迭代和改进才可以。
(2)训练贝叶斯网络。这一步也就是要完成条件概率表的构造,如果每个随机变量的值都是可以直接观察的,那么这一步的训练是直观的,方法类似于朴素贝叶斯分类。但是通常贝叶斯网络中存在隐藏变量节点,那么训练方法就是比较复杂,例如可使用梯度下降法。