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