/ MACHINELEARNING

贝叶斯公式及模型的理解

一. 贝叶斯公式

1.1 实际的例子推导公式

这里我们用比较实际的例子来理解贝叶斯公式。

现在我们有2个骰子,每个骰子有6个面。

  • 样本空间:$6\times6 = 36$
  • 事件A:其中一个骰子展示的是2
  • 事件B:两个骰子的总和是7

如下图所示,将所有的样本空间展示出来,并圈出事件A、B两种情况的所有可能性。

那么,针对每个不同的事件所发生的概率如下:

  • 事件A发生的概率:

  • 事件B发生的概率:

  • 事件A、B同时发生的概率:

  • 在A发生的条件下,B发生的概率:

  • 在B发生的条件下,A发生的概率:

因此我们可以发现:

  • $A和B同时发生的概率 = 在B发生条件下A发生的概率 \times B发生的概率$,如下

  • $A和B同时发生的概率 = 在A发生条件下B发生的概率 \times A发生的概率$,如下

  • 由上面2个式子,可得$在B发生条件下A发生的概率 \times B发生的概率 = 在A发生条件下B发生的概率 \times A发生的概率$,即得到了贝叶斯公式,如下。

\[P(A|B)\times P(B) = P(B|A)\times P(A)\]

1.2 用图来理解贝叶斯公式

接下来我们利用图的更好的理解贝叶斯公式。

  • 白色的矩形:表示整个样本空间
  • 红色的圆:表示A事件
  • 绿色的长方形:表示B事件
  • 圆和长方形交集:表示A事件和B事件同时发生时的事件。

那么交集事件的概率就如下所示:

  • $A和B同时发生的概率 = 在B发生条件下A发生的概率 \times B发生的概率$

  • $A和B同时发生的概率 = 在A发生条件下B发生的概率 \times A发生的概率$

二. 朴素贝叶斯模型

2.1 真实案例——泰坦尼克生存者预测

我们这里选择kaggle竞赛的一个Titanic生存率预测来说明下朴素贝叶斯是如何构建概率模型的。

这里简单的构建了一个小型的数据集如下:

survival($Y$) age > 18($x_1$) pclass = 1($x_2$) sex = male($x_3$)
1 1 1 1
0 0 0 1
1 1 1 0
0 0 1 0
1 1 0 1
0 0 1 1
1 1 0 0
0 0 0 0

那么对于一条新的样本:age = 20 , pclass = 2 , sex = female的乘客而言,她能生存下来么?

2.2 朴素贝叶斯模型推导

对于上述的新样本的预测问题,我们转化成概率问题,即 \(P(Y|x_1,x_2,x_3) = ?\)

  • 这里利用贝叶斯公式转化,即:
\[P(Y|x_1,x_2,x_3) = \frac{P(x_1,x_2,x_3|Y) \times P(Y)}{P(x_1,x_2,x_3)}\]
  • 由于$x_1,x_2,x_3$出现的概率为1,因此,上式简化为: \(P(Y|x_1,x_2,x_3) = P(x_1,x_2,x_3|Y) \times P(Y)\)

  • 这里引入朴素的思想:假定每个特征条件($x_1,x_2,x_3$)之间相互独立。那么:

\[P(Y|x_1,x_2,x_3) = P(x_1|Y) \times P(x_2|Y) \times P(x_3|Y) \times P(Y)\]
  • 通过计算得到:
    • $P(x_1 = 1 Y = 1) = \frac{4}{4} = 1$
    • $P(x_2 = 0 Y = 1) = \frac{2}{4} = 0.5$
    • $P(x_3 = 0 Y = 1) = \frac{2}{4} = 0.5$
    • $P(Y = 1) = \frac{4}{8} = 0.5$
  • 因此,对于age = 20 , pclass = 2 , sex = female的乘客而言,她能生存的概率为: \(P(Y = 1|x_1 = 1,x_2 = 0,x_3 = 0) = 1 \times 0.5 \times 0.5\times 0.5 = 0.125\)