跳转至

4 Naive Bayes

问题的提出 (page 2-2)

在机器学习领域,分类问题是一个核心任务。给定一个数据集,我们希望学习一个模型,能够将新的、未见过的数据点归类到预定义的类别中。对于下图所示的这种具有明显类别区分的数据,我们可能会考虑多种分类算法,例如:

  • K 近邻 (K-Nearest Neighbors, KNN)1:一种基于实例的学习方法,通过查找训练集中与新数据点最接近的 K 个数据点的类别来决定新数据点的类别。
  • 决策树 (Decision Tree)2:一种树形结构的分类器,通过一系列基于特征的判断将数据逐步划分到不同的类别。
  • 概率方法 (Probabilistic Methods):这类方法通过学习数据背后的概率分布来执行分类,朴素贝叶斯就是其中一种。

朴素贝叶斯分类器是一种基于贝叶斯定理的简单而有效的概率分类器。

贝叶斯 (page 3-4)

托马斯 · 贝叶斯 (Thomas Bayes) (page 3-3)

托马斯 · 贝叶斯(Thomas Bayes,约 1701-1761)是一位英国数学家,出生于伦敦。他于 1742 年成为英国皇家学会会员。贝叶斯在数学方面主要研究概率论,他的突出贡献在于首次将归纳推理法3 应用于概率论的基础理论,并创立了贝叶斯统计理论。

归纳推理法

归纳推理是一种由个别事实引出普遍结论的推理方式。在统计学中,这意味着从有限的样本数据中推断出关于总体分布或参数的信息。贝叶斯方法通过更新先验信念来整合新的证据,从而进行归纳推理。

