1.概率论基础 (Probability Basics)
1.1. 基本概念
在做任何随机试验之前,我们首先要明确所有可能出现的结果。把这些所有可能的结果收集到一个集合里,这个集合就是样本空间,我们用大写的希腊字母 $Ω$ (Omega) 来表示。
光有所有可能性的列表还不够,我们还需要知道每一种可能性发生的概率有多大。一个概率空间,或者叫概率模型,就是在样本空间的基础上,为每一个样本点 $ω$ 都赋予一个概率值 $P(ω)$。
这个概率值的分配必须遵守两条基本法则:
- 非负性与归一性:任何一个基本结果的概率 P(ω) 必须在0和1之间,即 $0≤P(ω)≤1$。
- 完备性:所有样本点(基本结果)的概率加起来必须等于1,这代表着试验发生时,必然有且只有一个结果会出现。用公式表示就是: $$\sum_{\omega\in\Omega}P(\omega)=1$$ 通常我们关心的可能不是单个结果,而是一个或多个结果组成的集合。比如,我们可能关心“掷出的点数是不是偶数”。这个我们关心的结果集合,就叫做一个事件,我们用大写字母A表示。从数学上讲,事件A是样本空间 $\Omega$ 的一个子集。
既然事件是由一个或多个样本点组成的,那么一个事件发生的概率,就是所有组成这个事件的样本点的概率之和。 $$P(A)=\sum_{{\omega\in A}}P(\omega)$$
1.2. 随机变量
随机变量是一个函数 。它的输入是样本空间 $Ω$ 中的一个样本点 $ω$,输出是某个范围内的值,比如实数($-∞, +∞$)或者布尔值(True/False) 。我们通常用大写字母比如 $X$ 来表示一个随机变量。
用掷骰子的例子,样本空间是 $Ω={1,2,3,4,5,6}$。
- 我们可能不关心具体的点数,而是关心“点数是不是奇数”。
- 这时我们可以定义一个随机变量 $Odd$。这个 $Odd$ 就是一个函数,它的工作方式是:
- 输入一个样本点 $ω$(比如3)。
- 判断这个 $ω$ 是不是奇数。
- 如果是,就输出
true;如果不是,就输出false。
- 所以, $Odd(1)=true, Odd(2)=false, Odd(3)=true$,以此类推。
一旦我们有了随机变量这个“翻译官”,我们就不再关心原始结果的概率了,而是关心“翻译”后的这些新值的概率。比如,我们想知道 $P(Odd=true)$ 的概率是多少,个随机变量取某个特定值的概率,等于所有能“翻译”成这个特定值的原始样本点的概率之和 。 $$P(X=x_i)=\sum_{{\omega:X(\omega)=x_i}}P(\omega)$$
1.3. 命题 (Propositions)
我们可以用不同类型的随机变量作为“词汇”,来构建描述世界状态的“句子”,也就是命题。
- 命题/布尔随机变量 (Propositional/Boolean): 这是最简单的类型,只有真/假两种情况。
- 例子:我们可以定义一个随机变量
Cavity来表示“我是否有蛀牙?”。那么Cavity = true就是一个命题,它陈述了一个具体的事实。
- 例子:我们可以定义一个随机变量
- 离散随机变量 (Discrete): 它的取值是有限或可数的。
- 例子:定义一个随机变量
Weather,它的取值范围是{晴天, 雨天, 阴天, 雪天}。那么Weather = rain(天气是雨天) 就是一个命题。
- 例子:定义一个随机变量
- 连续随机变量 (Continuous): 它的取值在一个连续的区间内。
- 例子:定义一个随机变量
Temp代表温度。我们可以形成关于精确值的命题,如Temp = 21.6,或者关于一个范围的命题,如Temp < 22.0。
- 例子:定义一个随机变量
- 组合命题: 最重要的是,我们可以用逻辑运算符(与
∧、或∨、非¬)将这些基本命题组合成更复杂的命题,比如(Temp < 22.0) ∧ (Weather = sunny)。
个命题就对应着一个事件。这个事件就是样本空间 $Ω$ 中,所有能让该命题为真的样本点(原子事件)的集合。
- 逻辑运算与集合运算的对应:
- 命题
a对应事件{ω ∈ Ω : A(ω) = true}。 - 命题
¬a(非a) 对应A事件的补集{ω ∈ Ω : A(ω) = false}。 - 命题
a ∧ b(a 且 b) 对应事件a和b的交集 (intersection){ω ∈ Ω : A(ω) = true} ∩ {ω ∈ Ω : B(ω) = true}。 - 命题
a ∨ b(a 或 b) 对应事件a和b的并集 (union){ω ∈ Ω : A(ω) = true} ∪ {ω ∈ Ω : B(ω) = true}。
- 命题
- 概率计算: 任何一个复杂的命题,都可以被分解成一系列互不相交的原子事件的“或”组合(析取)。因此,一个命题的概率,就等于所有支持这个命题为真的原子事件的概率之和。
- 例如,命题
a ∨ b可以被分解为三个互不相交的部分:(仅a为真)、(仅b为真)、(a和b都为真)。 $$(a\vee b)\equiv(\neg a\wedge b)\vee(a\wedge\neg b)\vee(a\wedge b)$$ 因为这三项是互斥的,所以它们的概率可以直接相加: $$P(a\vee b)=P(\neg a\wedge b)+P(a\wedge\neg b)+P(a\wedge b)$$
- 例如,命题
1.4. 先验概率 (Prior probability)
先验概率,也叫无条件概率 (unconditional probability),指的是在获得任何新的、具体的证据之前,我们对一个命题或事件的初始信念或基本判断。你可以把它理解为“背景知识”或者“普遍规律”。
概率 (Probability) vs. 概率分布 (Probability Distribution)
- 大写 P - 单个概率值:
P(...)表示一个具体命题的概率,它是一个单一的数值。- 例如
P(Weather = sunny) = 0.72。
- 例如
- 小写 p - 完整的概率分布:
p(...)表示一个随机变量所有可能取值的概率集合,它是一个完整的分布,通常是一个向量或一个函数。- 随机变量
Weather的可能取值是{sunny, rain, cloudy, snow}。它的概率分布p(Weather)就给出了所有这些取值的概率。 $$p(\mathrm{Weather})=\langle0.72,0.1,0.08,0.1\rangle$$
- 随机变量
- 这个向量分别对应
P(Weather=sunny),P(Weather=rain),P(Weather=cloudy)和P(Weather=snow)的概率。 - 这个分布必须是归一化 (normalized)的,也就是说所有可能值的概率加起来必须等于1。(0.72+0.1+0.08+0.1=1)。
- 我们可以把
p(Weather)看作是一个函数,输入一个天气状况,输出其对应的概率。
2. 概率分布 (Probability Distributions)
2.1. 联合概率分布 (Joint probability distribution)
- 联合概率分布描述的是一组随机变量的整体行为。它给出了这组变量每一种可能取值组合(也就是每一个原子事件/样本点)的概率。
- 之前我们看
p(Weather),只关心天气。现在我们看p(Weather, Cavity),同时关心“天气怎么样”和“我有没有蛀牙”这两个变量的组合情况。我们通常用表格(矩阵)来表示p(Weather, Cavity)这个联合分布。
只要拥有了完整的联合概率分布表,关于这个领域的所有问题,都可以通过联合分布来回答。
2.2. 条件概率 (Conditional probability)
条件概率,也叫后验概率 (posterior probabilities),是指在已知某个事件(证据)发生的前提下,另一个事件发生的概率。
- 定义: 条件概率,也叫后验概率 (posterior probabilities),是指在已知某个事件(证据)发生的前提下,另一个事件发生的概率。
- 例子:
P(cavity | toothache) = 0.8。 - 正确解读: 这句话的意思是“假如我已经知道‘牙痛’是当前我所掌握的全部信息,那么我有蛀牙的概率是80%”。它是在一个缩小了的信息范围内的概率。
- 错误解读: 不要把它理解为“如果我牙痛,那么就有80%的机会得蛀牙”。它不是一个因果或逻辑推理,而是在新证据下的信念更新。
- 例子:
- 信息更新: 我们的概率判断会随着信息的增加而改变。
- 如果我们获得更多、更确凿的证据,比如我们不仅牙痛,而且医生也确诊了我们有蛀牙,那么概率就变成了1(即确定事件):
P(cavity | toothache, cavity) = 1。 - 有时新证据可能与判断无关。比如“我牙痛”和“旧金山49人队赢球了”。赢球这个信息对判断是否有蛀牙是无关的,所以可以忽略,从而简化问题:
P(cavity | toothache, 49ersWin) = P(cavity | toothache) = 0.8。这种基于领域知识进行简化推理的能力至关重要。
- 如果我们获得更多、更确凿的证据,比如我们不仅牙痛,而且医生也确诊了我们有蛀牙,那么概率就变成了1(即确定事件):
事件b发生的前提下,事件a发生的概率定义为: $$P(a|b)=\frac{P(a\wedge b)}{P(b)},\quad\mathrm{if~}P(b)\neq0$$ 定义式的一个简单变形: $$P(a\wedge b)=P(a|b)P(b)=P(b|a)P(a)$$ 多个乘法在一起就合成链式法则: $$p(X_1,\ldots,X_n)=\prod_{i=1}^np(X_i|X_1,\ldots,X_{i-1})$$
3. 条件概率与推断 (Conditional Probability and Inference)
3.1. 枚举推断 (Inference by enumeration)
枚举推断:通过一个一个地列举(枚举)并求和,来进行概率推断。
任何枚举推断都必须从一个完整的联合概率分布 (joint distribution) 开始。这个表格包含了 Cavity (蛀牙), Toothache(牙痛), Catch (探针卡住) 这三个变量所有 $2×2×2=8$ 种可能组合的概率。它是我们的“事实全书”。
核心法则非常简单:“对于任何一个命题 $ϕ$,它的概率等于所有能让这个命题为真的原子事件($ω$)的概率之和”。 $$P(\phi)=\sum_{\omega:\omega\models\phi}P(\omega)$$ 枚举推断最大的优点是概念简单且绝对正确。只要你有完整的联合分布表,它就像查字典一样,保证能算出任何你想要的概率。然而,它最大的缺点是极其低效,是一种“蛮力” (Brute-force) 算法。
这种低效性可以用时间复杂度来衡量。假设我们有 $n$ 个布尔随机变量,那么联合分布表的大小就是 $2^n$。要计算一个简单的边缘概率,我们需要遍历并加和 $2^{n−1}$ 个条目。因此,枚举推断的计算复杂度是 $O(2^n)$,这是指数级的。当变量数量 $n$ 稍微增大时(例如超过30),$2^n$ 就是一个天文数字,这种方法在计算上就变得完全不可行。
3.2. 归一化 (Normalization)
我们计算条件概率 $P(A∣B)$ 需要分两步:1. 计算分子 $P(A∧B)$;2. 计算分母 $P(B)$。一个优化思想是:我们可以“懒”一点,暂时忽略分母的计算,到最后一步再处理。
将分母视为归一化常数 $α$
- 讲解: 回顾条件概率的定义:$p(Cavity∣toothache)=P(toothache)p(Cavity,toothache)$。
- 这里的分母 $P(toothache)$ 是一个固定的数值。它的唯一作用,就是保证我们最终计算出的关于
Cavity的所有概率(P(Cavity=true|…)和P(Cavity=false|…))加起来等于1。 - 既然如此,我们可以暂时不管它,把它记作一个常数 $α$,其中 $\alpha=\frac{1}{P(\mathrm{toothache})}$。
- 这样,计算就变成了:$p(\text{Cavity|toothache})=\alpha\mathrm{~}p(\text{Cavity, toothache})$
我们只要计算 $p(\text{Cavity, toothache})$ 然后再直接归一化就行了,分母是可以求和(积分)自动算出的。
3.3. 公式与问题
为了建立通用公式,我们首先要把模型中的所有随机变量进行分类:
- X: 代表模型中所有变量的集合。
- Y: 查询变量 (Query Variables),这是我们想要求解其概率分布的变量。
- E: 证据变量 (Evidence Variables),这些是我们已经观测到具体值的变量,
e代表它们的具体观测值。 - H: 隐藏变量 (Hidden Variables),这些是除了查询变量和证据变量之外,模型中所有剩下的变量。它们是我们不关心,但必须在计算中考虑并“消去”的变量。
任何一个条件概率的查询,都可以用下面这个统一的公式来表示: $$p(\mathbf{Y}|\mathbf{E}=\mathbf{e})=\alpha p(\mathbf{Y},\mathbf{E}=\mathbf{e})=\alpha\sum_\mathbf{h}p(\mathbf{Y},\mathbf{E}=\mathbf{e},\mathbf{H}=\mathbf{h})$$
- $p(Y∣E=e)$: 这是我们的目标,即在证据E为e的条件下,查询变量Y的后验概率分布。
- $α$: 这是我们熟悉的归一化常数。
- $∑h$: 这表示对所有隐藏变量H的所有可能取值组合h进行求和。这就是“枚举”和“求和消去”的核心操作。
- $p(Y,E=e,H=h)$: 求和的每一项都是一个完整的原子事件的概率,可以直接从联合概率分布总表中查到,因为 $Y, E, H$ 共同构成了所有变量 $X$。
这个公式的问题是:计算 $∑h$ 这一步的计算量有多大?
- 假设隐藏变量集合 $H$ 中有 $n$ 个变量 ($h_1,…,h_n$)。
- 假设每个变量平均有 $d$ 个可能的取值(比如布尔变量 $d=2$)。
- 时间复杂度 (Time Complexity): 为了完成求和,你需要遍历所有隐藏变量的取值组合,总共有 $d^n$ 种组合。因此,算法的时间复杂度是 $O(d^n)$。
- 空间复杂度 (Space Complexity): 在进行计算之前,你首先需要一个地方存储完整的联合概率分布表。这个表的大小也是 $O(d^n)$(这里的n应理解为模型总变量数)。
这是一个指数级复杂度的算法。只要变量数量 $n$ 稍微增加,计算量和存储需求就会发生“爆炸”,变得不切实际。
4. 独立性与复杂性降低 (Independence and Complexity Reduction)
4.1. 独立性 (Independence)
两个变量(或事件)是独立的,意味着知道其中一个变量的结果,对我们预测另一个变量的结果没有任何帮助。
两种等价的数学定义:
- 定义一(基于联合概率):
- 讲解: 如果变量A和B是独立的,那么它们同时发生的联合概率,就等于它们各自发生的边缘概率的乘积。$p(A=a,B=b)=p(A=a)p(B=b),\quad\text{for all a, b}$简洁写法:$p(A,B)=p(A)p(B)$。
- 定义二(基于条件概率):
- 如果A和B是独立的,那么在已知B的条件下,A的概率保持不变(反之亦然)。B的发生与否没有提供任何关于A的新信息。$p(A=a|B=b)=p(A=a)\quad\text{和}\quad p(B=b|A=a)=p(B=b)$
独立性允许我们将一个大的、难以处理的联合分布,分解 (decompose) 或因子化 (factorize) 成几个更小的、更容易处理的部分的乘积。
- 我们有一个包含4个变量的联合分布:
p(Toothache, Catch, Cavity, Weather)。在没有做任何假设的情况下,如果它们都是布尔变量,我们需要一个有 24=16 个条目的表格来存储它。 - 基于领域知识,我们做出一个合理的独立性假设:
Weather与其他三个牙科变量(Toothache, Catch, Cavity)是相互独立的。 - 公式重现: 基于这个假设,联合分布可以分解为: $$p(\text{Toothache, Catch, Cavity, Weather})=p(\text{Toothache, Catch, Cavity) }p(\mathrm{Weather})$$
4.2. 条件独立性 (Conditional Independence)
独立性确实能简化问题。对于 $n$ 个独立的硬币,联合分布的复杂度可以从指数级的 $2^n$ 降到线性的 $n$。但是,虽然绝对独立性虽然强大,但很罕见。
所以我们引入另一种独立性,即使两个变量不是“绝对独立”的,它们也可能在某个特定条件下变得独立。
- 我们有三个变量
Toothache(牙痛),Cavity(蛀牙),Catch(探针卡住)。这三者显然不是相互独立的(有蛀牙的人更容易牙痛,也更容易被探针卡住)。 - 一个基于领域知识的关键洞察:“如果我已经确切地知道‘有没有蛀牙’,那么‘是否牙痛’这个信息,对于判断‘探针是否会卡住’就不再提供任何新的帮助了。”。
- 为什么?因为
Cavity是Toothache和Catch的共同原因。一旦我们观测了这个直接原因,其他由这个原因导致的间接症状就不再相互关联了。 - 这种直觉可以用数学语言精确地表达出来。无论是有蛀牙还是没蛀牙,这个关系都成立:
- (1)
P(catch | toothache, cavity) = P(catch | cavity) - (2)
P(catch | toothache, ¬cavity) = P(catch | ¬cavity)
- (1)
- 正式定义: 因为在给定
Cavity的任何取值时,Catch和Toothache的关系都成立,所以我们说:“在给定 Cavity 的条件下,Catch 和 Toothache 是条件独立的” 。 $$p(\mathrm{Catch}|\text{Toothache, Cavity})=p(\mathrm{Catch}|\mathrm{Cavity})$$ 这个条件独立关系还有几种等价的数学写法,其中最后一种对于分解联合分布尤其重要: p(Toothache | Catch, Cavity) = p(Toothache | Cavity)p(Toothache, Catch | Cavity) = p(Toothache | Cavity)p(Catch | Cavity)
条件独立性的三种核心结构
在概率图模型中,总共有三种需要了解的基本结构:
- 结构一:共同原因 (Common Cause)
- 结构:
牙痛 ← 蛀牙 → 探针卡住 - 规则: 在未知“蛀牙”状态时,“牙痛”和“探针卡住”是相关的(知道牙痛,会增加你对探针卡住的相信程度)。但在已知“蛀牙”状态后,它们就变得条件独立了。
- 结构:
- 结构二:中间链条 (Chain)
- 结构:
下雨 → 草地湿 → 草地滑 - 规则: 在未知“草地湿”的状态时,“下雨”和“草地滑”是相关的。但在已知“草地湿”这个中间结果后,“下雨”(原因)和“草地滑”(结果)就变得条件独立了。因为草地滑不滑,只跟它湿不湿有关,跟它为什么湿(下雨还是洒水)无关。
- 结构:
- 结构三:共同效应 (Common Effect / V-Structure)
- 结构:
天才 → 获得诺奖 ← 运气好 - 规则: 在未知“是否获得诺奖”时,“天才”和“运气好”这两个原因通常是相互独立的。但一旦我们已知了结果(某人确实获得了诺奖),这两个原因就变得相互依赖(负相关)了。这种现象叫“相互解释”(Explaining Away)。比如,如果你发现一个诺奖得主其实不太聪明,你就会推断他一定运气爆棚。
- 结构:
4.3. 简化模型
我们想用一种更紧凑的方式来表示 p(Toothache, Catch, Cavity) 这个联合分布。
任何联合分布都可以被链式法则分解。 $$p(\text{Toothache, Catch, Cavity})$$ $$=p(\mathrm{Toothache}|\text{Catch, Cavity})p(\text{Catch, Cavity})$$ $$=p(\mathrm{Toothache}|\text{Catch, Cavity})p(\mathrm{Catch}|\mathrm{Cavity})p(\mathrm{Cavity})$$ 到这一步为止,没有做任何简化,这只是一个纯粹的数学变换,对任何三个变量都成立。这里注意在给定 Cavity 的条件下,Toothache 和 Catch 是相互独立的。
这意味着 $p(Toothache∣Catch, Cavity)$ 这一项可以被简化为 $p(Toothache∣Cavity)$。最终的、更简洁的分解形式: $$p(\text{Toothache, Catch, Cavity})=p(\mathrm{Toothache}|\mathrm{Cavity})p(\mathrm{Catch}|\mathrm{Cavity})p(\mathrm{Cavity})$$
简化前后的模型参数数量。
- 简化前: 一个完整的联合分布表需要 $2^3−1=7$ 个独立的数字来定义(第8个可以由“总和为1”推断出来)。
- 简化后: 我们只需要定义三个更小的部分:
p(Cavity): 只需要1个数字 (例如 $P(cavity)=0.1$,那么$P(¬cavity)$ 就是0.9)。p(Toothache | Cavity): 这是一个条件概率表,需要2个数字 ($P(toothache|cavity$) 和 $P(toothache|¬cavity)$)。p(Catch | Cavity): 同上,也需要2个数字。
- 结论: 总共只需要 $1+2+2=5$ 个独立的数字。我们成功地将模型的参数从7个减少到了5个。
实际上,我们已经构建了一个贝叶斯网络 (Bayesian Network)
分解公式: $p(\mathrm{T,~C,~Ca})=p(\mathrm{T|Ca})p(\mathrm{C|Ca})p(\mathrm{Ca})$
- 规则: 在贝叶斯网络中,任何一个变量的联合概率分布,都可以被分解为“每个节点在给定其父节点的条件下的概率”的乘积。
- 在这个图中,
Cavity没有父节点,所以有一项 $p(Cavity)$。 Toothache的父节点是Cavity,所以有一项 $p(Toothache∣Cavity)$。Catch的父节点也是Cavity,所以有一项 $p(Catch∣Cavity)$。
对应的图结构:代码段
graph TD
Ca(Cavity) --> T(Toothache)
Ca(Cavity) --> C(Catch)
想象一个由 $n$ 个变量组成的“链条”结构:$X_1\to X_2\to\cdots\to X_n$ 。链式法则可以被简化为 $p(X_1,\ldots,X_n)=p(X_1)\prod_{i=2}^np(X_i|X_{i-1})$ 。我们只需要 $1+(n−1)×2$ 个参数,这是一个 $O(n)$ 的线性复杂度。
条件独立性是“稳健的”。因为这些变量之间的结构性关系(例如“蛀牙会导致牙痛”)通常比具体的概率数值(例如“蛀牙导致牙痛的概率是60%还是70%”)更稳定、更确定,也更容易从领域专家那里获得。基于这些稳健的结构性知识来构建模型,会比直接估计巨大的联合概率表要可靠得多。
5. 贝叶斯定理 (Bayes' Rule)
5.1. 朴素贝叶斯模型
我们现在有两个证据 toothache (牙痛) 和 catch (探针卡住),我们想推断 Cavity (蛀牙) 的后验概率分布,即 p(Cavity | toothache ∧ catch)。
- 应用贝叶斯定理 (和归一化技巧): $$p(\mathrm{Cavity}|\mathrm{toothache}\wedge\mathrm{catch})\propto p(\mathrm{toothache}\wedge\mathrm{catch}\wedge\mathrm{Cavity})$$ 后验概率正比于联合概率。
- 应用乘法法则: $$=\alpha\mathrm{~}p(\mathrm{toothache}\wedge\mathrm{catch}|\mathrm{Cavity})p(\mathrm{Cavity})$$ 我们将联合概率分解为一个条件概率和一个先验概率的乘积。
- 应用条件独立性假设: $$=\alpha\mathrm{~}p(\mathrm{toothache}|\mathrm{Cavity})p(\mathrm{catch}|\mathrm{Cavity})p(\mathrm{Cavity})$$ 利用相互独立,分解关键项。
这就是朴素贝叶斯模型:
- 该模型包含一个原因 (Cause) 变量和多个效应 (Effect) 变量。
- 它的图结构是一个“星型”,由中心的原因节点指向周围所有的效应节点。
这个模型的核心假设(也是它朴素的地方)是:在给定“原因”的条件下,所有的“效应”之间都是相互条件独立的。基于这个朴素假设,该模型的联合概率分布可以被极大地简化为: $$p(\text{Cause, Effect}_1,\ldots,\mathrm{Effect}_n)=p(\mathrm{Cause})\prod_ip(\mathrm{Effect}_i|\mathrm{Cause})$$ 这个公式表示,联合概率等于“原因”的先验概率,乘以“每个效应在给定原因下的条件概率”的连乘积。使用这个模型,总参数数量与效应(或特征)的数量 $n$ 是线性关系 ($O(n)$)。
因为它所依赖的“所有效应在给定原因下相互独立”的假设在现实世界中通常过于理想化,并不成立。
- 经典例子:垃圾邮件过滤
- Cause: 邮件类别 (
垃圾邮件/非垃圾邮件)。 - Effects: 邮件中出现的单词 (特征),如
Viagra,lottery,money。 - 朴素贝叶斯模型会假设:在已知一封邮件是垃圾邮件的前提下,
Viagra的出现和lottery的出现是两个独立的事件。但实际上,这两个词在垃圾邮件中经常结伴出现,它们之间存在关联。
- Cause: 邮件类别 (
- 正是因为这个假设不严格符合现实,所以模型被称为“朴素的”。
尽管假设过于简单,朴素贝叶斯分类器在实践中,尤其是在文本分类(如垃圾邮件过滤、情感分析)等领域,效果却出奇地好。
- 原因: 对于分类任务而言,我们通常不需要得到一个精确的后验概率值。我们只需要判断哪个类别的后验概率最大即可。朴素的独立性假设虽然可能会使计算出的概率值不准确(比如把真实的80%算成了60%,真实的40%算成了30%),但它往往不会改变概率的相对大小排序(60%依然大于30%)。只要大小顺序不变,分类结果就是正确的。
- 其他优点: 它训练速度快,需要的数据量相对较少,对缺失数据不敏感,非常适合作为快速建模的“基线模型”。