1 min read

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

学习心得

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

朴素贝叶斯模型概述

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

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

公式解析:

  1. 分子部分
    • ℐ{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. 独立性假设:假设特征之间完全独立,与现实不符

后续内容预告

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