他的工作对统计决策函数、统计推断以及统计估算等领域产生了深远影响。1763 年,理查德 · 普莱斯(Richard Price)整理并发表了贝叶斯的著作《机会问题的解法(An essay towards solving a problem in the doctrine of chances,这对于现代概率论和数理统计的发展具有重要的历史意义。

贝叶斯决策理论 (page 4-4)

贝叶斯决策理论是统计模型决策中的一个基本方法,其核心思想是在不完全信息下做出最优决策。具体步骤如下:

  1. 主观概率估计与修正:当部分状态未知时,首先对这些未知状态进行主观概率估计。然后,利用贝叶斯公式对这些估计的发生概率进行修正,使其更符合实际观察到的数据。
  2. 期望值与修正概率决策:最终,结合修正后的概率和期望值4,做出最优决策。
期望值

期望值(Expected Value)是概率论中的一个重要概念,表示随机变量所有可能取值与其对应概率乘积之和。在决策理论中,期望值常用于衡量某个决策可能带来的平均收益或损失。

贝叶斯决策理论的基本思想可以概括为:

  1. 已知类条件概率密度参数表达式和先验概率:这是进行贝叶斯决策的前提,我们需要知道每个类别的先验概率以及在给定类别下,数据特征的条件概率分布。
  2. 利用贝叶斯公式转换成后验概率:这是贝叶斯决策的核心。通过贝叶斯公式,我们将先验概率和类条件概率结合起来,计算出在给定观测数据下,数据属于某个类别的后验概率。
  3. 根据后验概率大小进行决策分类:对于一个给定的新数据点,计算其属于每个类别的后验概率,选择后验概率最大的那个类别作为最终的分类结果。

贝叶斯估计的应用 (page 5-6)

贝叶斯估计及其派生方法在人工智能和实际应用中扮演了重要角色:

  • 医学诊断系统
    • PathFinder 系统:这是最早基于贝叶斯网络的医学诊断系统之一,能够诊断淋巴疾病,涉及 60 多种疾病和 100 多种症状。
    • Internist-I 系统PathFinder 的发展版本,也是一种医学诊断系统,能够诊断多达 600 多种常见疾病。
  • 专家系统
    • OnParent 网站1995 年,微软推出了第一个基于贝叶斯网络的专家系统——OnParent (www.onparenting.msn.com),它是一个用于幼儿保健的网站,旨在帮助父母自行诊断幼儿可能遇到的健康问题。
  • 一般应用领域 (page 6-6):
    1. 故障诊断 (diagnose):识别系统或设备出现问题的根源。
    2. 专家系统 (expert system):模拟人类专家的知识和推理过程来解决复杂问题。
    3. 规划 (planning):在不确定环境中制定行动计划。
    4. 学习 (learning):从数据中学习模式和知识。
    5. 分类 (classifying):将数据点分配到预定义的类别。

概率 ( 回顾 ) (page 7-8)

样本空间的划分 (page 7-7)

样本空间的划分

\(\Omega\) 为试验 \(E\) 的样本空间,\(B_1, B_2, \dots, B_n\) \(E\) 的一组事件。如果满足以下两个条件,则称 \(B_1, B_2, \dots, B_n\) 为样本空间 \(\Omega\) 的一个划分:

  1. 互不相交\(B_i B_j = \emptyset\), for \(i, j = 1, 2, \dots, n\) \(i \neq j\)。这表示任何两个不同的事件 \(B_i\) \(B_j\) 之间没有共同的结果。
  2. 并集为全空间\(B_1 \cup B_2 \cup \dots \cup B_n = \Omega\)。这表示所有事件的并集构成了整个样本空间,即任何可能的结果都包含在这些事件中的某一个中。

简而言之,样本空间的划分就是将整个样本空间分成若干个互不重叠的部分,并且这些部分合起来就是整个样本空间。

全概率公式 (page 8-8)

全概率公式

\(\Omega\) 为试验 \(E\) 的样本空间,\(A\) \(E\) 的事件,\(B_1, B_2, \dots, B_n\) \(\Omega\) 的一个划分,且 \(P(B_i) > 0\)\(i = 1, 2, \dots, n\),则事件 \(A\) 的概率 \(P(A)\) 可以通过全概率公式计算:

\[ P(A) = P(A|B_1)P(B_1) + P(A|B_2)P(B_2) + \dots + P(A|B_n)P(B_n) \]

也可以写成求和形式:

\[ P(A) = \sum_{i=1}^n P(A|B_i)P(B_i) \]

全概率公式的意义在于,当事件 \(A\) 的发生依赖于一些互斥的先验事件 \(B_i\) 时,我们可以通过计算在每个 \(B_i\) 发生的条件下 \(A\) 发生的概率,并结合 \(B_i\) 发生的概率,来得到 \(A\) 发生的总概率。

极大似然估计法 ( 回顾 ) (page 9-13)

极大似然估计(Maximum Likelihood Estimation, MLE)是统计学中一种重要的参数估计方法。它的核心思想是:已知样本数据,反推最有可能产生这些样本数据的模型参数

极大似然估计的原理介绍 (page 9-11)

假设我们有一个模型,其行为由一组未知参数 \(\theta\) 决定。我们通过观测得到了一组数据 \(x_1, x_2, \dots, x_n\)。极大似然估计的目标就是找到那个参数值 \(\hat{\theta}\),使得在给定该参数值的情况下,观测到这组数据的概率(或概率密度)最大。

例子 (page 9-10): 假设在一个罐中放着许多白球和黑球,我们已知两种球的数目之比是 1:3,但不知道是白球多还是黑球多。现在用放回抽样方法从罐中取出 5 个球,观察结果为:黑、白、黑、黑、黑。我们希望估计取到黑球的概率 \(p\)

如果黑球和白球的比例是 1:3,那么黑球的概率 \(p\) 可能是 \(1/4\)(如果白球多)或 \(3/4\)(如果黑球多

  • 情况一:当 \(p = 1/4\) 观察到“黑、白、黑、黑、黑”的概率为:取到 4 个黑球和 1 个白球。 $$ P(\text{观测结果}|p=1/4) = \left(\frac{1}{4}\right)^4 \left(\frac{3}{4}\right)^1 = \frac{1 \cdot 3}{256 \cdot 4} = \frac{3}{1024} $$
  • 情况二:当 \(p = 3/4\) 观察到“黑、白、黑、黑、黑”的概率为:取到 4 个黑球和 1 个白球。 $$ P(\text{观测结果}|p=3/4) = \left(\frac{3}{4}\right)^4 \left(\frac{1}{4}\right)^1 = \frac{81 \cdot 1}{256 \cdot 4} = \frac{81}{1024} $$

比较两种情况的概率:由于 \(81/1024 > 3/1024\),因此我们认为 \(p=3/4\) \(p=1/4\) 更有可能产生当前的观察结果。所以,\(\hat{p} = 3/4\) 更合理,它就是极大似然估计值。

似然函数 (Likelihood Function) (page 11-12)

一般地,设总体 \(X\) 服从概率分布 \(p(x;\theta)\)(对于离散型随机变量)或概率密度函数 \(f(x;\theta)\)(对于连续型随机变量,其中 \(\theta \in \Theta\) 是未知参数。

从总体 \(X\) 中抽取一个样本 \(X_1, X_2, \dots, X_n\),其观测值为 \(x_1, x_2, \dots, x_n\)

  • 对于离散型总体

    事件 \(\{X_1 = x_1, \dots, X_n = x_n\}\) 发生的概率,称为似然函数 \(L(\theta)\): $$ L(\theta) = P{X_1 = x_1, \dots, X_n = x_n} = p(x_1;\theta) \dots p(x_n;\theta) = \prod_{i=1}^n p(x_i;\theta) $$ - 对于连续型总体: 似然函数 \(L(\theta)\) 定义为样本观测值的联合概率密度函数: $$ L(\theta) = f(x_1;\theta) \dots f(x_n;\theta) = \prod_{i=1}^n f(x_i;\theta) $$

极大似然原理: 极大似然估计就是找到参数 \(\theta\) 的值 \(\hat{\theta}\),使得似然函数 \(L(\theta)\) 达到最大值。 $$ \hat{\theta}(x_1, \dots, x_n) = \arg \max_{\theta \in \Theta} L(\theta) $$ \(\hat{\theta}(x_1, \dots, x_n)\) 称为 \(\theta\) 的极大似然估计值,相应的统计量 \(\hat{\theta}(X_1, \dots, X_n)\) 称为 \(\theta\)极大似然估计量 (MLE)

参数 \(\theta\)

未知参数 \(\theta\) 可以是一个单一的参数,也可以是一个包含多个参数的向量,例如 \(\theta = (\theta_1, \theta_2, \dots, \theta_k)\)

极大似然估计的求解 (page 13)

求解极大似然估计通常通过以下步骤进行:

  1. 对数似然函数 (Log-Likelihood Function)

    由于似然函数通常是多个概率(或概率密度)的乘积,直接求导可能比较复杂。因此,我们常常考虑其对数形式,即对数似然函数 \(l(\theta) = \ln L(\theta)\)。 注意到 \(L(\theta)\)\(\ln L(\theta)\) 在相同的 \(\theta\) 值处取得最大值(因为 \(\ln\) 函数是单调递增的),所以最大化 \(L(\theta)\) 等价于最大化 \(l(\theta)\)

  2. 求导并令导数为零: 对于参数 \(\theta_i\)(如果 \(\theta\) 是向量,则对每个分量 \(\theta_i\)),计算对数似然函数对 \(\theta_i\) 的偏导数,并令其为零,解方程组得到 \(\hat{\theta}_i\): $$ \frac{\partial l(\theta)}{\partial \theta_i} = 0, \quad i = 1, 2, \dots, k $$ 解得的 \(\hat{\theta}_i\) 即为极大似然估计值。

上述方法适用于似然函数可微且在定义域内部达到最大值的情况。对于某些分布(如均匀分布,最大值可能在边界上,此时需要结合图形分析或边界检查来确定最大值。

  1. 不变性原理 (Invariance Property): 若 \(\hat{\theta}(X_1, \dots, X_n)\)\(\theta\) 的极大似然估计量,则对于任何函数 \(g(\theta)\),其极大似然估计量为 \(g(\hat{\theta}(X_1, \dots, X_n))\)。这被称为极大似然估计量的不变性原理。

极大似然估计例题

1.4 (page 14-15)

设总体 \(X\) 的概率密度函数为:

$$ f(x) = \begin{cases} \sqrt{\theta} x^{\sqrt{\theta}-1} & 0 \le x \le 1 \ 0 & \text{其他} \end{cases} $$ 其中 \(\theta\) 是未知参数。\(X_1, \dots, X_n\) 是总体 \(X\) 的样本。若已获得 \(n=10\) 的样本值如下: 0.43, 0.01, 0.30, 0.04, 0.54, 0.14, 0.99, 0.18, 0.98, 0.02

求解 \(\theta\) 的极大似然估计值。

似然函数 \(L(\theta)\) 为: $$ L(\theta) = \prod_{i=1}^n f(x_i; \theta) = \prod_{i=1}^n \left(\sqrt{\theta} x_i^{\sqrt{\theta}-1}\right) $$ $$ = (\sqrt{\theta})^n \prod_{i=1}^n x_i^{\sqrt{\theta}-1} = \theta^{n/2} \left(\prod_{i=1}^n x_i\right)^{\sqrt{\theta}-1} $$ 取对数似然函数 \(l(\theta) = \ln L(\theta)\): $$ l(\theta) = \ln \left(\theta^{n/2} \left(\prod_{i=1}^n x_i\right)^{\sqrt{\theta}-1}\right) $$ $$ = \frac{n}{2} \ln \theta + (\sqrt{\theta}-1) \sum_{i=1}^n \ln x_i $$ 对 \(l(\theta)\) 求关于 \(\theta\) 的导数,并令其为 0: $$ \frac{dl(\theta)}{d\theta} = \frac{n}{2} \cdot \frac{1}{\theta} + \frac{1}{2\sqrt{\theta}} \sum_{i=1}^n \ln x_i = 0 $$ 解这个方程: $$ \frac{n}{2\theta} = -\frac{1}{2\sqrt{\theta}} \sum_{i=1}^n \ln x_i $$ $$ \frac{n}{\sqrt{\theta}} = -\sum_{i=1}^n \ln x_i $$ $$ \sqrt{\hat{\theta}} = \frac{-n}{\sum_{i=1}^n \ln x_i} $$ $$ \hat{\theta} = \left(\frac{-n}{\sum_{i=1}^n \ln x_i}\right)^2 = \frac{n^2}{\left(\sum_{i=1}^n \ln x_i\right)^2} $$ 根据给定的样本值,计算 \(\sum_{i=1}^n \ln x_i\):

  • \(\ln(0.43) \approx -0.841\)
  • \(\ln(0.01) \approx -4.605\)
  • \(\ln(0.30) \approx -1.204\)
  • \(\ln(0.04) \approx -3.219\)
  • \(\ln(0.54) \approx -0.616\)
  • \(\ln(0.14) \approx -1.966\)
  • \(\ln(0.99) \approx -0.010\)
  • \(\ln(0.18) \approx -1.715\)
  • \(\ln(0.98) \approx -0.020\)
  • \(\ln(0.02) \approx -3.912\)
  • \(\sum_{i=1}^{10} \ln x_i \approx -0.841 - 4.605 - 1.204 - 3.219 - 0.616 - 1.966 - 0.010 - 1.715 - 0.020 - 3.912 = -18.128\)

因此,\(\hat{\theta}\) 的极大似然估计值为: $$ \hat{\theta} = \frac{10^2}{(-18.128)^2} = \frac{100}{328.62} \approx 0.3043 $$ 所以,\(\hat{\theta} \approx 0.305\)

1.5 (page 16-19)

设总体 \(X \sim N(\mu, \sigma^2)\),即服从正态分布,其概率密度函数为 \(f(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}\)\(X_1, \dots, X_n\) \(X\) 的样本。求下列情况下未知参数的极大似然估计。

: 似然函数 \(L(\mu, \sigma^2)\) 为: $$ L(\mu, \sigma^2) = \prod_{i=1}^n \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x_i-\mu)^2}{2\sigma^2}} = \left(\frac{1}{2\pi\sigma^2}\right)^{n/2} e^{-\sum_{i=1}^n \frac{(x_i-\mu)^2}{2\sigma^2}} $$ 对数似然函数 \(l(\mu, \sigma^2) = \ln L(\mu, \sigma^2)\) 为: $$ l(\mu, \sigma^2) = -\frac{n}{2} \ln(2\pi) - \frac{n}{2} \ln(\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^n (x_i-\mu)^2 $$

(1) \(\mu\) 未知 , \(\sigma^2 = 1\)

此时,我们需要估计 \(\mu\)。将 \(\sigma^2=1\) 代入对数似然函数: $$ l(\mu) = -\frac{n}{2} \ln(2\pi) - \frac{n}{2} \ln(1) - \frac{1}{2 \cdot 1} \sum_{i=1}^n (x_i-\mu)^2 $$ $$ l(\mu) = -\frac{n}{2} \ln(2\pi) - \frac{1}{2} \sum_{i=1}^n (x_i-\mu)^2 $$ 对 \(\mu\) 求偏导并令其为 0: $$ \frac{\partial l(\mu)}{\partial \mu} = -\frac{1}{2} \sum_{i=1}^n 2(x_i-\mu)(-1) = \sum_{i=1}^n (x_i-\mu) = 0 $$ $$ \sum_{i=1}^n x_i - n\mu = 0 $$ $$ \hat{\mu} = \frac{1}{n} \sum_{i=1}^n x_i = \bar{X} $$ 所以,\(\mu\) 的极大似然估计量为样本均值 \(\bar{X}\)

(2) \(\mu = 1, \sigma^2\) 未知

此时,我们需要估计 \(\sigma^2\)。将 \(\mu=1\) 代入对数似然函数: $$ l(\sigma^2) = -\frac{n}{2} \ln(2\pi) - \frac{n}{2} \ln(\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^n (x_i-1)^2 $$ 对 \(\sigma^2\) 求偏导并令其为 0。令 \(v = \sigma^2\),则 \(l(v) = -\frac{n}{2} \ln(2\pi) - \frac{n}{2} \ln(v) - \frac{1}{2v} \sum_{i=1}^n (x_i-1)^2\)。 $$ \frac{\partial l(v)}{\partial v} = -\frac{n}{2v} - \frac{1}{2} \left(-\frac{1}{v^2}\right) \sum_{i=1}^n (x_i-1)^2 = -\frac{n}{2v} + \frac{1}{2v^2} \sum_{i=1}^n (x_i-1)^2 = 0 $$ $$ \frac{n}{2v} = \frac{1}{2v^2} \sum_{i=1}^n (x_i-1)^2 $$ $$ nv = \sum_{i=1}^n (x_i-1)^2 $$ $$ \hat{\sigma}^2 = \hat{v} = \frac{1}{n} \sum_{i=1}^n (x_i-1)^2 $$ 所以,\(\sigma^2\) 的极大似然估计量为 \(\frac{1}{n} \sum_{i=1}^n (X_i-1)^2\)

(3) \(\mu, \sigma^2\) 均未知

此时,我们需要同时估计 \(\mu\) \(\sigma^2\)。对数似然函数为: $$ l(\mu, \sigma^2) = -\frac{n}{2} \ln(2\pi) - \frac{n}{2} \ln(\sigma^2) - \frac{1}{2\sigma^2} \sum_{i=1}^n (x_i-\mu)^2 $$ 分别对 \(\mu\)\(\sigma^2\) 求偏导并令其为 0:

  • \(\mu\) 求偏导: $$ \frac{\partial l(\mu, \sigma^2)}{\partial \mu} = -\frac{1}{2\sigma^2} \sum_{i=1}^n 2(x_i-\mu)(-1) = \frac{1}{\sigma^2} \sum_{i=1}^n (x_i-\mu) = 0 $$ 由于 \(\sigma^2 \neq 0\),所以 \(\sum_{i=1}^n (x_i-\mu) = 0\),得到 \(\hat{\mu} = \bar{X}\)

  • \(\sigma^2\) 求偏导: $$ \frac{\partial l(\mu, \sigma^2)}{\partial \sigma^2} = -\frac{n}{2\sigma^2} - \frac{1}{2} \left(-\frac{1}{(\sigma^2)^2}\right) \sum_{i=1}^n (x_i-\mu)^2 = -\frac{n}{2\sigma^2} + \frac{1}{2(\sigma^2)^2} \sum_{i=1}^n (x_i-\mu)^2 = 0 $$ $$ \frac{n}{2\sigma^2} = \frac{1}{2(\sigma^2)^2} \sum_{i=1}^n (x_i-\mu)^2 $$ $$ n\sigma^2 = \sum_{i=1}^n (x_i-\mu)^2 $$ 将 \(\hat{\mu} = \bar{X}\) 代入上式,得到 \(\hat{\sigma}^2\): $$ \hat{\sigma}^2 = \frac{1}{n} \sum_{i=1}^n (x_i-\bar{X})^2 $$ 所以,\(\mu\)\(\sigma^2\) 的极大似然估计量分别为样本均值 \(\bar{X}\) 和样本方差 \(\frac{1}{n} \sum_{i=1}^n (X_i-\bar{X})^2\)

1.6 (page 20-22)

设总体 \(X\) 服从均匀分布 \(U(a, b)\),其概率密度函数为: $$ f(x; a, b) = \begin{cases} \frac{1}{b-a} & a \le x \le b \ 0 & \text{其他} \end{cases} $$ 其中 \(a\)\(b\) 是未知参数。\(X_1, \dots, X_n\)\(X\) 的样本。

(1) \(a\) \(b\) 的极大似然估计

似然函数 \(L(a, b)\) 为: $$ L(a, b) = \prod_{i=1}^n f(x_i; a, b) = \begin{cases} \left(\frac{1}{b-a}\right)^n & a \le x_i \le b, \text{ for all } i=1, \dots, n \ 0 & \text{其他} \end{cases} $$ 为了使 \(L(a, b) > 0\),必须满足对于所有的样本 \(x_i\),都有 \(a \le x_i \le b\)。 这意味着 \(a\) 必须小于或等于所有样本中的最小值,即 \(a \le \min\{x_1, \dots, x_n\}\)。 同时,\(b\) 必须大于或等于所有样本中的最大值,即 \(b \ge \max\{x_1, \dots, x_n\}\)

我们注意到,似然函数 \(L(a, b) = \frac{1}{(b-a)^n}\)。为了最大化 \(L(a, b)\),我们需要最小化分母 \((b-a)^n\),也就是最小化 \((b-a)\)

为了最小化 \((b-a)\),同时满足 \(a \le \min\{x_i\}\) \(b \ge \max\{x_i\}\),我们应该使 \(a\) 取尽可能大的值,使 \(b\) 取尽可能小的值。 因此,当 \(a = \min\{x_1, \dots, x_n\}\)\(b = \max\{x_1, \dots, x_n\}\) 时,\(b-a\) 达到最小值,从而 \(L(a,b)\) 达到最大值。

所以,\(a\) \(b\) 的极大似然估计量分别为: $$ \hat{a} = \min{X_1, \dots, X_n} = X_{(1)} $$ $$ \hat{b} = \max{X_1, \dots, X_n} = X_{(n)} $$ 其中 \(X_{(1)}\) 是样本最小值, \(X_{(n)}\) 是样本最大值。

(2) \(E(X)\) 的极大似然估计

对于均匀分布 \(U(a, b)\),其期望值 \(E(X) = \frac{a+b}{2}\)。根据极大似然估计的不变性原理, \(E(X)\) 的极大似然估计量为 \(g(\hat{a}, \hat{b}) = \frac{\hat{a}+\hat{b}}{2}\)。 $$ \hat{E(X)} = \frac{\hat{a}+\hat{b}}{2} = \frac{X_{(1)} + X_{(n)}}{2} $$

朴素贝叶斯 (Naïve Bayes) (page 23-27)

朴素贝叶斯分类器是基于贝叶斯定理和特征条件独立性假设的分类方法。

训练数据集 (page 23-23)

假设给定训练数据集 \(T = \{(x_1, y_1), (x_2, y_2), \dots, (x_N, y_N)\}\),其中: - \(x_i\) 是第 \(i\) 个样本的特征向量,可以表示为 \(x_i = (x_i^{(1)}, x_i^{(2)}, \dots, x_i^{(n)})^T\)。这里 \(x_i^{(j)}\) 表示第 \(i\) 个样本的第 \(j\) 个特征。 - \(y_i\) 是第 \(i\) 个样本的类别标记,它属于有限的类别集合 \(Y \in \{c_1, c_2, \dots, c_K\}\)

我们假设 \((X, Y)\) 服从独立同分布5 的联合概率分布 \(P(X, Y)\)

独立同分布 (i.i.d.)

独立同分布(Independent and Identically Distributed, i.i.d.)是指在概率论和统计学中,一组随机变量具有相同的概率分布,并且它们之间相互独立。这个假设在许多机器学习模型中是常见的,它简化了概率计算和模型训练过程。

朴素贝叶斯学习过程 (page 23-23)

朴素贝叶斯分类器通过训练数据集学习联合概率分布 \(P(X, Y)\)。这包括学习:

  1. 先验概率分布 (Prior Probability): 即 \(P(Y = c_k)\),表示在没有任何特征信息的情况下,一个样本属于类别 \(c_k\) 的概率。其中 \(k = 1, 2, \dots, K\)
  2. 条件概率分布 (Conditional Probability): 即 \(P(X = x|Y = c_k)\),表示在已知样本属于类别 \(c_k\) 的情况下,其特征向量为 \(x\) 的概率。 $$ P(X = x|Y = c_k) = P(X^{(1)} = x^{(1)}, X^{(2)} = x^{(2)}, \dots, X^{(n)} = x^{(n)}|Y = c_k) $$ 其中 \(x^{(j)}\) 是特征向量 \(x\) 的第 \(j\) 个特征值。
参数数量问题

如果不加任何限制,直接估计条件概率 \(P(X = x|Y = c_k)\) 是非常困难的。假设每个特征 \(x^{(j)}\) 可能取 \(S_j\) 个值,那么特征向量 \(X\) 可能的取值组合多达 \(\prod_{j=1}^n S_j\) 种。这意味着条件概率的参数数量会是指数级别的,即 \(K \prod_{j=1}^n S_j\),这在特征维度 \(n\) 较大或特征取值较多时是不可行的。

条件独立性假设 (page 24-24)

为了解决上述参数数量过多的问题,朴素贝叶斯分类器引入了一个关键的条件独立性假设假设各个特征之间在给定类别 \(Y\) 的条件下是相互独立的。 即:

\[ P(X = x | Y = c_{k}) = P(X^{(1)} = x^{(1)}, \dots, X^{(n)} = x^{(n)}|Y = c_k) = \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k) \]

这个假设是“朴素”(Naïve)的来源,因为它通常在现实中不成立(特征之间往往存在相关性,但它极大地简化了模型的复杂性,使得模型易于训练和计算且依旧有不错的效果。

贝叶斯定理与朴素贝叶斯分类器 (page 24-25)

根据贝叶斯定理,给定一个特征向量 \(x\),样本属于类别 \(c_k\) 的后验概率为: $$ P(Y = c_k|X = x) = \frac{P(X = x|Y = c_k)P(Y = c_k)}{P(X = x)} $$ 其中 \(P(X = x)\) 是边际概率,可以通过全概率公式计算: $$ P(X = x) = \sum_{k=1}^K P(X = x|Y = c_k)P(Y = c_k) $$ 将条件独立性假设代入贝叶斯定理,得到朴素贝叶斯分类器计算后验概率的公式: $$ P(Y = c_k|X = x) = \frac{P(Y = c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k)}{\sum_{k=1}^K P(Y = c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k)} $$

对于给定的输入实例 \(x\),朴素贝叶斯分类器预测其类别为后验概率最大的那个类别。这就是朴素贝叶斯分类器的决策规则: $$ y = f(x) = \arg \max_{c_k \in Y} P(Y = c_k|X = x) $$ 由于分母 \(\sum_{k=1}^K P(Y = c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k)\) 对于所有的类别 \(c_k\) 都是相同的常数,因此在进行最大化时可以省略分母。 所以,朴素贝叶斯分类器最终的决策规则可以简化为: $$ y = \arg \max_{c_k \in Y} P(Y = c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k) $$

后验概率最大化的含义 (page 26-27)

朴素贝叶斯法将实例分到后验概率(贝叶斯估计)最大的类中,这等价于期望风险最小化

0-1 损失函数

假设我们选择一个0-1 损失函数 \(L(Y, f(X))\) 作为分类的度量:

\[ L(Y, f(X)) = \begin{cases} 1 & Y \neq f(X) \\ 0 & Y = f(X) \end{cases} \]

这里 \(f(X)\) 是决策函数,表示模型给出的预测类别。当预测错误时损失为 1,预测正确时损失为 0

期望风险函数 \(R_{\exp}(f)\) 定义为损失函数的期望值: $$ R_{\exp}(f) = E[L(Y, f(X))] $$ 根据期望值的定义,我们可以取条件期望: $$ R_{\exp}(f) = E_X [E_{Y|X}[L(Y, f(X))]] $$ 展开内部的条件期望: $$ E_{Y|X}[L(Y, f(X))] = \sum_{k=1}^K L(c_k, f(X)) P(Y = c_k|X) $$ 所以,期望风险可以表示为: $$ R_{\exp}(f) = E_X \left[ \sum_{k=1}^K L(c_k, f(X)) P(Y = c_k|X) \right] $$ 为了最小化期望风险 \(R_{\exp}(f)\),我们只需要对每个给定的实例 \(x\)(即对 \(X=x\) 逐个进行极小化),使得内部的求和项最小。 $$ f(x) = \arg \min_{y \in Y} \sum_{k=1}^K L(c_k, y) P(Y = c_k|X = x) $$ 将 0-1 损失函数代入: $$ f(x) = \arg \min_{y \in Y} \sum_{k=1}^K I(y \neq c_k) P(Y = c_k|X = x) $$ 其中 \(I(\cdot)\) 是指示函数。当 \(y = c_k\) 时,指示函数为 0;当 \(y \neq c_k\) 时,指示函数为 1。 因此,这个求和可以简化为: $$ f(x) = \arg \min_{y \in Y} \left( \sum_{c_k \neq y} P(Y = c_k|X = x) \right) $$ 我们知道 \(\sum_{k=1}^K P(Y = c_k|X = x) = 1\)。 所以,\(\sum_{c_k \neq y} P(Y = c_k|X = x) = 1 - P(Y = y|X = x)\)。 因此,我们的目标是: $$ f(x) = \arg \min_{y \in Y} (1 - P(Y = y|X = x)) $$ 最小化 \(1 - P(Y = y|X = x)\) 等价于最大化 \(P(Y = y|X = x)\)。 所以,推导出后验概率最大化准则: $$ f(x) = \arg \max_{c_k \in Y} P(Y = c_k|X = x) $$ 这意味着朴素贝叶斯分类器通过最大化后验概率来选择类别,其决策规则是统计学上最优的,因为它在 0-1 损失函数下最小化了期望风险。

朴素贝叶斯法的参数估计 (page 28-31)

在朴素贝叶斯算法中,我们需要估计先验概率 \(P(Y = c_k)\) 和条件概率 \(P(X^{(j)} = a_{jl}|Y = c_k)\)。这些概率通常使用极大似然估计法来估计。

极大似然估计法估计相应的概率 (page 28-28)

  • 先验概率 \(P(Y = c_k)\) 的极大似然估计: $$ P(Y = c_k) = \frac{\sum_{i=1}^N I(y_i = c_k)}{N}, \quad k = 1, 2, \dots, K $$ 其中 \(N\) 是训练样本的总数,\(I(\cdot)\) 是指示函数,当 \(y_i = c_k\) 时为 1,否则为 0。这个估计值就是类别 \(c_k\) 在训练集中出现的频率。

  • 条件概率 \(P(X^{(j)} = a_{jl}|Y = c_k)\) 的极大似然估计: 设第 \(j\) 个特征 \(X^{(j)}\) 可能取值的集合为 \(\{a_{j1}, a_{j2}, \dots, a_{jS_j}\}\),其中 \(S_j\) 是第 \(j\) 个特征可能取值的数量。 $$ P(X^{(j)} = a_{jl}|Y = c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)} = a_{jl}, y_i = c_k)}{\sum_{i=1}^N I(y_i = c_k)} $$ 其中 \(j = 1, 2, \dots, n\)(特征数量),\(l = 1, 2, \dots, S_j\)(第 \(j\) 个特征的取值),\(k = 1, 2, \dots, K\)(类别数量)。这个估计值表示在类别 \(c_k\) 的样本中,特征 \(X^{(j)}\) 取值为 \(a_{jl}\) 的频率。

