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

【深度学习入门_机器学习理论】朴素贝叶斯(NaiveBayes)

本部分主要为机器学习理论入门_熟悉朴素贝叶斯算法,书籍参考 “ 统计学习方法(第二版)”。

学习目标: 熟悉条件概率、先验概率、后验概率、全概率,熟悉朴素贝叶斯算法原理与推判断过程;熟悉参数估计;熟悉算法具体使用场景与实际应用。

个人理解下来其实就是一句话:本算法就是根据所有已知参数来计算后验概率问题。

在这里插入图片描述

一、统计学基础概念

  • 条件概率:
    就是事件A在事件B发生的条件下发生的概率。条件概率表示为 P ( A ∣ B ) P(A|B) PAB,读作“A在B发生的条件下发生的概率”。

  • 先验概率:
    在贝叶斯统计中,某一不确定量 p 的先验概率分布是在考虑”观测数据”前,能表达 p 不确定性的概率分布。它旨在描述这个不确定量的不确定程度,而不是这个不确定量的随机性。这个不确定量可以是一个参数,或者是一个隐含变量。

  • 后验概率:
    在贝叶斯统计中,一个随机事件或者一个不确定事件的后验概率是在考虑和给出相关证据或数据后所得到的条件概率。同样,后验概率分布是一个未知量(视为随机变量)基于试验和调查后得到的概率分布。“后验”在本文中代表考虑了被测试事件的相关证据。

  • 全概率:
    是对一复杂事件A的概率求解问题转化为了在不同情况下发生的简单事件的概率的求和问题。

举个例子说明下,应该就会有更好的理解了

eg. 要确定一个瓜是好瓜还是坏瓜,用判别模型的方法是从历史数据中学习到模型,然后通过提取这个瓜的特征来预测出这只瓜是好瓜的概率,是坏瓜的概率。
在这里插入图片描述
通过上述西瓜的数据集来看:

  • 条件概率,就是在条件为瓜的颜色是青绿的情况下,瓜是好瓜的概率
  • 先验概率,就是常识、经验、统计学所透露出的“因”的概率,即瓜的颜色是青绿的概率。
  • 后验概率,就是在知道“果”之后,去推测“因”的概率,也就是说,如果已经知道瓜是好瓜,那么瓜的颜色是青绿的概率是多少。后验和先验的关系就需要运用贝叶斯决策理论来求解。

二、朴素贝叶斯概念

监督学习分为生成模型 (generative model) 与判别模型 (discriminative model),贝叶斯方法是生贝叶斯方法正是生成模型的代表 (还有隐马尔科夫模型)。在概率论与统计学中,贝叶斯定理 (Bayes’ theorem) 表达了一个事件发生的概率,而确定这一概率的方法是基于与该事件相关的条件先验知识 (prior knowledge)。而利用相应先验知识进行概率推断的过程为贝叶斯推断 (Bayesian inference)。

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯(Naive Bayes)分类是贝叶斯分类中最简单,也是常见的一种分类方法。

朴素贝叶斯算法的核心思想是通过考虑特征概率来预测分类,即对于给出的待分类样本,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别。

朴素贝叶斯算法是一种基于概率统计的分类方法,它利用贝叶斯定理和特征条件独立假设来预测样本的类别。尽管其假设特征之间相互独立在现实中往往不成立,但朴素贝叶斯分类器因其计算简单、效率高、对缺失数据不敏感等优点,在文本分类、垃圾邮件过滤、情感分析等领域有着广泛的应用。

三、朴素贝叶斯算法原理与推判过程

3.1 贝叶斯定理

条件概率 (conditional probability) 是指在事件 B 发生的情况下,事件 A 发生的概率。通常记为 P(A | B)。
在这里插入图片描述

因此
在这里插入图片描述
可得
在这里插入图片描述
由此可以推出贝叶斯公式
在这里插入图片描述

这也是条件概率的计算公式。

此外,由全概率公式,可得条件概率的另一种写法:

在这里插入图片描述
其中样本空间由A和A’构成,由此求得事件B的概率。

3.2 贝叶斯推断

贝叶斯公式中,P(A)称为"先验概率"(Prior probability),即在B事件发生之前,对A事件概率的一个判断。
P(A|B)称为"后验概率"(Posterior probability),即在B事件发生之后,对A事件概率的重新评估。
P(B|A)/P(B)称为"可能性函数"(Likelyhood),这是一个调整因子,使得预估概率更接近真实概率。
所以,条件概率可以理解成下面的式子:后验概率=先验概率 x 调整因子
这就是贝叶斯推断的含义。我们先预估一个"先验概率",然后加入实验结果,看这个实验到底是增强还是削弱了"先验概率",由此得到更接近事实的"后验概率"。因为在分类中,只需要找出可能性最大的那个选项,而不需要知道具体那个类别的概率是多少,所以为了减少计算量,全概率公式在实际编程中可以不使用。

3.3 朴素贝叶斯算法描述

