当前位置: 首页 > news >正文

07_朴素贝叶斯

文章目录

  • 1 概述
    • 1.1 贝叶斯定理
    • 1.2 朴素贝叶斯
  • 2 算法流程
    • 2.1 训练阶段
    • 2.2 预测阶段
  • 3 API 使用
  • 4 算法优缺点

1 概述

1.1 贝叶斯定理

贝叶斯定理是概率论中的一个重要定理,它描述了如何从主观经验或已知事实出发,通过收集到的样本数据(证据)来更新对事件发生概率的认知(信念)。贝叶斯定理的数学表达式为:
P ( A ∣ B ) = P ( B ∣ A ) P ( B ) ⋅ P ( A ) P(A \mid B) = \frac{P(B \mid A)}{P(B)} \cdot P(A) P(AB)=P(B)P(BA)P(A)

  • P ( A ) {P(A)} P(A) 是事件 A {A} A 发生的先验概率,我们可以理解为已知事实或主观经验(主观概率
  • P ( B ∣ A ) {P(B \mid A)} P(BA) 是在事件 A {A} A 发生的条件下事件 B {B} B 发生的条件概率,通常也称之为似然性(likelihood)
  • P ( B ) {P(B)} P(B) 是事件 B {B} B 发生的(全)概率,和 P ( B ∣ A ) {P(B \mid A)} P(BA) 可以通过收集到的样本数据(证据)获取
  • P ( A ∣ B ) {P(A \mid B)} P(AB) 是在事件 B {B} B 发生的条件下事件 A {A} A 发生的条件概率,即收集到样本数据后对事件 A {A} A 发生概率的重新认知,称之为后验概率

贝叶斯定理告诉我们一个重要的事实:可以从已知的事实或主观经验出发,通过收集到的证据来更新我们对某个事件发生概率的认知,也就是可以通过已知的事实和收集的证据来推断出未知的真相

1.2 朴素贝叶斯

朴素贝叶斯算法是基于贝叶斯定理和特征条件独立性假设的分类算法,因其简单高效而受到广泛应用。朴素贝叶斯算法的关键在于“朴素”二字,也就是刚才所说的特征条件独立性假设,即用于分类的特征在类确定的条件下都是独立的,该假设使得朴素贝叶斯的学习成为可能。

假设我们有一个特征集合 X = { x 1 , x 2 , … , x n } {X = \{x_1, x_2, \ldots, x_n\}} X={x1,x2,,xn} 和一个类别 C {C} C ,朴素贝叶斯算法假设:
P ( X ∣ C ) = P ( x 1 ∣ C ) ⋅ P ( x 2 ∣ C ) ⋅ … ⋅ P ( x n ∣ C ) P(X \vert C) = P(x_1 \vert C) \cdot P(x_2 \vert C) \cdot \ldots \cdot P(x_n \vert C) P(XC)=P(x1C)P(x2C)P(xnC)
这个假设使得我们无需考虑特征之间复杂的依赖关系,极大简化了条件概率的计算。

2 算法流程

2.1 训练阶段

首先计算每个类别的先验概率和每个特征在各个类别下的条件概率。

  1. 计算先验概率:
    P ( C i ) = n i n P(C_{i}) = \frac{n_{i}}{n} P(Ci)=nni
    C i {C_{i}} Ci 表示类别, n i {n_{i}} ni 是类别 C i {C_{i}} Ci 的样本数量, n {n} n 是总的样本容量。
  2. 计算条件概率:
    P ( x j ∣ C i ) = n i , j n i P(x_{j} \vert C_{i}) = \frac{n_{i,j}}{n_{i}} P(xjCi)=nini,j
    n i , j {n_{i,j}} ni,j 是在类别 C i {C_{i}} Ci 中,特征 x j {x_{j}} xj 出现的次数。

2.2 预测阶段

给定一个待分类样本 X \small{X} X ,朴素贝叶斯算法通过以下步骤来计算其属于每个类别的后验概率:
P ( C i ∣ X ) = P ( X ∣ C i ) P ( X ) ⋅ P ( C i ) P(C_{i} \vert X) = \frac{P(X \vert C_{i})}{P(X)} \cdot P(C_{i}) P(CiX)=P(X)P(XCi)P(Ci)
上面的公式中, P ( X ) \small{P(X)} P(X) 对应到每个类别都是一个常量,可以忽略掉它,再结合独立性假设有:
P ( C i ∣ X ) ∝ P ( C i ) ⋅ P ( x 1 ∣ C i ) ⋅ P ( x 2 ∣ C i ) ⋅ … ⋅ P ( x n ∣ C i ) P(C_{i} \vert X) \propto P(C_{i}) \cdot P(x_1 \vert C_{i}) \cdot P(x_2 \vert C_{i}) \cdot \ldots \cdot P(x_n \vert C_{i}) P(CiX)P(Ci)P(x1Ci)P(x2Ci)P(xnCi)
然后选择具有最高后验概率的类别作为预测结果。

3 API 使用

sklearn.navie_bayes 模块下有五个朴素贝叶斯算法的变体,每种变体针对不同类型的数据和特征分。

分类器特征类型主要假设
BernoulliNB二元特征特征服从 Bernoulli 分布
CategoricalNB类别特征特征服从多项式分布,常用于处理类别数据
ComplementNB计数特征利用补集概率,常用于处理不平衡数据集
GaussianNB连续特征特征服从高斯分布
MultinomialNB计数特征特征服从多项式分布,常用于文本分类
from sklearn.naive_bayes import GaussianNBmodel = GaussianNB()
model.fit(X_train, y_train)# 分类结果
y_pred = model.predict(X_test)# 分类概率,为了方便观看,保留两位小数
y_proba = model.predict_proba(X_test).round(2)

4 算法优缺点

优点:

  1. 逻辑简单容易实现,适合大规模数据集。
  2. 运算开销较小。预测需要用到的概率在训练阶段都已经准好了,当新数据来了之后,只需要获取对应的概率值并进行简单的运算就能获得预测的结果。
  3. 受噪声和无关属性影响小。

缺点:由于引入了“特征相互独立”这个假设,缺点也相当明显,因为在实际应用中,特征之间很难做到完全独立,尤其是维度很高的数据,如果特征之间的相关性较大,那么分类的效果就会变得很差。

为了解决朴素贝叶斯的缺点,在其基础上又衍生出了一些新的方法,包括:半朴素贝叶斯(One Dependent Estimator)、AODE(Averaged One Dependent Estimator)、K 依赖朴素贝叶斯、朴素贝叶斯网络、高斯混合朴素贝叶斯等。

http://www.dtcms.com/a/519796.html

相关文章:

  • 【源码项目】简单实现的WPF浏览器,有兴趣的可以自己扩展(带源码)
  • 大连做网站哪家好一点商务网站建设用的是什么软件
  • Mybatis一级缓存
  • Java+OpenCV实现图片切割
  • Linux云计算基础篇(24)-PXE批量安装和Kickstart工具
  • 从零搭建 RAG 智能问答系统 6:Text2SQL 与工作流实现数据库查询
  • 创建Django项目
  • 注册个人网站的方法建设企业网站费用
  • 初识C语言13.自定义类型(联合体与枚举)
  • WebRTC入门指南:实时通信零基础
  • 深圳外贸营销型网站建设引擎搜索网站
  • Django 表单验证详解Form
  • k8s相关学习
  • 【2026计算机毕业设计】基于Django的社区婴幼儿预防接种系统
  • D030知识图谱科研文献论文推荐系统vue+django+Neo4j的知识图谱|论文本文相似度推荐|协同过滤
  • pg库、MySQL库和sqlite3基本操作
  • Android Studio新手开发第三十天
  • 住房建设部官方网站公示公告手机网站内容模块
  • 网站建设 数据库连接网站建设公司软件开
  • 深入理解栈与队列:核心特性与实战应用
  • 如何建一个免费的网站南昌做网站优化哪家好
  • 机器学习概念,算法原理及应用
  • Pytorch常用层总结
  • 【Deepseek OCR】重磅测试,mac环境下的体验【本人已经本地实验成功】
  • 轻量化(Lightweight)概念
  • [人工智能-大模型-58]:模型层技术 - 深度神经网络的本质是一个复杂的复合数学函数
  • 【小白笔记】将十进制数(Decimal)转换为二进制数(Binary),并计算二进制表示中“1”的个数
  • 长春怎么注册网站平台wordpress 视频列表
  • 【ReAcTable】面向表格问答任务的ReAct增强框架
  • Docker 部署 Elasticsearch 全流程手册