朴素贝叶斯法算法 (page 29-31)

输入

  • 训练数据集 \(T = \{(x_1, y_1), (x_2, y_2), \dots, (x_N, y_N)\}\)
    • 其中 \(x_i = (x_i^{(1)}, x_i^{(2)}, \dots, x_i^{(n)})^T\) 是第 \(i\) 个样本的特征向量。
    • \(y_i \in \{c_1, c_2, \dots, c_K\}\) 是第 \(i\) 个样本的类别标记。
    • \(x_i^{(j)}\) 表示第 \(i\) 个样本的第 \(j\) 个特征值,其取值属于第 \(j\) 个特征可能取值的集合 \(\{a_{j1}, a_{j2}, \dots, a_{jS_j}\}\)
  • 新实例 \(x = (x^{(1)}, x^{(2)}, \dots, x^{(n)})^T\)

输出:新实例 \(x\) 的分类类别 \(y\)

步骤

  1. 计算先验概率及条件概率 (page 30-30) 根据训练数据集 \(T\),计算各个类别的先验概率和每个特征在每个类别下的条件概率:
    • 先验概率: $$ P(Y = c_k) = \frac{\sum_{i=1}^N I(y_i = c_k)}{N}, \quad k = 1,2,\dots,K $$
    • 条件概率: $$ P(X^{(j)} = a_{jl}|Y = c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)} = a_{jl}, y_i = c_k)}{\sum_{i=1}^N I(y_i = c_k)} $$ 这里,\(j=1,2,\dots,n\)\(l=1,2,\dots,S_j\)\(k=1,2,\dots,K\)
  2. 对于给定的实例 \(x = (x^{(1)}, x^{(2)}, \dots, x^{(n)})^T\), 计算联合概率 对于每个类别 \(c_k\),计算 \(P(Y = c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k)\): $$ P(Y = c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k), \quad k = 1,2,\dots,K $$
  3. 确定新实例 \(x\) 的类别 选择步骤(2)中计算出的联合概率值最大的类别作为新实例 \(x\) 的分类结果: $$ y = \arg \max_{c_k \in Y} \left( P(Y = c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)}|Y = c_k) \right) $$

