在 GDA 的假设中, 我们所处理的数据 是离散的 0-1 形式, 而 是连续的特征指标. 在 Naive Bayes 中, 我们将处理 同样为离散的情景.
本节以 spam mail filter 为例. 其中 表示否/是 spam mail; 为一个 0-1 向量, 每一个元素 表示是否包含某个单词.
1. Multivariate Bernoulli Event Model
1.1 Naive Bayes Assumption
作为 generative model, 我们要通过 Bayes 公式计算 , 而为了计算它就需要得到 和 .
其中 由于是离散的, 假设 , 完全刻画其联合分布需要 个参数, 这会造成维度爆炸.
为简化模型, Naive Bayes 做了一个强假设, 称为 Naive Bayes Assumption, 而由此得到的模型就称为 Naive Bayes Classifier.
Assumption (Naive Bayes). 在给定 的条件下, 各 彼此独立, 即
1.2 Derivation
记号:
- , .
- .
- Training set: .
得到联合似然函数:
得到 MLE 的参数估计:
Note: Parameter interpretation
就是在所有 的样本中, 例如是 spam 的样本中, 第 个特征取值为 的样本占比. 同理. 就是 的样本占总样本的比例.
做出判断, 即判断是否是 spam, 也就是判断概率 的大小. 具体地, 将得到的 MLE 参数代入判别式:
Note: New dictionary entries
如果在 test set 中出现了一个 dictionary 不存在的新单词, 会出现问题. 因为在这种情况下, , 所以分子分母都是 . 下文的 Laplace smoothing 可以解决这一问题.
简而言之, 得到的新的 Naive Bayes Classifier 参数估计为:
2. Laplace Smoothing
原始问题: 上文提到的 问题可以概括为, 在统计学意义上, 我们直接将数据集中没有出现过的结果都认为其出现概率为 .
具体而言, 假设我们有一个有限样本容量 的数据集 , 每个样本 以概率 取值为 的一个. Initially, 对于参数 , 即 取第 种取值, 其估计为:
Definition (Laplace smoothing formula).
这里的 是 有可能取到的取值个数.
通过 Laplace smoothing 变换的数据依然符合归一化, 即 , 且解决了 的问题.
3. Multinomial Event Model
对于同样的 spam detection 问题, 我们采用另一种表示方法:
- 记 为词典规模, 即含有的单词数量; 为识别的 email 中的 token 总数.
- 向量 表示一整个 email, 每个分量 中下标 表示 email 按照行文顺序的第 个字符, 其取值表示该位置的这个词在词典中的编号.
同样施加 Naive Bayes Assumption:
3.1 Spam Detection Example
- .
- : 在类别为 的情况下, email 中第 个单词取到字典中第 个单词的概率. 注意这里的 并不依赖于 , 这是在假设单词的出现内容与其所在的位置无关.
得到似然函数:
其中 为 email 数, 即 training set 样本数, 为第 个 email 中的 token 数.
得到 MLE:
该理解也是自然的:
- 表示遍历每一个 email 样本 , 再遍历每个 email 样本中的全部 token, 得到标记为 spam 的 email 且出现单词 的次数, 再除以全部 email 中标记为 spam 的总词汇数目.
- 其余参数也以此类推.