机器学习算法/模型——朴素贝叶斯分类

朴素贝叶斯分类 朴素贝叶斯分类(Naive Bayes classification)是一种基于贝叶斯定理和特征条件独立假设的分类方法。它是一种简单而高效的分类算法,在文本分类、垃圾邮件过滤、情感分析等领域得到广泛应用。具体来说,朴素贝叶斯分类器中的“朴素”指的是特征之间独立的假设,即在给定类别的情况下,每个特征与其他特征之间是相互独立的。这个假设虽然在实际应用中并不总是成立,但在很多情况下,朴素贝叶斯分类仍然能够取得较好的分类效果,并且具有较强的鲁棒性。 阅读详情

贝叶斯分分类器是一种生成模型,可以处理多分类问题,是一种非线性模型。

0. 本质和概述

0.1 本质

核心:将样本判定为后验概率最大的类

朴素贝叶斯算法,是一种通过根据新样本的已有特征在数据集中的条件概率(后验概率)来判断新样本所属类别的算法,其将样本判定为后验概率最大的类。

之所以称之为“朴素”,因为它假设:

① 每个特征之间相互独立
② 每个特征同等重要。

注意:因为各个属性间相互独立,所以类条件概率等于每个属性的类条件概率的乘积
在这里插入图片描述

0.2 贝叶斯公式

  • 贝叶斯定理
    在 B 出现的前提下 A 出现的概率,等于 A 和 B 都出现的概率除以 B 出现的概率。
    在这里插入图片描述

我们希望确定一个具有某些特征的样本属于某类标签的概率,通常记为 P (L |特征 )。贝叶斯定理告诉我们,可以直接用下面的公式计算这个概率:
在这里插入图片描述
(L 为某个标签)

  • 直观理解
    打个最简单的比方来理解贝叶斯公式的作用——为什么判断一个新东西属于某种类别(条件概率)可以通过各种类别本身的特性(类条件概率)来完成:

    问题:判断一个金发碧眼高鼻梁的美女来自日本还是俄罗斯。

    显而易见,因为俄罗斯这个分类下的人种数据,绝大多数都是由“金发”、“碧眼”和“高鼻梁”特征的人构成的,而日本却不是。只需要根据先验知识,就可以轻易得出结论,这就是类条件概率的牛B之处。当然,前提是“独立同分布假设”,这是一切的前提。

怎么理解这句话,可以返回去看看贝叶斯公式能如何起作用。

1. 朴素贝叶模型原理

1.1朴素贝叶斯模型:将频率当成概率(不可靠)

“朴素贝叶斯”(Naïve Bayes)既可以是一种算法——朴素贝叶斯算法,也可以是一种模型——朴素贝叶斯分类模型(分类器)。

朴素贝叶斯算法可以直接利用贝叶斯定理来实现。
在这里插入图片描述
在实际应用中,很少有一件事只受一个特征影响的情况,往往影响一件事的因素有多个。假设,影响 B 的因素有 n 个,分别是 b1,b2,…,bn。

则 P(A|B) 可以写为:
在这里插入图片描述
求解该式子,最关键的是分子 P(b1,b2,…,bn|A),根据链式法则,分子有:
在这里插入图片描述
上面的求解过程,看起来好复杂,但是,如果从 b1 到 bn 这些特征之间,在概率分布上是条件独立的,也就是说每个特征 bi 与其他特征都不相关。

那么,当 i≠j 时,有 P(bi|A,bj)=P(bi|A) —— 无关条件被排除到条件概率之外。因此,当 b1,b2,…,bn中每个特征与其他 n-1 个特征都不相关时,就有:
在这里插入图片描述
注意:此处的 Z 对应 P( b1,b2,…,bn)。

上式中的 b1 到 bn 是特征(Feature),而 A 则是最终的类别(Class),所以,我们换一个写法即可得到朴素贝斯分类器的模型函数:

在这里插入图片描述