朴素贝叶斯例题 (page 32-34)

4.1:试由表 4.1 的训练数据学习一个朴素贝叶斯分类器并确定 \(x = (2, S)^T\) 的类标记 \(y\)

表中 \(X^{(1)}, X^{(2)}\) 为特征,取值的集合分别为 \(A_1 = \{1, 2, 3\}\), \(A_2 = \{S, M, L\}\)\(Y\) 为类标记, \(Y \in C = \{1, -1\}\)

4.1 训练数据

样本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
\(X^{(1)}\) 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
\(X^{(2)}\) S M M S S S M M L L L M M L L
Y -1 -1 1 1 -1 -1 -1 1 1 1 1 1 1 1 -1

: 首先,计算先验概率 \(P(Y=c_k)\): 总样本数 \(N = 15\)。 类别 \(Y=1\) 的样本数有 9 个 (样本3, 4, 8, 9, 10, 11, 12, 13, 14)。 类别 \(Y=-1\) 的样本数有 6 个 (样本1, 2, 5, 6, 7, 15)。

\[ P(Y = 1) = \frac{9}{15} $$ $$ P(Y = -1) = \frac{6}{15} \]

接下来,计算条件概率 \(P(X^{(j)} = x^{(j)}|Y = c_k)\)

\(Y=1\) ( 9 个样本 ): - \(X^{(1)}\) 的条件概率: - \(X^{(1)}=1\): 2个 (样本3, 4) - \(X^{(1)}=2\): 5个 (样本8, 9, 10) - \(X^{(1)}=3\): 4个 (样本11, 12, 13, 14)

