贝叶斯分类器(下)

1. 背景

在上一篇,我们介绍了朴素贝叶斯分类器。但朴素贝叶斯分类器有一个条件独立假设,但在实际中,属性与属性之间难免会有一定的相关性,而不是完全独立,比如对一件商品,它有多个特征属性,如价格、销量、品牌等,通常情况下,价格低的商品其销量往往比较高,也就是说价格属性和销量属性就具有一定的相关关系,这时就不能用朴素贝叶斯分类器了。

本篇博文介绍一种更灵活的类条件概率$P(X|Y)$的建模方法—贝叶斯信念网络,该方法不要求给定类的所有属性都条件独立,而是允许指定哪些属性条件独立,哪些属性不条件独立。我们首先讨论怎样表示和建立该概率模型,接着举一个简单的例子来说明怎样使用模型。

2. 模型表示

贝叶斯信念网络(Bayesian belief networks, BBN),简称贝叶斯网络,用图形表示一组随机变量之间的概率关系。贝叶斯网络有两个主要成分:

  • 一个[有向无环图(dag)],表示变量之间的依赖关系
  • 一个[概率表],把各结点和它的直接父结点关联起来

考虑三个随机变量$A,B,C$,其中$A,B$相互独立,并且都直接影响第三个变量$C$。三个变量之间的关系可用图(a)中的有向无环图概括。图中每个结点表示一个变量,每条弧表示两个变量之间的依赖关系。


DAG

贝叶斯网络有一个重要的性质,描述如下:
[条件独立性质]:贝叶斯网络中的一个结点,给定它的父母结点,则它条件独立于它的所有非后代结点。

例如,图(b)中,给定$A$的父母结点$C$,$A$条件独立于$B,D$,因为$B,D$都不是$A$的后代结点,用公式表述如下:
$$
\left \{
\begin{split}
P(A|B,C) &= P(A|C) \\
P(A|D,C) &= P(A|C)
\end{split}
\right.
$$

这条特性的重要意义在于明确了贝叶斯网络可以方便地计算联合概率分布。一般情况下,多变量非独立联合条件概率分布有如下公式:
$$
P(x_1,x_2,\cdots,x_n) = P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)\cdots P(x_n|x_1,x_2,\cdots,x_{n-1})
$$

在贝叶斯网络中,由于有上述性质,任意随机变量组合的联合条件概率分布被简化成
$$
P(x_1,x_2,\cdots,x_n) = \prod_{i=1}^n P(x_i | Parents(x_i))
$$
其中,Parents表示$x_i$的直接前驱结点的集合,概率值可以从相应的条件概率表查到。

不难发现,[朴素贝叶斯分类器中的条件独立假设也可以用贝叶斯网络来表示],如图c所示,其中$Y$是类别,A,B等是属性。

贝叶斯网络除了网络拓扑结构要求的条件独立性外,每个结点还关联一个概率表:

  • 如果结点$X$没有父母结点,则表中只包含先验概率$P(X)$;
  • 如果结点$X$只有一个父母结点$Y$,则表中包含条件概率$P(X|Y)$;
  • 如果结点$X$有多个父母结点$\{Y_1,Y_2,\cdots,Y_k\}$,则表中包含条件概率$P(X|Y_1,Y_2,\cdots,Y_k)$

3. 贝叶斯网络例子

这里我们以之前博文中的产品购买案例来说明贝叶斯网络的工作流程。训练样本的属性集为$X=\{性别,年龄,婚姻\}$,类标为$Y=\{Yes,No\}$,表示是否购买产品,训练样本共有10条记录,购买记录有4条,不购买记录有6条。

在上篇博文中,我们使用了朴素贝叶斯分类器进行预测,但要假设性别、年龄和婚姻这三个属性是相互独立的,但在实际情况中,年龄和婚姻状况一般是相关的,年龄小的人一般都是未婚,而年龄大的人一般都是已婚,我们用下面的图来表示它们之间的关联。


DAG

现在给定一个测试样本$X’$,只知道性别=F,而年龄和婚姻都不清楚,我们想求出该用户购买产品的概率。由训练样本,我们可以求出下面的概率
$$
\begin{split}
P(Y=Yes|性别=F) &= \frac{P(性别=F|Y=Yes) \cdot P(Y=Yes)}{P(性别=F)} \\
&= \frac{P(性别=F|Y=Yes) \cdot P(Y=Yes)}{P(性别=F|Y=Yes) \cdot P(Y=Yes) + P(性别=F|Y=No) \cdot P(Y=No)} \\
&= \frac{1/4 \times 4/10}{1/4 \times 4/10 + 4/6 \times 6/10} \\
&= 0.2
\end{split}
$$

4. 参考资料