Yulong Niu

个人博客

朴素贝叶斯分类器应用于二元数据类型

Posted at — Oct 15, 2017

1. 贝叶斯定理

已知事件$A$和$B$,则条件概率为:

$$ \begin{align} \begin{split} P(A | B) &= \frac{P(A,B)}{P(B)} \newline P(B | A) &= \frac{P(A,B)}{P(A)} \end{split} \label{eq:1} \end{align} $$

可以推导出:

$$ \begin{align} P(B|A) = \frac{P(A|B)P(B)}{P(A)} \label{eq:2} \end{align} $$

2. 分类器简介

朴素贝叶斯分类器(Naive Bayes classifier)是一种简单、有效的分类器,其难点在于估算条件概率。比如,一个数据集拥有$N$个相互独立的特征,$C$个分组,对于$C_j$条件概率模型为:

$$ \begin{align} \begin{split} p(C_j|F_1,\cdots,F_n) &= \frac{p(F_1,\cdots,F_n|C_j)p(C_j)}{p(F_1,\cdots,F_n)} \newline &= p(F_1|C_j) \cdots p(F_n|C_j)p(C_j)(1/p(F_1,\cdots,F_n)) \end{split} \label{eq:3} \end{align} $$

由于$1/p(F_1,\cdots,F_n)$在不同分组中为定值,因此:

$$ \begin{align} \begin{split} p(C_j|F_1,\cdots,F_n) &\propto p(C_j)\prod_{i=1}^{N}p(F_i|C_j) \end{split} \label{eq:4} \end{align} $$

其中,$p(C_j)$通常容易求得,即$C_j$分组在测试数据集中出现的频率。而$p(F_i\ \vert C_j)$则根据不同的测试数据类型,有不同的估计值。

以下讨论两种二元数据类型,例如某个数据集有三种特征量:

$$ F = \left[ \begin{array}{f} F_1 \newline F_2 \newline F_3 \end{array} \right] $$

3. 伯努利分布

每一个特征量的取值都为$0$或$1$。分组$C_j$含有两个已知样本为:

$$ C_{j1} = \left[ \begin{array}{cj1} 0\newline 1\newline 0 \end{array} \right] $$

$$ C_{j2} = \left[ \begin{array}{cj2} 0\newline 0\newline 1 \end{array} \right] $$

某个预测样本为:

$$ C_{jp1} = \left[ \begin{array}{cjp1} 1\newline 0\newline 1 \end{array} \right] $$

由于$p(F_i \vert C_j)$不能为0,根据Rule of succession得各个特征的条件概率为:

$$ \begin{align*} \begin{split} p(F1|C_j) &= \frac{0+1}{2+2} &= \frac{1}{4} \newline p(F2|C_j) &= \frac{1+1}{2+2} &= \frac{1}{2} \newline p(F3|C_j) &= \frac{1+1}{2+2} &= \frac{1}{2} \end{split} \end{align*} $$

4. 二项分布

每一个特征量的取值都一个元素为$0$或$1$的向量(长度可不等)。分组$C_j$含有两个已知样本为:

$$ C_{j1} = \left[ \begin{array}{cj1} 0 & 1 & 0 & 1\newline 1 & 0 & 1\newline 0 & 0 \end{array} \right] $$

$$ C_{j2} = \left[ \begin{array}{cj2} 0 & 1 & 1 & 1\newline 1 & 1 & 1\newline 0 & 0 \end{array} \right] $$

某个预测样本为:

$$ C_{jp1} = \left[ \begin{array}{cjp1} 0 & 0 & 1 & 1\newline 1 & 0 & 1\newline 0 & 0 \end{array} \right] $$

各个特征的条件概率为:

$$ \begin{align*} \begin{split} p(F1|C_j) &= \left(\frac{3+1}{8+2}\right)^2 \times \left(\frac{5+1}{8+2}\right)^2 \newline p(F2|C_j) &= \left(\frac{5+1}{6+2}\right)^2 \times \left(\frac{1+1}{6+2}\right) \newline p(F3|C_j) &= \left(\frac{4+1}{4+2}\right)^2 \end{split} \end{align*} $$

优化

  1. 当特征较多时,会面临多个小数($p$值)相乘。可以取对数后再相加,即$\sum\log{p}$。

  2. 虽然上文讨论的是二元数据,但是朴素贝叶斯分类器也适用于连续型或者其他离散型数据类型。

参考资料

更新记录

2017年7月15日