\[ P(X^{(1)} = 1|Y = 1) = \frac{2}{9} $$ $$ P(X^{(1)} = 2|Y = 1) = \frac{3}{9} \]
\[ P(X^{(1)} = 3|Y = 1) = \frac{4}{9} $$ - $X^{(2)}$ 的条件概率: - $X^{(2)}=S$: 1个 (样本4) - $X^{(2)}=M$: 4个 (样本3, 8, 12, 13) - $X^{(2)}=L$: 4个 (样本9, 10, 11, 14) $$ P(X^{(2)} = S|Y = 1) = \frac{1}{9} $$ $$ P(X^{(2)} = M|Y = 1) = \frac{4}{9} $$ $$ P(X^{(2)} = L|Y = 1) = \frac{4}{9} \]

\(Y=-1\) ( 6 个样本 ): - \(X^{(1)}\) 的条件概率: - \(X^{(1)}=1\): 3个 (样本1, 2, 5) - \(X^{(1)}=2\): 2个 (样本6, 7) - \(X^{(1)}=3\): 1个 (样本15) $$ P(X^{(1)} = 1|Y = -1) = \frac{3}{6} $$ $$ P(X^{(1)} = 2|Y = -1) = \frac{2}{6} $$ $$ P(X^{(1)} = 3|Y = -1) = \frac{1}{6} $$ - \(X^{(2)}\) 的条件概率: - \(X^{(2)}=S\): 3个 (样本1, 5, 6) - \(X^{(2)}=M\): 2个 (样本2, 7) - \(X^{(2)}=L\): 1个 (样本15) $$ P(X^{(2)} = S|Y = -1) = \frac{3}{6} $$ $$ P(X^{(2)} = M|Y = -1) = \frac{2}{6} $$ $$ P(X^{(2)} = L|Y = -1) = \frac{1}{6} $$