而朴素贝叶斯推断,是在贝叶斯推断的基础上,对条件概率分布做了条件独立性的假设。因此可得朴素贝叶斯分类器的表达式。因为以自变量之间的独立(条件特征独立)性和连续变量的正态性假设为前提,就会导致算法精度在某种程度上受影响。

所谓「朴素」,是假定所有输入事件之间是相互独立。进行这个假设是因为独立事件间的概率计算更简单。

具体数学描述可以参照书中内容,本部分找了一个相对简洁的推判工时描述,如下:

在这里插入图片描述

3.4 朴素贝叶斯的参数估计

  1. 极大似然估计

利用极大似然估计,我们可以得到下面这两个概率的估计公式:

在这里插入图片描述
上式的意思是不同类别的出现概率的先验概率直接为样本中该类别出现的频率。

在这里插入图片描述
上式的意思是在类别为Ck的前提下,第 i 维取值为ajl的概率为样本中Ck类中该分量为ajl的样本占Ck类样本总数的比重。

极大似然估计在此处的结果基本上可以简单归结为:用频率估计概率

  1. 贝叶斯估计

上述的极大似然估计在一个情况下可能遇到问题,如果某个样本没有出现的话,对那个类别估计的信息完全丢失。

为解决这一问题,我们可以手动为每一类别添加默认 n 次的出现频数:
在这里插入图片描述
其中Si是第 i 维的取值个数,λ是一个超参数,一般取 1.

在第一式中,我们为每个类别都加入了λ的频率,所以分子单独某类的频数加上了λ,分母加上了总类别数 K 乘上λ.

在第二式中,我们为每个类别的每个维度都加入了λ的频率,所以分子单独某类的频数加上了λ,分母加上了该维度可能的取值个数数乘上λ(因为有多少个取值,我们就人为的加上了多少个λ).

可以认为贝叶斯估计是对极大似然估计进行了平滑

四、朴素贝叶斯算法流程

在这里插入图片描述

4.1 算法实现流程

个人懒得打字了 直接粘贴大佬文档了,有兴趣的可以看原文:https://www.cnblogs.com/pinard/p/6069267.html

在这里插入图片描述

在这里插入图片描述

五、朴素贝叶斯算法小结

朴素贝叶斯算法以其简单高效的特点在文本分类、垃圾邮件过滤等领域取得了广泛的应用。尽管其特征条件独立假设在现实中往往不成立,但这一假设的简化使得算法的计算过程变得非常高效。通过合理的数据预处理和特征选择,朴素贝叶斯算法能够在许多实际应用中取得较好的成绩。

朴素贝叶斯算法优缺点如下:

优点:

  • 对小规模的数据表现很好;
  • 能处理多分类任务;
  • 对缺失数据不太敏感;
  • 算法也比较简单。

缺点:

  • 朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好;

  • 需要知道先验概率,且先验概率很多时候取决于假设,因此在某些时候会由于假设的先验模型的原因导致预测效果不佳。

  • 对输入数据的表达形式很敏感。

至于伯努利与多项式朴素贝叶斯等算法可以参照https://www.showmeai.tech/tutorials/34?articleId=189这篇文章了解下

http://www.lryc.cn/news/531732.html

相关文章:

  • docker pull Error response from daemon问题
  • javaEE-8.JVM(八股文系列)
  • 25.02.04 《CLR via C#》 笔记 13
  • git 项目的更新
  • 【Rust自学】17.3. 实现面向对象的设计模式
  • 51c视觉~CV~合集10
  • 如何安全地管理Spring Boot项目中的敏感配置信息
  • Docker小游戏 | 使用Docker部署2048网页小游戏
  • RabbitMQ深度探索:消息幂等性问题
  • Linux网络 | 进入数据链路层,学习相关协议与概念
  • 芝法酱学习笔记(2.6)——flink-cdc监听mysql binlog并同步数据至elastic-search和更新redis缓存
  • JavaScript系列(58)--性能监控系统详解
  • GESP2023年12月认证C++六级( 第三部分编程题(1)闯关游戏)
  • git 新项目
  • 系统URL整合系列视频一(需求方案)
  • Vue.js 使用组件库构建 UI
  • 计算图 Compute Graph 和自动求导 Autograd | PyTorch 深度学习实战
  • 51单片机入门_05_LED闪烁(常用的延时方法:软件延时、定时器延时;while循环;unsigned char 可以表示的数字是0~255)
  • 如何获取sql数据中时间的月份、年份(类型为date)
  • 【单层神经网络】softmax回归的从零开始实现(图像分类)
  • 使用开源项目:pdf2docx,让PDF转换为Word
  • 保姆级教程Docker部署KRaft模式的Kafka官方镜像
  • ChatGPT提问技巧:行业热门应用提示词案例--咨询法律知识
  • openRv1126 AI算法部署实战之——Tensorflow模型部署实战
  • STM32 TIM定时器配置
  • 51单片机 05 矩阵键盘
  • SSRF 漏洞利用 Redis 实战全解析:原理、攻击与防范
  • kubernetes学习-配置管理(九)
  • python 语音识别
  • 一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署