朴素贝叶斯法
\(\text{Naive Bayes}\)
朴素贝叶斯法基于一个强假设,即特征条件独立性。由条件独立性假设可将公式 \((2)\) 化简为公式 \((3)\)。此外,朴素贝叶斯法是对输入进行分类,这其中的机理涉及到两个概念:先验概率和后验概率;先验概率是类别的先验分布 \(P(Y)\),条件概率 \(P(X |Y)\) 是在类别条件下输入的分布,后验概率 \(P(Y |X)\) 是在输入条件下类的分布;最后我们选择后验概率最大的分类情况作为输入的类标签。
朴素贝叶斯法的学习与分类
基本方法
设输入空间 \(\mathcal{X} \in \mathbb{R}^n\) 为 \(n\) 维向量的集合,输出空间类标记集合 \(\mathcal{Y} = \{c_1, c_2, \cdots, c_K \}\)。训练数据集
\[ T = \{(x_1, y_1), (x_2, y_2), \dots, (x_N, y_N)\} \]
由 \(P(X, Y)\) 独立同分布产生。
朴素贝叶斯法通过训练数据集学习联合概率分布 \(P(X, Y)\)。具体地,学习以下先验概率分布及条件概率分布。先验概率分布
\[ P(Y = c_k), \quad k = 1, 2, \cdots K \tag{1} \]
条件概率分布
\[ P(X = x |Y = c_k) = P(X^{(1)} = x^{(1)}, \cdots, X^{(n)} = x^{(n)} |Y = c_k), \quad k = 1, 2, \cdots, K \tag{2} \]
于是学习到联合概率分布 \(P(X, Y)\)。
由条件独立性假设得
\[ P(X = x |Y = c_k) = \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k) \tag{3} \]
朴素贝叶斯法分类时,对给定的输入 \(x\),通过学习到的模型计算后验概率分布 \(P(Y = c_k |X = x)\),将后验概率最大的类作为 \(x\) 的类输出。后验概率计算如下:
\[ P(Y = c_k |X = x) = \frac{P(X = x |Y = c_k) P(Y = c_k)}{\sum_{k} P(X = x |Y = c_k) P(Y = c_k)} \tag{4} \]
也就是:
\[ P(Y = c_k |X = x) = \frac{P(Y = c_k) \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k)}{\sum_{k} P(Y = c_k) \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k)} \tag{5} \]
这是朴素贝叶斯法分类的基本公式。于是,朴素贝叶斯分类器可表示为
\[ y = f(x) = \operatorname{arg} \max_{c_k} \frac{P(Y = c_k) \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k)}{\sum_{k} P(Y = c_k) \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k)} \tag{6} \]
注意到分母对所有 \(c_k\) 都是相同的,所以,
\[ y = f(x) = \operatorname{arg} \max_{c_k} P(Y = c_k) \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k) \tag{7} \]
后验概率最大化的含义
朴素贝叶斯法将实例分到后验概率最大的类中。这等价于期望风险最小化。假设选择 0-1 损失函数:
\[ L(Y, f(X)) = \begin{cases} 1, &Y \neq f(X) \\[10pt] 0, &Y = f(X) \end{cases} \]
式中 \(f(X)\) 是分类决策函数。这时,期望风险函数为
\[ R_{\exp}(f) = \mathbf{E}[L(Y, f(X))] \]
期望是对联合分布 \(P(X, Y)\)取的。由此取条件期望:
\[ R_{\exp}(f) = \mathbf{E_{X}} \sum_{k = 1}^{K}[L(c_k, f(X))] P(c_k |X) \]
为了使期望风险最小化,只需对 \(X = x\) 逐个极小化,由此得到:
\[ f(x) = \operatorname{arg} \max_{y \in \mathcal{Y}} P(y = c_k |X = x) \]
朴素贝叶斯法的参数估计
学习与分类算法
输入:训练数据 \(T = \{(x_1, y_1), (x_2, y_2), \dots, (x_N, y_N)\}\),其中 \(x_i = (x_i^{(1)}, x_i^{(2)}, \dots, x_i^{(n)})\),\(x_i^{(j)}\) 是第 \(i\) 个样本的第 \(j\) 个特征,\(x_i^{(j)} \in \{a_{j1}, a_{j2}, \cdots, a_{jS_j}\}\) 是特征 \(x_i^{(j)}\) 的可能取值,\(y_i \in \{c_1, c_2, \cdots, c_K\}\)。 输出:实例 \(x\) 的分类。
(1)计算先验概率及条件概率 \[ \begin{align*} P(Y = c_k) &= \frac{\sum_{i = 1}^{N} I(y_i = ck)}{N}, \quad k = 1, 2, \cdots, K \\[10pt] P(X^{(j)} = a_{jl} |Y = c_k) &= \frac{\sum_{i = 1}^{N} I(x_i^{(j)} = a_{jl}, y_i = c_k)}{\sum_{i = 1}^{N} I(y_i = c_k)} \\[10pt] j = 1, 2, \cdots, n; \quad l &= 1, 2, \cdots, S_j; \quad k = 1, 2, \cdots, K \end{align*} \] (2)对于给定实例 \(x = (x^{(1)}, x^{(2)}, \dots, x^{(n)})\),计算: \[ P(Y = c_k) \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k), \quad k = 1, 2, \cdots, K \] (3)确定实例 \(x\) 的类 \[ y = \operatorname{arg} \max_{c_k} P(Y = c_k) \prod_{j = 1}^{n} P(X^{(j)} = x^{(j)} |Y = c_k) \]
贝叶斯估计
用极大似然估计可能会出现所要估计的概率值为 \(0\) 的情况。这是采用贝叶斯估计。
\[ \begin{align*} P_{\lambda}(X^{(j)} = a_{jl} |Y = c_k) &= \frac{\sum_{i = 1}^{N} I(x_i^{(j)} = a_{jl}, y_i = c_k) + \lambda}{\sum_{i = 1}^{N} I(y_i = c_k) + S_j \lambda} \tag{8} \\[10pt] P_{\lambda}(Y = c_k) &= \frac{\sum_{i = 1}^{N} I(y_i = c_k) + \lambda}{N + K \lambda} \tag{9} \end{align*} \]
常取 \(\lambda = 1\)