1.2 朴素贝叶斯模型:条件概率的参数估计

  • 贝叶斯公式
    在这里插入图片描述

  • 一般化的贝叶斯公式

    更一般化的情况,假设事件 A 本身又包含多种可能性,即 A 是一个集合:A={A1,A2,…,An},
    那么对于集合中任意的 Ai,贝叶斯定理可用下式表示:
    在这里插入图片描述
    贝叶斯公式是要找出组成发生事件B的各个样本空间,然后预测事件B的发生来自于Ai的概率。

    其中 P(Ai) 称为原因的先验概率。它是在不知道事件B是否发生的情况下获取的概率。
    而 P(Ai | B) 是原因的后验概率。它是在知道了事件B发生的条件下,有了这个进一步的信息后,判断原因 Ai 发生的概率有多大。

    一般地,如果对样本空间做了大于1的划分,即:
    在这里插入图片描述
    不难推断出:
    在这里插入图片描述
    也就是说在获取了进一步的信息B后,原因的后验概率一般大于原因的先验概率。

P(classification | data) = P ( c l a s s i f i c a t i o n ) ∗ P ( d a t a ∣ c l a s s i f i c a t i o n ) P ( d a t a ) \frac{P(classification) * P(data | classification)}{P(data)} P(data)P(classification)∗P(data∣classification)​

注:在贝叶斯公式中,要求后验概率 P(classification | data) ,利用贝叶斯公式将其其转化为求解 :
P(classification) * P(data | classification) / P(data)

这次求解模式在机器学习中被称为:生成式(generative models)模式。

P(data) 是与类标记无关的量,可以看做是一个常数;

P(classification) 表达了各类样本所占的比例,根据大数定律,当训练集包含了充足的独立同分布样本时,P(classification)可以通过各类样本出现的频率来进行估计。

而关键就是求解 P(data | classification) 即 data相对于classification的概率。

2. 朴素贝叶斯的目标函数

  • 类的后验概率 P(c | x)
    也就是我们需要求解的问题
    在这里插入图片描述

  • 类条件概率 P(x | c)

    类条件概率,它等于在训练集中属于类别 c 的所有样本中,所有属性组合的样本出现的概率。

    在类所属的特征间相互独立的前提假定下有:

    在这里插入图片描述
    其中,d是样本的所有属性个数。
    这个意思是说,因为各个属性间相互独立,所以类条件概率等于每个属性的类条件概率的乘积。

因此,联合上面两个式子,可以得到如下式子:
在这里插入图片描述

  • 目标函数
    由于对所有类别来说,P(x)是相同的,因此贝叶斯分类器的目标函数进一步化简为如下:
    在这里插入图片描述
    其中 c 为所有类别中的每一个,称上面式子为朴素贝叶斯分类器的目标函数。

明显地,朴素贝叶斯分类器的训练学习的过程便是基于训练数据,求得类的先验概率P©,并且为每个属性求得类条件概率,然后相乘取最大值的过程。

3. 代码

一种快速创建简易模型的方法就是假设数据服从高斯分布,且变量无协方差(no covariance,指线性无关)。只要找出每个标签的所有样本点均值和标准差,再定义一个高斯分布,就可以拟合模型了。

注:朴素贝叶斯常用的三个模型有:
高斯模型:处理特征是连续型变量的情况
多项式模型:最常见,要求特征是离散数据
伯努利模型:要求特征是离散的,且为布尔类型,即true和false,或者1和0

  • 构造数据
from sklearn.datasets import make_blobs
X, y = make_blobs(100, 2, centers=2, random_state=2, cluster_std=1.5)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='RdBu');

在这里插入图片描述

  • 模型拟合
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X, y)
  • 新数据
# 新数据

rng = np.random.RandomState(0)
Xnew = [-6, -14] + [14, 18] * rng.rand(2000, 2)
ynew = model.predict(Xnew)
  • 可视化并查看决策边界
# 可视化新数据,查看决策边界的位置
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='RdBu')
lim = plt.axis()
plt.scatter(Xnew[:, 0], Xnew[:, 1], c=ynew, s=20, cmap='RdBu', alpha=0.1)
plt.axis(lim);

在这里插入图片描述

# 可以用 predict_proba 方法计算样本属于某个标签的概率
yprob = model.predict_proba(Xnew)
yprob[-8:].round(2)