现在,对于给定的新实例 \(x = (2, S)^T\),我们计算其属于每个类别的联合概率:

计算 \(P(Y=1|X=(2, S)^T)\) 相关的项: 我们需要 \(P(Y=1)\), \(P(X^{(1)}=2|Y=1)\), \(P(X^{(2)}=S|Y=1)\)。 $$ P(Y = 1) P(X^{(1)} = 2|Y = 1) P(X^{(2)} = S|Y = 1) = \frac{9}{15} \cdot \frac{3}{9} \cdot \frac{1}{9} = \frac{27}{1215} = \frac{1}{45} \approx 0.0222 $$

计算 \(P(Y=-1|X=(2, S)^T)\) 相关的项: 我们需要 \(P(Y=-1)\), \(P(X^{(1)}=2|Y=-1)\), \(P(X^{(2)}=S|Y=-1)\)。 $$ P(Y = -1) P(X^{(1)} = 2|Y = -1) P(X^{(2)} = S|Y = -1) = \frac{6}{15} \cdot \frac{2}{6} \cdot \frac{3}{6} = \frac{36}{540} = \frac{1}{15} \approx 0.0667 $$

比较两个值:\(0.0222 < 0.0667\)

由于 \(P(Y = -1) P(X^{(1)} = 2|Y = -1) P(X^{(2)} = S|Y = -1)\) 的值更大,因此新实例 \(x = (2, S)^T\) 的类标记 \(y = -1\)

贝叶斯估计 (Bayesian Estimation) (page 35-39)

零概率问题 (page 35-35)

使用极大似然估计法估计概率时,可能会出现一个问题:如果某个特征值在某个特定类别下从未在训练数据中出现过,那么它的条件概率估计值将为 0。 $$ P(X^{(j)} = a_{jl}|Y = c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)} = a_{jl}, y_i = c_k)}{\sum_{i=1}^N I(y_i = c_k)} = 0 $$ 一旦某个条件概率为 0,那么在朴素贝叶斯分类器的乘积计算中,任何包含这一项的后验概率都会变为 0,无论其他特征的概率有多大。这会导致分类结果出现偏差,甚至无法进行分类。

为了解决这个问题,通常采用贝叶斯估计,其中最常见的方法是拉普拉斯平滑 (Laplacian smoothing)

条件概率的贝叶斯估计 (page 35-36)

条件概率的贝叶斯估计是对原始极大似然估计的一种平滑处理,通过在分子和分母中添加一个小的正数 \(\lambda\) 来避免零概率问题。 $$ P_\lambda(X^{(j)} = a_{jl}|Y = c_k) = \frac{\sum_{i=1}^N I(x_i^{(j)} = a_{jl}, y_i = c_k) + \lambda}{\sum_{i=1}^N I(y_i = c_k) + S_j \lambda} $$ 其中: - \(\lambda \ge 0\) 是一个平滑参数。 - \(\sum_{i=1}^N I(x_i^{(j)} = a_{jl}, y_i = c_k)\) 是特征 \(X^{(j)}\) 在类别 \(c_k\) 下取值 \(a_{jl}\) 的样本计数。 - \(\sum_{i=1}^N I(y_i = c_k)\) 是类别 \(c_k\) 的样本总数。 - \(S_j\) 是特征 \(X^{(j)}\) 可能取值的总数。

平滑参数 \(\lambda\)
  • \(\lambda = 0\) 时,贝叶斯估计退化为传统的极大似然估计
  • \(\lambda = 1\) 时,这被称为拉普拉斯平滑 (Laplacian smoothing)。它等价于在样本中为每种情况都添加一个样本,确保了即使某个特征值在某个类别下从未出现,其概率也不会为零。

贝叶斯估计保证了对任何 \(l=1,2,\dots,S_j\) \(k=1,2,\dots,K\),条件概率 \(P_\lambda(X^{(j)} = a_{jl}|Y = c_k) > 0\)。 并且,对于给定类别 \(c_k\) 和特征 \(X^{(j)}\),所有可能的取值 \(a_{jl}\) 的条件概率之和仍然为 1: $$ \sum_{l=1}^{S_j} P_\lambda(X^{(j)} = a_{jl}|Y = c_k) = 1 $$

先验概率的贝叶斯估计 (page 36)

先验概率也可以进行贝叶斯平滑: $$ P_\lambda(Y = c_k) = \frac{\sum_{i=1}^N I(y_i = c_k) + \lambda}{N + K\lambda} $$ 其中 \(K\) 是类别的总数。

贝叶斯估计例题 (page 37-39)

4.2:问题同例 4.1,按照拉普拉斯平滑估计概率,即取 \(\lambda = 1\)。然后确定 \(x = (2, S)^T\) 的类标记 \(y\)

我们使用 \(\lambda = 1\) 进行平滑。

1. 计算先验概率 \(P_\lambda(Y=c_k)\) \(N=15\)\(K=2\) (类别为 1 和 -1)。 类别 \(Y=1\) 的样本数:9。 类别 \(Y=-1\) 的样本数:6。

\[ P_\lambda(Y = 1) = \frac{9 + 1}{15 + 2 \cdot 1} = \frac{10}{17} $$ $$ P_\lambda(Y = -1) = \frac{6 + 1}{15 + 2 \cdot 1} = \frac{7}{17} \]

2. 计算条件概率 \(P_\lambda(X^{(j)} = a_{jl}|Y = c_k)\)

\(Y=1\) (\(N_1 = 9\) 个样本,分母为 \(N_1 + S_j\lambda = 9 + S_j \cdot 1\)) - \(X^{(1)}\) (特征1,取值 \(A_1 = \{1,2,3\}\),所以 \(S_1=3\)): - \(X^{(1)}=1\): 2个 (样本3, 4) - \(X^{(1)}=2\): 3个 (样本8, 9, 10) - \(X^{(1)}=3\): 4个 (样本11, 12, 13, 14) $$ P_\lambda(X^{(1)} = 1|Y = 1) = \frac{2 + 1}{9 + 3 \cdot 1} = \frac{3}{12} $$ $$ P_\lambda(X^{(1)} = 2|Y = 1) = \frac{3 + 1}{9 + 3 \cdot 1} = \frac{4}{12} $$ $$ P_\lambda(X^{(1)} = 3|Y = 1) = \frac{4 + 1}{9 + 3 \cdot 1} = \frac{5}{12} $$ - \(X^{(2)}\) (特征2,取值 \(A_2 = \{S,M,L\}\),所以 \(S_2=3\)): - \(X^{(2)}=S\): 1个 (样本4) - \(X^{(2)}=M\): 4个 (样本3, 8, 12, 13) - \(X^{(2)}=L\): 4个 (样本9, 10, 11, 14) $$ P_\lambda(X^{(2)} = S|Y = 1) = \frac{1 + 1}{9 + 3 \cdot 1} = \frac{2}{12} $$ $$ P_\lambda(X^{(2)} = M|Y = 1) = \frac{4 + 1}{9 + 3 \cdot 1} = \frac{5}{12} $$ $$ P_\lambda(X^{(2)} = L|Y = 1) = \frac{4 + 1}{9 + 3 \cdot 1} = \frac{5}{12} $$

