1 min read

"吴恩达《机器学习导论》:朴素贝叶斯算法详解

课程资源

学习心得

观看吴恩达教授机器学习课程时,我发现重点在于理解视频内容而非大量记笔记。建议先完整观看视频,重点关注总结部分(wrap up)和回顾内容(recap),然后查阅讲义,最后整理200行左右的笔记即可。真正的价值在于理解算法原理。

朴素贝叶斯模型概述

朴素贝叶斯算法主要包含两种事件模型:

  1. 多元伯努利事件模型(Multivariate Bernoulli Event Model):特征$x$取值仅为0或1
  2. 多项式事件模型(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 ) }$$

公式解析:

  1. 分子部分
    • $\mathcal I{y^{(i)}=1}$:筛选垃圾邮件
    • $\sum_{j=1}^{n_i} \mathcal I{x_j^{(i)}=k}$:统计第$i$封邮件中词$k$的出现次数
    • 分子总和:所有垃圾邮件中词$k$的总出现次数
  2. 分母部分
    • $\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(保持概率归一化)。

模型特点与局限性

优势

  1. 词频敏感性:能够区分词的出现频率差异
  2. 实现简单:可以使用one-hot编码处理多频词
  3. 实践效果好:尽管假设词间独立(现实中不成立),但在实际应用中表现良好

局限性

  1. 位置无关:不考虑词在文本中的位置信息
  2. 独立性假设:假设特征之间完全独立,与现实不符

后续内容预告

接下来将介绍非线性生成模型,进一步扩展朴素贝叶斯算法的应用范围。