# 这个数组分别给出了前两个标签的后验概率

4. 总结

  1. 贝叶斯公式——模型构造
  2. 大数定律——估计 P(label)
  3. 极大似然估计——求解 P(feature | label)
  4. 概率估计的平滑处理——
    4.1 加一平滑法
    把概率计算为对应类别样本中该特征值出现次数 + 1 /对应类别样本总数,来规避除以0的情况
    4.2 拉普拉斯修正

之所以称为“朴素”或“朴素贝叶斯”,是因为如果对每种标签的生成模型进行非常简单的假设,就能找到每种类型生成模型的近似解,然后就可以使用贝叶斯分类。不同类型的朴素贝叶斯分类器是由对数据的不同假设决定的。

参考

  1. 说说贝叶斯分类
  2. 朴素贝叶斯分类器:例子解释
  3. 朴素贝叶斯分类:拉普拉斯修正
  4. 朴素贝叶斯分类器——从贝叶斯定理到分类
  5. 朴素贝叶斯分类器——条件概率的参数估计
  6. 一句话+一张图说清楚朴素贝叶斯算法
统计模型-朴素贝叶斯(超详细,计算+代码实例及公式推导) 详细的介绍了朴素贝叶斯的原理,并进行了公式推导,计算实例,代码实例。 阅读详情

相关推荐

朴素贝叶斯(Naive Bayes)详解

贝叶斯决策论、朴素贝叶斯原理与算法实现、具体应用。

weixin_60737527的博客 3万+

机器学习——贝叶斯分类(Bayesian Classification)

机器学习学习笔记——4

1 7173

机器学习基础 - 分类模型之朴素贝叶斯

伯努利模型适用于离散特征情况,它将重复的词语都视为只出现一次。我们看到,”发票“出现了两次,但是我们只将其算作一次。如下,A1,A2,A3是三个特征,Y是分类结果。

yousuotu的博客 1593

搞懂朴素贝叶斯分类算法

转载- 搞懂朴素贝叶斯分类算法带你搞懂朴素贝叶斯分类算 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。1 分类问题综述对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你

糖糖糖豆的博客 5510

DS&ML_分类算法笔记之朴素贝叶斯模型

对于朴素贝叶斯模型的相关知识点的总结与整理 简单描述一下朴素贝叶斯的思想,朴素贝叶斯是什么? 朴素贝叶斯是一种分类算法,是贝叶斯分类算法的一种,贝叶斯分类算法都是以贝叶斯定理为基础的分类算法。 与一般贝叶斯分类器的区别

S_gy_Zetrov的博客 2089

Python 机器学习 朴素贝叶斯算法

朴素贝叶斯(Naive Bayes)算法是一种基于贝叶斯定理和特征条件独立假设的简单概率分类器。尽管简单,朴素贝叶斯分类器在很多情况下表现出意外的准确性,并广泛应用于垃圾邮件过滤、文本分类和情感分析等领域。

weixin_42098295的博客 1156

机器学习分类问题

机器学习分类问题 逻辑回归 对于逻辑回归问题,我们最终的目的是找到特征x对应的输出y,根据y值类型的不同分为回归问题和分类问题。回归问题与分类问题需要预测的因变量不一样。在回归问题中,因变量是连续性变量,我们需要预测 ????(????|????) 是一个连续的实数,但是在分类问题中,我们往往是通过已知X的信息预测Y的类别,往往是一个离散集合中的某个元素。 分类问题的几个模型 基于概率的模型 线性模型和朴素贝叶斯模型的主要区别:在线性判别分析中,我们假设每种分类类别下的特征遵循同一个协方差矩阵,每两个特征之

qq_43380891的博客 466

SpringBoot项目实战:5分钟搞定豆包大模型API接入(附完整代码)

本文详细介绍了如何在SpringBoot项目中快速集成豆包大模型API,仅需5分钟即可完成。从环境准备、依赖配置到核心服务封装和控制器层实现,提供了完整的代码示例和实战技巧,帮助开发者高效接入大模型能力,提升智能客服等应用的开发效率。

