[机器学习]朴素贝叶斯算法(条件独立假设+贝叶斯定理)

338 阅读3分钟

朴素贝叶斯算法详解

1. 定义

朴素贝叶斯(Naive Bayes) 是一种基于贝叶斯定理的概率分类算法,属于监督学习范畴。其核心思想是通过已知数据的特征概率分布,计算新样本属于不同类别的后验概率,选择其中概率最大的类别作为预测结果。

“朴素”的由来:假设所有特征之间相互独立(特征独立性假设)。现实生活中,我们都知道特征之间可能存在关联,但这种假设极大简化了计算,使算法高效且易于实现。


2. 原理

图片.png


3. 解决的主要问题

朴素贝叶斯适用于以下场景:

  • 文本分类:垃圾邮件识别、新闻分类、情感分析。
  • 多分类问题:如根据症状判断疾病类型。
  • 高维数据:特征数量多但样本量相对较小(这一点和svm算法类似, 如自然语言处理中的词袋模型)。
  • 实时预测:训练快,预测效率高。

4. 具体实现类型

根据特征的数据类型,朴素贝叶斯有以下变种:

  1. 高斯朴素贝叶斯:假设连续特征服从高斯分布(正态分布)。
  2. 多项式朴素贝叶斯:适用于离散特征(如文本的词频统计)。
  3. 伯努利朴素贝叶斯:处理二值化特征(如文本的“是否出现某个词”)。

5. 示例:垃圾邮件分类

假设训练数据包含以下邮件:

  • 垃圾邮件:包含词汇“折扣”、“免费”。
  • 正常邮件:包含词汇“会议”、“报告”。

步骤

  1. 计算先验概率:

    • P(垃圾)=2/5P(垃圾)=2/5, P(正常)=3/5P(正常)=3/5。
  2. 计算条件概率(使用拉普拉斯平滑):

    • P(折扣∣垃圾)=(1+1)/(2+4)=2/6P(折扣∣垃圾)=(1+1)/(2+4)=2/6
    • P(免费∣正常)=(0+1)/(3+4)=1/7P(免费∣正常)=(0+1)/(3+4)=1/7
  3. 预测新邮件“免费折扣”:

    • 垃圾类概率:(2/5)⋅(2/6)⋅(1/6)(2/5)⋅(2/6)⋅(1/6)
    • 正常类概率:(3/5)⋅(1/7)⋅(1/7)(3/5)⋅(1/7)⋅(1/7)
    • 选择概率更大的类别(垃圾邮件)。

6. 优缺点

优点

  • 计算高效,适合大规模数据。
  • 对小规模数据表现良好。
  • 对缺失数据不敏感。

缺点

  • 特征独立性假设不成立时,精度下降。
  • 需要先验概率,若训练集分布有偏,预测可能不准确。

7. 关键公式与优化

  • 拉普拉斯平滑:避免零概率问题,公式为:

    P(Xi∣Y)=count(Xi,Y)+αcount(Y)+α⋅NP(Xi​∣Y)=count(Y)+α⋅Ncount(Xi​,Y)+α​

    其中 α=1α=1 为平滑系数,NN 为特征可能取值数。


总结

朴素贝叶斯通过概率建模和独立性假设,在文本分类和高维数据中表现优异。尽管假设简单,但其高效性和实用性使其成为工业界常用算法(如垃圾邮件过滤)。实际应用中需根据特征类型选择合适变种,并通过平滑技术优化概率估计。