# Naive Bayes classifier

Yao Yao on December 25, 2014

Bayes Classifier 在 ISL 里零零散散提到一些，不正式写一下总觉得有点不痛快。

## 1. Bayes classifier

$$$C^{\text{Bayes}}(x) = \underset{k = \{1,2,\dots, K\}}{\operatorname{argmax}} \operatorname{P}(Y=y_k \mid X=x^{(i)})$$$

• Naive Bayes classifier
• Tree Augmented Naive Bayes classifier (TAN)
• Bayesian network Augmented Naive Bayes classifier (BAN)
• General Bayesian Network (GBN)

## 2. Naive Bayes classifier

• 设 $x^{(i)} = { x^{(i)}_1,x^{(i)}_2,\cdots,x^{(i)}_n }$为一个 test point，$x^{(i)}_j$ 表示 $x^{(i)}$ 的 $j^{th}$ feature 的值。
• class (label) 集合 $C = { y_1,y_2,\cdots,y_K }$
• 我们把 $Pr(Y=y_k \mid X=x^{(i)})$ 简写成 $Pr(y_k \vert x^{(i)})$
• 如果 $k’ = \underset{k = {1,2,\dots, K}}{\operatorname{argmax}} \operatorname{P}(y_k \vert x^{(i)})$，则把 $x^{(i)}$ 归到 $y_{k’}$ 对应的 class 下

$$$Pr(y_k \vert x^{(i)}) = \frac{Pr(x^{(i)} \vert y_k) Pr(y_k)}{Pr(x^{(i)})}$$$

$$$Pr(x^{(i)} \vert y_k) = Pr(x^{(i)}_1 \vert y_k) Pr(x^{(i)}_2 \vert y_k) \cdots Pr(x^{(i)}_n \vert y_k) = \prod_{j=1}^{n}{Pr(x^{(i)}_j \vert y_k)}$$$

$$$C^{\text{Naive Bayes}}(x) = \underset{k = \{1,2,\dots, K\}}{\operatorname{argmax}} Pr(y_k) \prod_{j=1}^{n}{Pr(x^{(i)}_j \vert y_k)}$$$

## 3. Parameter Estimation and Event Models

$Pr(Y=y_k)$ 比较好估计，直接计算统计数据就好了，即 $Pr(Y=y_k) = \frac{\text{# of samples labled } y_k}{\text{total # of samples}}$。由于 Naive Bayes classifier 是一种典型的用到大量样本的方法，所以这么搞没问题。

$Pr(x^{(i)}_j \vert y_k)$ 就麻烦一点，根据 Naive Bayes classifier - wikipedia 的说法：

… one must assume a distribution for the features from the training set. The assumptions on distributions of features are called the event model of the Naive Bayes classifier.

• for continuous features:
• Gaussian event model
• 统计所有 label 为 $y_k$ 的 sample 的 feature $j$ 的值，得到 variance $\sigma_{jk}^2$ 和 mean $\mu_{jk}$，进而得到一个高斯分布，把 $x_j^{(i)}$ 的值带进去计算即可得到概率
• for discrete features
• multinomial event model
• Bernoulli event model
• 非常常用的两种 event model，具体自己看 wiki。如果需要深入研究，wiki 后面附了文章专门讨论这两种 event model 在 document classification 应用上的优劣。