weixin_30566063的博客 439

SecretFlow机器学习算法库:线性模型、决策树、朴素贝叶斯全解析

SecretFlow是一个专注于隐私保护数据分析和机器学习的统一框架,它提供了丰富的机器学习算法库,包括线性模型、决策树和朴素贝叶斯等核心算法,帮助开发者在保护数据隐私的前提下构建高性能的机器学习模型。 ## 🔍 线性模型:高效处理回归与分类问题 线性模型是机器学习中最基础也最常用的算法之一,SecretFlow通过秘密共享技术实现了安全的线性回归和逻辑回归模型。广义线性模型(GLM)作为普

gitblog_01028的博客 822

新手避坑指南:用SARScape 5.6.2处理Sentinel-1数据做SBAS-InSAR,这些参数设置错了白忙活

本文详细介绍了使用SARScape 5.6.2处理Sentinel-1数据做SBAS-InSAR时的关键参数设置技巧,帮助新手避免常见错误。重点解析了连接图生成、干涉工作流、DEM处理等环节的12个关键参数,包括Max Normal Baseline、Unwrapping Coherence Threshold等,提供实测安全值范围和优化建议,确保处理效率和结果准确性。

weixin_30694389的博客 557

基于STM32的智能衣柜系统开发实战(附完整源码与硬件设计)

本文详细介绍了基于STM32的智能衣柜系统开发实战,包括硬件设计、软件架构和云端功能实现。系统具备实时温湿度监控、自动加热除湿、紫外线杀菌等核心功能,通过STM32F103C8T6主控芯片和ESP8266无线模块实现智能控制。附完整源码与硬件设计,适合科技爱好者和开发者参考。

peach的博客 781

Spark-机器学习(5)分类学习之朴素贝叶斯算法

今天的文章,我们来学习分类学习之朴素贝叶斯算法,并带来简单案例,学习用法。希望大家能有所收获。同时,希望我的文章能帮助到每一个正在学习的你们。也欢迎大家来我的文章下交流讨论,共同进步。

qq_49513817的博客 5402

手机耳机麦克风(ECM)电路设计实战:从差分走线到射频干扰滤波,一个电阻引发的灵敏度问题

本文深入探讨了手机耳机麦克风(ECM)电路设计中的关键问题,从差分走线到射频干扰滤波,特别关注了一个电阻引发的灵敏度问题。通过实际案例分析,详细解析了ECM麦克风工作原理、偏置电阻选型、差分信号传输设计以及射频干扰抑制策略,为工程师提供了实用的设计指南和优化建议。

weixin_42563415的博客 242

【机器学习】朴素贝叶斯算法

朴素贝叶斯(Naive Bayes)是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法。由于朴素贝叶斯计算联合概率,所以朴素贝叶斯模型属于生成式模型。经典应用案例包括:文本分类、垃圾邮件过滤等。

Dong_ZH的博客 1万+

移动端HDR

移动HDR是近年来移动设备最大的技术进步之一。自2017年起,它就开始出现在旗舰手机上,包括苹果(Apple)和三星(Samsung)在内的大多数制造商都加入了这一行列。这一趋势在过去几年里席卷了整个电视行业,但在最近几年才真正深入人心。而且,最近,将更多的HDR内容放到移动设备上的趋势已经加快。对于这种新兴技术来说,它还处于相对早期的阶段,但它也非常有趣,值得关注。 HDR是什么? HDR是...

ISP行业的忠实粉丝 1340

《Python基础教程》专栏总结篇

今天给大家带来的文章是《Python基础教程》专栏总结篇,希望能对同学们有所帮助。 文章目录 1. 背景 2. 专栏亮点 3. 你的收获 4. 详细目录

weixin_43178406的博客 73万+

机器学习实战之分类算法(K-近邻/朴素贝叶斯/决策树/随机森林)

