本讲视频及讲义链接
上一讲介绍了朴素贝叶斯算法区分垃圾邮件和非垃圾邮件的过程,在建模过程中,我们选取的特征 的每一维都只有 的取值,因此在对 建立生成模型时,我们使用了用伯努利分布:
实际上这样的朴素贝叶斯分类器使用了多元伯努利事件模型(Multivariate Bernoulli Event Model)
不用太在意这个模型的名字,它只是说明这个模型用到了多个服从伯努利分布的随机变量。
更一般的情况,特征向量 每一维可能有 个取值,这时,对 的建模就需要使用多项式分布,而不是伯努利分布。
多项式事件模型
这是一个专门用于文本分类的模型,它对文本的分类效果比之前介绍的朴素贝叶斯分类器还要好。当然你也可以尝试将它应用于其他问题。可以根据下面的内容来理解这个模型。
之前选取特征向量 的方式丢失了一些信息,比如它没有记录每个词出现的次数等,于是我们需要采用一个新的模型来解决这个问题。
特征表示
多项式事件模型采用不同的特征表示方法:
一封邮件的特征向量 的维数 表示这封邮件包含的单词的个数,其中的第 维表示这封邮件的第 个词在词典中的索引值。 也就是说,如果一封邮件包含300个单词,那么 ,我们继续假设词典中包含50000个单词,那么这封邮件的特征向量中的每一维的取值范围就是 。
参数
有了上述的特征向量的定义之后,对于每一封邮件,可以计算对应的联合概率:
- 的含义是这封邮件的长度
- 指的是一封邮件是否是垃圾邮件的先验概率。
- 表示在已知这封邮件的类别的情况下,邮件的第 个单词的值为 的概率。
这个模型所需的参数如下:
和之前的朴素贝叶斯分布一样,我们要将这些参数拟合为训练样本的极大似然估计:
- 分子表示的是训练样本中每一封垃圾邮件中出现在词典中索引为 的单词的次数之和。
- 分母表示训练样本中所有垃圾邮件的总长度
- 整个式子的意思就是:在训练样本中的所有垃圾邮件包含的单词中,在词典中索引为 的那个单词出现的概率。
对这个参数应用上一讲末尾讲到的Laplace平滑,得到如下参数:
其中 是词典的大小,在我们的假设中是50000。
另外两个参数可以按如下式子拟合:
预测
有了这些参数,在给出一个新的邮件时,要对它进行分类,只需要分别计算 和 ,再比较它们的大小即可。
网友评论