第二章-贝叶斯分类读书笔记
贝叶斯分类——《数据挖掘(主编:吕欣 王梦宁)》读书笔记
发布者:omx同学
1. 贝叶斯分类基本原理
分类问题的目标是根据样本特征判断其所属类别。贝叶斯分类是一类基于概率推断的分类方法,其核心思想是:先根据已有经验形成先验概率,再根据观察到的样本特征更新判断,最终选择后验概率最大的类别。
条件概率表示在事件 BBB 已经发生的条件下,事件 AAA 发生的概率:
P(A∣B)=P(A∩B)P(B) P(A|B)=\frac{P(A\cap B)}{P(B)} P(A∣B)=P(B)P(A∩B)
贝叶斯公式可以表示为:
P(H∣D)=P(H)P(D∣H)P(D) P(H|D)=\frac{P(H)P(D|H)}{P(D)} P(H∣D)=P(D)P(H)P(D∣H)
其中,HHH 表示某种假设或类别,DDD 表示观察到的数据。P(H)P(H)P(H) 是先验概率,P(D∣H)P(D|H)P(D∣H) 是似然概率,P(H∣D)P(H|D)P(H∣D) 是后验概率。
在分类任务中,若类别为 YYY,样本特征为 XXX,则贝叶斯分类器选择:
Y^=argmaxYP(Y∣X) \hat{Y}=\arg\max_Y P(Y|X) Y^=argYmaxP(Y∣X)
由于对同一个样本来说 P(X)P(X)P(X) 相同,所以实际比较时常用:
Y^=argmaxYP(Y)P(X∣Y) \hat{Y}=\arg\max_Y P(Y)P(X|Y) Y^=argYmaxP(Y)P(X∣Y)
2. 朴素贝叶斯分类原理
朴素贝叶斯是贝叶斯分类的一种简化形式。“朴素”体现在它假设:在类别已知的条件下,各个特征之间相互独立。
如果样本具有多个特征 X=(x1,x2,⋯ ,xn)X=(x_1,x_2,\cdots,x_n)X=(x1,x2,⋯,xn),则:
P(X∣Y)=P(x1,x2,⋯ ,xn∣Y)=∏i=1nP(xi∣Y) P(X|Y)=P(x_1,x_2,\cdots,x_n|Y)=\prod_{i=1}^{n}P(x_i|Y) P(X∣Y)=P(x1,x2,⋯,xn∣Y)=i=1∏nP(xi∣Y)
因此,分类规则可写为:
Y^=argmaxYP(Y)∏i=1nP(xi∣Y) \hat{Y}=\arg\max_Y P(Y)\prod_{i=1}^{n}P(x_i|Y) Y^=argYmaxP(Y)i=1∏nP(xi∣Y)
虽然现实中特征之间往往并不完全独立,但该假设大幅降低了计算复杂度,使朴素贝叶斯在文本分类、垃圾邮件识别、新闻分类、情感分析等高维稀疏数据场景中非常实用。
3. 以垃圾邮件分类为例
假设我们要判断一封邮件是否为垃圾邮件,可以将邮件中的词语作为特征,将邮件类别设为“垃圾邮件”和“正常邮件”。
步骤 1:准备训练数据
训练集中需要包含若干已经标注类别的邮件。例如:
| 邮件内容特征 | 类别 |
|---|---|
| 免费、中奖、点击 | 垃圾邮件 |
| 会议、通知、附件 | 正常邮件 |
| 优惠、链接、领取 | 垃圾邮件 |
| 作业、课程、提交 | 正常邮件 |
步骤 2:计算先验概率
先验概率表示每类邮件在训练集中出现的比例:
P(Y=垃圾)=垃圾邮件数量邮件总数量 P(Y=\text{垃圾})=\frac{\text{垃圾邮件数量}}{\text{邮件总数量}} P(Y=垃圾)=邮件总数量垃圾邮件数量
P(Y=正常)=正常邮件数量邮件总数量 P(Y=\text{正常})=\frac{\text{正常邮件数量}}{\text{邮件总数量}} P(Y=正常)=邮件总数量正常邮件数量
步骤 3:计算条件概率
条件概率表示某个词在某类邮件中出现的可能性。例如:
P(免费∣垃圾) P(\text{免费}|\text{垃圾}) P(免费∣垃圾)
表示在垃圾邮件中出现“免费”这一特征的概率。
步骤 4:对新邮件进行预测
如果一封新邮件包含“免费”“点击”“领取”等词,则分别计算它属于垃圾邮件和正常邮件的后验概率得分:
Score(垃圾)=P(垃圾)P(免费∣垃圾)P(点击∣垃圾)P(领取∣垃圾) Score(\text{垃圾})=P(\text{垃圾})P(\text{免费}|\text{垃圾})P(\text{点击}|\text{垃圾})P(\text{领取}|\text{垃圾}) Score(垃圾)=P(垃圾)P(免费∣垃圾)P(点击∣垃圾)P(领取∣垃圾)
Score(正常)=P(正常)P(免费∣正常)P(点击∣正常)P(领取∣正常) Score(\text{正常})=P(\text{正常})P(\text{免费}|\text{正常})P(\text{点击}|\text{正常})P(\text{领取}|\text{正常}) Score(正常)=P(正常)P(免费∣正常)P(点击∣正常)P(领取∣正常)
若垃圾邮件得分更高,则将该邮件判为垃圾邮件。
4. 零频现象与拉普拉斯修正
在朴素贝叶斯中,如果某个词在训练集中从未出现在某一类别中,那么对应条件概率会变为 0。由于多个概率需要相乘,一个 0 就会导致整个类别得分为 0,这就是零频问题。
为解决该问题,可以使用拉普拉斯平滑:
P(xi∣Y)=Ni+αN+αm P(x_i|Y)=\frac{N_i+\alpha}{N+\alpha m} P(xi∣Y)=N+αmNi+α
其中,NiN_iNi 是特征 xix_ixi 在类别 YYY 中出现的次数,NNN 是该类别下所有特征出现总次数,mmm 是特征种类数,α\alphaα 是平滑参数,常取 1。
拉普拉斯修正的直观意义是:即使某个特征在训练集中没有出现,也不应认为它在现实中绝不可能出现。它使模型对小样本更加稳健。
5. 朴素贝叶斯算法评价
5.1 优点
- 算法简单,训练速度快。
- 对高维稀疏数据表现较好,尤其适合文本分类。
- 对小规模数据集较友好。
- 输出概率形式,结果具有一定可解释性。
- 实现成本低,可作为分类任务的基线模型。
5.2 缺点
- 条件独立假设较强,现实中特征之间往往存在相关性。
- 对输入特征质量依赖较大,特征设计不合理会影响效果。
- 对连续变量需要假设分布或进行离散化处理。
- 当类别边界复杂时,模型表达能力不如随机森林、支持向量机、神经网络等方法。
6. 实践案例:恒星类型预测
以恒星分类作为实践案例时,恒星类型可以根据温度、亮度、半径、绝对星等等特征进行预测。对于这类任务,朴素贝叶斯的适用性主要取决于两个方面:一是各类恒星在特征分布上是否有明显差异;二是特征之间是否存在过强的相关性。
如果不同恒星类型在温度、亮度等变量上分布差异明显,朴素贝叶斯可以较快给出分类结果。但若变量之间高度耦合,例如亮度与半径、温度之间存在复杂物理关系,朴素贝叶斯的独立性假设就会带来一定误差。
因此,在实际建模中,可以先使用朴素贝叶斯作为基线模型,再与 KNN、决策树、随机森林、支持向量机等算法比较。如果朴素贝叶斯效果接近复杂模型,则说明数据结构较适合概率统计分类;如果效果差距较大,则说明需要更强的非线性建模能力。
7. 与其他分类算法对比
| 算法 | 特点 | 适用场景 |
|---|---|---|
| 朴素贝叶斯 | 快速、概率解释清晰 | 文本分类、小样本、高维稀疏数据 |
| KNN | 思路直观,无需显式训练 | 样本量不大、距离度量有效 |
| 决策树 | 可解释性强 | 特征规则明显的数据 |
| 随机森林 | 泛化能力较好 | 中小规模结构化数据 |
| 支持向量机 | 分类边界清晰 | 高维、小样本分类 |
8. 进一步理解:为什么朴素贝叶斯适合文本分类
文本分类是朴素贝叶斯最典型的应用场景之一。原因在于文本数据通常具有两个特点:一是维度很高,词表可能包含成千上万个词;二是数据很稀疏,一篇文章只会包含词表中的一小部分词。对于许多复杂模型而言,高维稀疏数据会增加训练成本,而朴素贝叶斯只需要统计各类中词语出现的频率,因此效率很高。
在垃圾邮件识别中,“免费”“中奖”“链接”“领取”等词语虽然不能单独决定邮件类别,但它们作为证据会改变邮件属于垃圾邮件的后验概率。朴素贝叶斯正是把多个弱证据累积起来形成分类判断。即使每个词的判断力有限,多个词共同出现时也可能构成较强的分类信号。
不过,朴素贝叶斯也有明显限制。词语之间常常并不独立,例如“点击”和“链接”经常共同出现;“课程”和“作业”也可能共同出现。独立性假设会忽略这种共现关系,因此模型对语义和上下文的理解较弱。尽管如此,在很多基础文本分类任务中,它仍然能取得不错效果,说明简单概率模型在合适场景下具有很强实用价值。
9. 三种常见朴素贝叶斯模型
根据特征形式不同,朴素贝叶斯常见变体包括:
| 模型 | 特征假设 | 典型应用 |
|---|---|---|
| 高斯朴素贝叶斯 | 连续变量服从高斯分布 | 身高体重、温度、亮度等连续特征分类 |
| 多项式朴素贝叶斯 | 特征为计数或频率 | 文本词频、词袋模型 |
| 伯努利朴素贝叶斯 | 特征为是否出现 | 词语是否出现、二值特征分类 |
如果处理文本词频,通常使用多项式朴素贝叶斯;如果只关心某个词是否出现,可以使用伯努利朴素贝叶斯;如果处理连续特征,例如恒星温度、亮度、半径等,则可考虑高斯朴素贝叶斯。
10. 建模时的注意事项
朴素贝叶斯建模虽然简单,但仍需要注意以下问题。
第一,训练集类别比例会影响先验概率。如果训练集中垃圾邮件比例过高,模型会更倾向于把新邮件判为垃圾邮件。因此,训练数据应尽量反映真实类别分布。
第二,特征预处理会影响条件概率估计。文本分类通常需要分词、去停用词、统一大小写、去除无意义符号等步骤。特征清洗越合理,模型统计出的概率越可靠。
第三,平滑参数会影响低频特征。拉普拉斯平滑避免了零频问题,但平滑过强也可能削弱高频词和低频词之间的差异。
第四,模型输出的是概率估计,但概率不一定完全校准。在风险较高的任务中,应结合验证集、混淆矩阵、准确率、召回率、F1 值等指标综合评估。
11. 本章总结
贝叶斯分类体现了一种重要的数据挖掘思想:用已有知识和新证据共同更新判断。朴素贝叶斯虽然假设简单,但在很多实际任务中表现稳定。它的价值不仅在于分类准确率,也在于提供了一种清晰的概率解释框架。学习本章后,我认识到简单模型并不等于低价值,关键在于理解模型假设,并判断数据是否适合这种假设。
补充说明
本文是基于国防科技大学吕欣教授主编的《数据挖掘》一书所整理的读书笔记。该书系统覆盖了数据挖掘的九大核心领域,包括统计描述、相关分析、回归分析、数据降维、关联规则挖掘、分类、聚类、异常检测和集成学习。此外,本书还配有丰富的数字化学习资源和全套教辅材料,构建了理论与实践紧密结合的立体化教学系统。相关学习资料可通过以下链接获取:[https://github.com/XL-lab-bigdata/DataMining.git]
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)