机器学习分类算法1. 机器学习算法简介1.1 按照学习方式分类1.2 区别1.3 关于监督学习中的分类与回归区别1.4 机器学习开发流程2. 数据集介绍与划分2.1 sklearn数据集介绍2.1.1 分类和回归数据集2.1.2 API2.1.3 返回类型2.1.4 代码分析2.2 转换器和估计器2.2.1转换器2.2.2 估计器(sklearn机器学习算法的实现)2.2.3 估计器工作流程3. ...

weixin_39451323的博客 1万+

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 337

机器学习-朴素贝叶斯分类算法

还被用于推荐系统,根据用户行为数据提供个性化推荐,以及在图像识别中对物体进行分类,尽管其假设特征独立这一条件在实际中往往不完全成立,但其简单高效的特性使其在许多场景下仍然表现出色,为各领域提供了有效的解决方案。它通过训练样本计算各类别的先验概率及特征的条件概率,分类时依据贝叶斯公式求得后验概率并依此判断类别,算法简单高效,对小规模数据表现良好,适合文本分类、垃圾邮件过滤等多分类任务,但其“特征独立”假设在实际中往往难以完全满足。在类别 c k 下,所有特征 X (j) 的条件概率的乘积。

2301_78012605的博客 2321

手把手教你玩转RISC-V指令集​​​专栏--​​1.2 对比x86/ARM:RISC-V的三大核心优势(开放、灵活、可扩展)​

​:RISC-V以“开放打破垄断、灵活适配场景、扩展定义未来”的三大优势,正在重塑计算架构格局。其核心价值不仅是技术革新,更是对全球半导体产业链话语权的重新分配。

amy_mhd的博客 130

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【python机器学习:朴素贝叶斯分类算法】

python机器学习:朴素贝叶斯分类算法

鵬哥的博客 5080

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

机器学习 朴素贝叶斯之邮件分类

贝叶斯方法是以贝叶斯原理为基础,使用概率统计的知识对样本数据集进行分类。由于其有着坚实的数学基础,贝叶斯分类算法的误判率是很低的。贝叶斯方法的特点是结合先验概率和后验概率,即避免了只使用先验概率的主观偏见,也避免了单独使用样本信息的过拟合现象。贝叶斯分类算法在数据集较大的情况下表现出较高的准确率,同时算法本身也比较简单。 朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立。也就是说没有哪个属性变量对于决策结果来说占有着较...

qq_48864962的博客 6245

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ML算法(常见机器学习算法公式)

原文链接:www.cnblogs.com/tornadomeet/p/3395593.html 前言:   找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断...

oPerform的专栏 1万+

朴素贝叶斯分类算法

P特征∣类别×P类别P类别P特征∣类别。

m0_73676887的博客 1970

朴素贝叶斯分类算法原理

一、朴素贝叶斯分类简介 朴素贝叶斯(Naive Bayesian)是基于贝叶斯定理和特征条件独立假设的分类方法,它通过特征计算分类的概率,选取概率大的情况进行分类,因此它是基于概率论的一种机器学习分类方法。因为分类的目标是确定的,所以也是属于监督学习。 朴素贝叶斯有如下几种: 离散型朴素贝叶斯: MultinomialNB 连续型朴素贝叶斯: GaussianNB 混合型朴素贝叶斯: Merge...

Wisimer 6425

探索机器学习之朴素贝叶斯分类算法

虽冠以 “朴素” 之名,看似简单,实则蕴含精巧数学逻辑与实用价值,是入门机器学习、攻克现实难题的得力工具。模型结构固定,难捕捉高阶特征交互。例如邮件分类,是邮件为垃圾邮件或正常邮件,是邮件内词汇、发件人等特征组合;试图借已知特征求属某类概率,即求解类别特征,贝叶斯定理搭建起特征与类别间概率桥梁。处理二值特征,如文本分类里词汇是否在文档现,特征仅(未现)、(出现)两值。训练数据稀疏时,部分特征与类别组合未现,致对应概率,乘积为零,预测失效。聚焦文本、计数特征,特征值是某元素出现次数,契合词频统计文本分类。

池央的博客 1149
上一篇: 机器学习算法/模型——决策树(1)基本理论和代码实例
下一篇: 机器学习算法/模型——有监督到无监督(降维):主成分分析(PCA)
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值