M2-044M2: Classical Machine LearningNaive BayesMedium
Mastery:

Naive Bayes: 朴素贝叶斯为什么常用对数域计算?

📐 Mathematical Definition
log⁡P(y)+∑jlog⁡P(xj∣y)\log P(y)+\sum_j\log P(x_j\mid y)
⚡ Executive Summary
Core Concept: 大量小概率相乘会下溢为 0;取对数把乘积变求和。

📌 Key Takeaways

  • •
    数值稳定且更快
  • •
    等价于线性分类器(对数域)

📐 Mathematical Derivations

下溢问题:若一篇文档有 1000 个词,每个词的条件概率约 10⁻³,则乘积约 10⁻³⁰⁰⁰——远低于 float64 的最小正规数(约 10⁻³⁰⁸),直接下溢为 0,所有类别都变成 0 而无法比较。取对数后变为求和:log P(y)+Σⱼlog P(xⱼ|y),量级为 1000×(−7)≈−7000,完全在浮点范围内且能保持数值差异。<strong>额外好处</strong>:乘法变加法,计算更快(且避免浮点乘法累积误差);同时 log 概率的<strong>比较</strong>与概率的比较等价(log 单调递增),故 argmax 不变。<strong>线性分类器的等价性</strong>:展开 log P(y)ΠⱼP(xⱼ|y)=log P(y)+Σⱼlog P(xⱼ|y),对二分类比较两个类别可得决策函数形如 wᵀx+b,其中 wⱼ=log[P(xⱼ|y=1)/P(xⱼ|y=0)](对数似然比),b=log[P(y=1)/P(y=0)]——即 NB 在二值特征下<strong>等价于线性分类器</strong>,权重是似然比。

🏭 Production Trade-offs

实践要点:① <strong>log-sum-exp 的必要性</strong>——若需从 log 概率恢复归一化概率(如输出置信度),必须用 log-sum-exp 技巧(减 max 再 exp),否则 exp(−7000) 下溢为 0;② <strong>零概率与平滑</strong>——对数域中 log(0)=−∞ 会直接破坏求和,故平滑是必须的(不是可选优化);③ <strong>对数似然比的直觉</strong>——权重 wⱼ 正且大说明'该特征在正类中出现更频繁',这使 NB 的权重<strong>可解释</strong>(比神经网络的权重更直观);④ <strong>与逻辑回归的关系</strong>——NB 是生成式(建模 P(x|y)),LR 是判别式(直接建模 P(y|x));小样本下 NB 收敛更快(O(log n) vs O(n)),大样本下 LR 渐近误差更小——这是生成式 vs 判别式的经典权衡(Ng & Jordan 2002)。
⚠️ Common Interview Pitfalls
  • ✕
    在线性域相乘导致下溢为 0
  • ✕
    混淆生成式(NB)与判别式(LR)的适用场景
🎯 Interviewer Follow-ups
  • ?
    为什么 NB 是对数线性模型?
  • ?
    权重对应什么?(对数似然比)
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM2-043: Naive Bayes: 比较高斯、多项式、伯努利三种朴素贝叶斯。📋Back to BankNext →M2-045: Naive Bayes: 朴素贝叶斯与逻辑回归的关系是什么?何时各占优。