\(Y=-1\) (\(N_{-1} = 6\) 个样本,分母为 \(N_{-1} + S_j\lambda = 6 + S_j \cdot 1\)) - \(X^{(1)}\) (特征1,\(S_1=3\)): - \(X^{(1)}=1\): 3个 (样本1, 2, 5) - \(X^{(1)}=2\): 2个 (样本6, 7) - \(X^{(1)}=3\): 1个 (样本15) $$ P_\lambda(X^{(1)} = 1|Y = -1) = \frac{3 + 1}{6 + 3 \cdot 1} = \frac{4}{9} $$ $$ P_\lambda(X^{(1)} = 2|Y = -1) = \frac{2 + 1}{6 + 3 \cdot 1} = \frac{3}{9} $$ $$ P_\lambda(X^{(1)} = 3|Y = -1) = \frac{1 + 1}{6 + 3 \cdot 1} = \frac{2}{9} $$ - \(X^{(2)}\) (特征2,\(S_2=3\)): - \(X^{(2)}=S\): 3个 (样本1, 5, 6) - \(X^{(2)}=M\): 2个 (样本2, 7) - \(X^{(2)}=L\): 1个 (样本15) $$ P_\lambda(X^{(2)} = S|Y = -1) = \frac{3 + 1}{6 + 3 \cdot 1} = \frac{4}{9} $$ $$ P_\lambda(X^{(2)} = M|Y = -1) = \frac{2 + 1}{6 + 3 \cdot 1} = \frac{3}{9} $$ $$ P_\lambda(X^{(2)} = L|Y = -1) = \frac{1 + 1}{6 + 3 \cdot 1} = \frac{2}{9} $$

3. 对于给定的新实例 \(x = (2, S)^T\),计算联合概率:

计算 \(P_\lambda(Y=1|X=(2, S)^T)\) 相关的项: $$ P_\lambda(Y = 1) P_\lambda(X^{(1)} = 2|Y = 1) P_\lambda(X^{(2)} = S|Y = 1) = \frac{10}{17} \cdot \frac{4}{12} \cdot \frac{2}{12} = \frac{80}{2448} \approx 0.0327 $$

计算 \(P_\lambda(Y=-1|X=(2, S)^T)\) 相关的项: $$ P_\lambda(Y = -1) P_\lambda(X^{(1)} = 2|Y = -1) P_\lambda(X^{(2)} = S|Y = -1) = \frac{7}{17} \cdot \frac{3}{9} \cdot \frac{4}{9} = \frac{84}{1377} \approx 0.0610 $$

比较两个值:\(0.0327 < 0.0610\)。 由于 \(P_\lambda(Y = -1) P_\lambda(X^{(1)} = 2|Y = -1) P_\lambda(X^{(2)} = S|Y = -1)\) 的值更大,因此新实例 \(x = (2, S)^T\) 的类标记 \(y = -1\)

在这个例子中,拉普拉斯平滑对最终结果没有改变,但它确保了所有概率都不会为零,从而增强了模型的鲁棒性。

朴素贝叶斯的优缺点 (page 40-42)

优点 (page 40-40)

  • 算法逻辑简单,易于实现:朴素贝叶斯分类器基于简单的概率计算,没有复杂的优化过程,因此其理论理解和代码实现都相对容易。
  • 算法较为稳定:由于它直接计算概率,对输入数据的顺序不敏感,在小样本量下也表现出一定的稳定性。
  • 属性之间的关系相对独立时,算法效果较好:当特征满足条件独立性假设时,朴素贝叶斯分类器的性能理论上是最优的。

缺点 (page 40-42)

  • 属性个数较多或者属性之间相关性较大时,分类效果不好: 这是朴素贝叶斯最大的局限性,其“朴素”的条件独立性假设在许多实际问题中很难完全成立。如果特征之间存在强烈的依赖关系,模型性能会受到严重影响。
  • 条件概率的谬论 (Conditional Probability Fallacy): 朴素贝叶斯假设了给定类别的特征之间是独立的,但在现实中,特征之间可能存在复杂的依赖关系。例如,在医学诊断中,我们通常会考虑 \(P(\text{疾病}|\text{症状})\),但有时人们会错误地将其近似为 \(P(\text{症状}|\text{疾病})\),这可能导致谬误。

    例子 (page 42): 假设某种疾病(d)的患病率为 1% (\(P(\text{disease}) = 0.01\)),未患病(well)的概率为 99% (\(P(\text{well}) = 0.99\))。 现在有一种检测方法,其准确性如下: - 患病者检测呈阳性 (positive) 的概率为 99% (\(P(\text{positive}|\text{disease}) = 0.99\))。 - 患病者检测呈阴性 (negative) 的概率为 1% (\(P(\text{negative}|\text{disease}) = 0.01\))。 - 未患病者检测呈阳性的概率为 1% (\(P(\text{positive}|\text{well}) = 0.01\))(即假阳性率)。 - 未患病者检测呈阴性的概率为 99% (\(P(\text{negative}|\text{well}) = 0.99\))。

    我们关心的问题是:如果一个人检测结果呈阳性,他真正患病的概率是多少?即求 \(P(\text{disease}|\text{positive})\)

    根据贝叶斯公式: $$ P(\text{disease}|\text{positive}) = \frac{P(\text{positive}|\text{disease})P(\text{disease})}{P(\text{positive})} $$ 其中,\(P(\text{positive})\) 可以通过全概率公式计算: $$ P(\text{positive}) = P(\text{positive}|\text{disease})P(\text{disease}) + P(\text{positive}|\text{well})P(\text{well}) $$ 代入数值: $$ P(\text{positive}) = (0.99 \cdot 0.01) + (0.01 \cdot 0.99) = 0.0099 + 0.0099 = 0.0198 $$ 所以, $$ P(\text{disease}|\text{positive}) = \frac{0.99 \cdot 0.01}{0.0198} = \frac{0.0099}{0.0198} = 0.5 $$ 这个结果意味着,即使检测结果呈阳性,患者真正患病的概率也只有 50%。这与我们直观上认为检测准确率很高(99%)的感受可能不符,这就是条件概率的“谬论”或者说反直觉之处。它强调了先验概率在决策中的重要性。朴素贝叶斯模型的准确性依赖于对这些概率的准确估计。

朴素贝叶斯分类器的改进算法 (page 43,考试不涉及 )

