学习心得
观看吴恩达教授机器学习课程时,我发现重点在于理解视频内容而非大量记笔记。建议先完整观看视频,重点关注总结部分(wrap up)和回顾内容(recap),然后查阅讲义,最后整理200行左右的笔记即可。真正的价值在于理解算法原理。
朴素贝叶斯模型概述
朴素贝叶斯算法主要包含两种事件模型:
- 多元伯努利事件模型(Multivariate Bernoulli Event Model):特征x取值仅为0或1
- 多项式事件模型(Multinomial Event Model):特征x可以取多种离散值
In particular xi|y is now a multinomial, rather than a Bernoulli distribution.
本文重点讲解第二种模型——多项式事件模型,该模型虽然理解难度较大(我反复观看了三遍才完全理解),但能够更好地处理词频信息,且同样不考虑词的位置信息。
多项式事件模型原理
模型动机
在垃圾邮件分类场景中,词频信息至关重要。例如”促销”这个词,出现一次和出现多次具有不同的意义:
- 出现多次:更可能是垃圾邮件
- 出现一次:可能是误操作,重要性较低
模型定义
假设我们有m封邮件作为训练集,每封邮件的长度不同。定义:
- i = 1, ⋯, m:第i封邮件
- ni:第i封邮件的词数
- j = 1, ⋯, ni:第i封邮件的第j个词位置
- 字典大小为50000个词
使用指示函数ℐ{xj(i) = k}来表示第i封邮件的第j个词是否为字典中的第k个词。
概率模型
朴素贝叶斯的基本假设是条件独立性:
$$P(x;y)=(\prod_{i=1}^nP(x_i|y))\cdot P(y)$$
其中:
- x是特征向量
- y是类别标签(0:正常邮件,1:垃圾邮件)
定义参数:
- ϕk|y = 1 = P(xj=k|y=1):在垃圾邮件中词k出现的概率
- ϕk|y = 0 = P(xj=k|y=0):在正常邮件中词k出现的概率
- ϕy = P(y):先验概率
参数估计公式
$$\phi_{k|y=1}= \frac{ \sum_{i=1}^m (\mathcal I\{y^{(i)}=1\} \sum_{j=1}^{n_i} \mathcal I\{x_j^{(i)}=k\} ) }{ \sum_{i=1}^m ( \mathcal I\{y^{(i)}=1\} \cdot n_i ) }$$
公式解析:
- 分子部分:
- ℐ{y(i) = 1}:筛选垃圾邮件
- $\sum_{j=1}^{n_i} \mathcal I\{x_j^{(i)}=k\}$:统计第i封邮件中词k的出现次数
- 分子总和:所有垃圾邮件中词k的总出现次数
- 分母部分:
- $\sum_{i=1}^m (\mathcal I\{y^{(i)}=1\} \cdot n_i)$:所有垃圾邮件的总词数
- 表示在y = 1条件下所有可能的词位置
Laplace平滑
为了避免零概率问题,采用Laplace平滑:
$$\phi_{k|y=1}= \frac{ \sum_{i=1}^m (\mathcal I\{y^{(i)}=1\} \sum_{j=1}^{n_i} \mathcal I\{x_j^{(i)}=k\} )+1 }{ \sum_{i=1}^m ( \mathcal I\{y^{(i)}=1\} \cdot n_i )+50000 }$$
平滑原理:在分子加1(确保每个词至少出现一次),分母加字典大小50000(保持概率归一化)。
模型特点与局限性
优势
- 词频敏感性:能够区分词的出现频率差异
- 实现简单:可以使用one-hot编码处理多频词
- 实践效果好:尽管假设词间独立(现实中不成立),但在实际应用中表现良好
局限性
- 位置无关:不考虑词在文本中的位置信息
- 独立性假设:假设特征之间完全独立,与现实不符