为了克服朴素贝叶斯分类器中条件独立性假设过于严格的缺点,研究者们提出了许多改进算法:

  • 半朴素贝叶斯分类器 (Semi-Naive Bayesian Classifier, SNBC): 放松了完全独立性假设,允许部分特征之间存在依赖关系,通常通过考虑部分特征间的二阶或更高阶关系来改进模型。
  • 选择贝叶斯分类器 (Selective Bayesian Classifier, SBC): 尝试选择最能预测类别的特征子集,从而避免无关或冗余特征对模型性能的影响,并可能间接缓解条件独立性假设带来的问题。
  • 树增广朴素贝叶斯网络分类器 (Tree Augmented Naive Bayes, TAN): 这是一种介于朴素贝叶斯和贝叶斯网络之间的模型。它仍然保留了朴素贝叶斯的主要结构(特征都直接依赖于类别),但允许特征之间存在至多一条边(树结构),以捕获特征间的局部依赖关系。
  • 平均一依赖估测器 (Averaged One Dependence Estimators, AODE): AODE 是一种集成学习方法,它通过对所有可能的单依赖分类器(即每个分类器都假设所有其他特征都依赖于一个特定的“主”特征)的预测进行平均来提高性能,从而缓解了朴素贝叶斯的独立性假设。
  • 加权平均一依赖估测器 (Weightily Averaged One Dependence Estimators, WAODE): WAODE 是 AODE 的一个变体,它为每个单依赖分类器分配不同的权重,权重通常根据分类器的性能来确定,以进一步提高分类准确性。
  • 无约束贝叶斯网络分类器 (General Bayes Network, GBN): GBN 不再限制特征之间的依赖关系,而是尝试学习一个更通用的贝叶斯网络结构来表示特征和类别之间的条件依赖关系。这通常比朴素贝叶斯更复杂,但理论上可以更准确地捕获数据中的真实依赖。
  • 隐藏扩展的朴素贝叶斯算法 (Hidden Augmented Naive Bayes, HANB): 这类方法引入了隐藏变量来建模特征之间的复杂依赖关系,从而在一定程度上弥补了朴素贝叶斯独立性假设的不足。

习题

习题 4.1

用极大似然估计法推出朴素贝叶斯法中的概率估计公式 (4.8) 及公式 (4.9)

4.8 先验概率 \(P(Y=c_{k})\) 的极大似然估计是:

\(\mathbf{P}(\mathbf{Y}=\mathbf{c}_{\mathbf{k}})=\frac{\sum_{\mathbf{i}=1}^{\mathbf{N}}\mathbf{I}(\mathbf{y}_{\mathrm{i}}=\mathbf{c}_{\mathrm{k}})}{\mathbf{N}},\quad\mathbf{k}=\mathbf{1},\mathbf{2},\ldots,\mathbf{K}\)

4.9 条件概率 \(P(X^{(j)}=a_{jl}| Y=c_{k})\) 的极大似然估计是:

\(\mathbf{P}(\mathbf{X}^{(j)}=\mathbf{a}_{ji}|\mathbf{Y}=\mathbf{c}_{k})=\frac{\sum_{i=1}^{N}\mathbf{I}(x_{i}^{(j)}=a_{j1},y_{i}=c_{k})}{\sum_{i=1}^{N}I(y_{i}=c_{k})},\quad\mathbf{j}=1,2,\ldots,n;\mathbf{l}=1,2,\ldots,\mathbf{S}_{j};\mathbf{k}=1,2,\ldots,\mathbf{K}\)

假设数据集:\(T=\{(x_1,y_1),(x_2,y_2),\ldots,(x_N,y_N)\}\)

4.8

\(p = P(Y=c_{k}), c_{k}\) 在随机变量 \(Y\) 中出现 \(m=\sum_{i=1}^N I(y_{i}=c_{k})\),似然函数 \(L(p)=C_{N}^m p^m (1-p)^{N-m}\)

上式对数并对 p 求导并令其为 0,即似然方程 \(\frac{\partial \ln L(p)}{\partial p} = \frac{m}{p} - \frac{N-m}{1-p} = 0\) ,解方程得到 \(\hat{p} = \frac{m}{N}\),即 \(p = P(Y=c_{k})\) p 的最大似然估计

\[\hat{p}= \frac{\sum^N_{i=1}I(y_{i}=c_{k})}{N}\]

4.9

\(p=P(X^{(j)}=a_{jl}|Y=c_{k}), m=\sum_{i=1}^N I(y_{i}=c_{k}), q= \sum_{i=1}^N I(x_{i}^{(j)}=a_{jl}, y_{i}=c_{k})\),则似然方程 \(L(p)=C_m^qp^q(1-p)^{m-q}\)

上式对数并对 p 求导并令其为 0,即似然方程 \(\frac{\partial\ln L(p)}{\partial p}=\frac{q}{p}-\frac{m-q}{1-q}=0\) ,解方程得到 \(\hat{p}= \frac{q}{m}\),即该条件概率的极大似然估计为:

\[P(X^{(j)}=a_{jl}|Y=c_k)=\hat{p}=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)}\]

习题 4.2

Question

用贝叶斯估计法推出朴素贝叶斯法中的概率估计公式 (4.10) 及公式 (4.11)

4.10 条件概率的贝叶斯估计

\(P_{\lambda}(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum_{i=1}^{N}I(x_{i}^{(j)}=a_{jl},y_{i}=c_{k})+\lambda}{\sum_{i=1}^{N}I(y_{i}=c_{k})+S_{j}\lambda}\)

4.11 先验概率的贝叶斯估计

\(P_{\lambda}(Y=c_{k})=\frac{\sum_{i=1}^{N}I(y_{i}=c_{k})+\lambda}{N+K\lambda}\)

当取值拉普拉斯平滑 λ=1 , 先验概率狄利克雷分布 (Dirichlet) 降为均匀分布 (Uniform),即有方程:

\[\hat{p}*K - 1 = 0\]

4.10

同时由公式(4.9,我们得到 \(\hat{p}*\sum_{i=1}^NI(y_i=c_k)=\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)\),采用拉格朗日乘数法得到

\[0 = (\hat{p}*K - 1) * \lambda + \hat{p}*\sum_{i=1}^NI(y_i=c_k)-\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)\]

求解即可以得到 \(\hat{p} = P_{\lambda}(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum_{i=1}^{N}I(x_{i}^{(j)}=a_{jl},y_{i}=c_{k})+\lambda}{\sum_{i=1}^{N}I(y_{i}=c_{k})+S_{j}\lambda}\)

4.11

同时由公式(4.8)可以得 \(\hat{p}*N - \sum_{i=1}^N I(y_{i}=c_{k}) = 0\),同样采用拉格朗日乘数法得到

\[0 = (\hat{p}*K - 1) * \lambda + \hat{p}*N - \sum_{i=1}^N I(y_{i}=c_{k}) \]

求解得到: \(\hat{p}=P_{\lambda}(Y=c_k)=\frac{\sum_{i=1}^N I(y_i=c_k)+\lambda}{N+\lambda K}\)


  1. K 近邻 (K-Nearest Neighbors, KNN):一种非参数的分类算法,它不显式地学习一个模型,而是直接根据训练样本的距离来对新样本进行分类。 

  2. 决策树 (Decision Tree):一种监督学习算法,它使用树状模型来决策。每个内部节点代表一个特征上的测试,每个分支代表一个测试结果,每个叶节点代表一个类标签。 

  3. 归纳推理法:从特殊到一般的推理方法。在统计学中,指根据部分观测数据推断总体特征或规律。 

  4. 期望值:在概率论中,随机变量的期望值是其所有可能取值与其对应概率的乘积之和,代表了随机变量的平均值。 

  5. 独立同分布:指一组随机变量,它们彼此独立,并且具有相同的概率分布。