机器学习——贝叶斯

news2024/12/23 13:20:26

🌺历史文章列表🌺

  1. 机器学习——损失函数、代价函数、KL散度
  2. 机器学习——特征工程、正则化、强化学习
  3. 机器学习——常见算法汇总
  4. 机器学习——感知机、MLP、SVM
  5. 机器学习——KNN
  6. 机器学习——贝叶斯
  7. 机器学习——决策树
  8. 机器学习——随机森林、Bagging、Boosting、集成学习
  9. 机器学习——聚类算法(Kmeans、GMM-使用EM优化)
  10. 机器学习——降维

文章目录

    • 贝叶斯定理(Bayes' Theorem)
    • 朴素贝叶斯分类器(Naive Bayes Classifier)
      • 计算步骤
      • 优势
      • 局限性
    • 朴素贝叶斯的三种常见变体
      • 1. 高斯朴素贝叶斯(Gaussian Naive Bayes)
      • 2. 多项式朴素贝叶斯(Multinomial Naive Bayes)
      • 3. 伯努利朴素贝叶斯(Bernoulli Naive Bayes)
      • 总结
    • 零概率问题
      • 总结
      • 拉普拉斯平滑(Laplace Smoothing)
      • 加权平滑(Weighted Smoothing)
      • 狄利克雷平滑(Dirichlet Smoothing)


贝叶斯定理(Bayes’ Theorem)

贝叶斯定理用于描述事件之间的条件概率关系,解决分类和间接解决回归问题。它的
描述了事件 A A A 在事件 B B B 发生后的条件概率

P ( A ∣ B ) = P ( B ∣ A ) ⋅ P ( A ) P ( B ) P(A | B) = \frac{P(B | A) \cdot P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)

在朴素贝叶斯分类中:

  • A A A 表示数据点属于某个类别(如“垃圾邮件”或“正常邮件”)。
  • B B B 表示数据点的特征(如邮件的词频)。
  • P(A | B) :表示在已知特征 ( B ) 的情况下,属于类别 ( A ) 的概率(后验概率)。
  • P(B | A) :表示在已知类别 ( A ) 的情况下,观察到特征 ( B ) 的概率(条件概率)。
  • P(A) :事件 A 发生的先验概率
  • P(B) :事件 B 发生的先验概率

贝叶斯定理的核心思想是通过已知的先验概率和条件概率,计算某个事件的后验概率

朴素贝叶斯分类器(Naive Bayes Classifier)

朴素贝叶斯分类器是基于贝叶斯定理的一种简单而有效的分类算法。它的核心假设是在给定目标变量的条件下,所有特征之间是相互独立的,即“条件独立性假设”。虽然这个假设在现实中通常不成立但在实际应用中表现得非常好

计算步骤

  1. 计算先验概率:计算每个类别的先验概率 P ( C i ) P(C_i) P(Ci),其中 C i C_i Ci 表示类别。

  2. 计算条件概率/似然概率:对于每个特征,计算在给定类别的条件下特征出现的概率 P ( x j ∣ C i ) P(x_j | C_i) P(xjCi)

  3. 应用贝叶斯定理:计算给定样本属于每个类别的后验概率 P ( C i ∣ x ) P(C_i | x) P(Cix),其中 x x x 是特征向量。

  4. 做出分类决策:选择具有最高后验概率的类别作为分类结果

数学表达式为:

P ( C i ∣ x 1 , x 2 , … , x n ) = P ( C i ) ⋅ P ( x 1 ∣ C i ) ⋅ P ( x 2 ∣ C i ) ⋯ P ( x n ∣ C i ) P ( x 1 , x 2 , … , x n ) P(C_i | x_1, x_2, \dots, x_n) = \frac{P(C_i) \cdot P(x_1 | C_i) \cdot P(x_2 | C_i) \cdots P(x_n | C_i)}{P(x_1, x_2, \dots, x_n)} P(Cix1,x2,,xn)=P(x1,x2,,xn)P(Ci)P(x1Ci)P(x2Ci)P(xnCi)

在实际应用中,由于分母 P ( x 1 , x 2 , … , x n ) P(x_1, x_2, \dots, x_n) P(x1,x2,,xn)对所有类别是相同的,所以只需要比较分子部分:

P ( C i ) ⋅ P ( x 1 ∣ C i ) ⋅ P ( x 2 ∣ C i ) ⋯ P ( x n ∣ C i ) P(C_i) \cdot P(x_1 | C_i) \cdot P(x_2 | C_i) \cdots P(x_n | C_i) P(Ci)P(x1Ci)P(x2Ci)P(xnCi)

优势

  1. 计算简单:因为条件独立假设,计算复杂度低,速度快。
  2. 数据需求少:对小数据集也能表现良好。
  3. 处理多类别问题:适合处理多类别分类问题。

局限性

  1. 条件独立性假设不现实:在许多情况下,特征之间并不是独立的,假设不成立时分类器效果可能下降。
  2. 对数据格式敏感:在某些应用场景中,对特征的处理和分布的要求较高。

朴素贝叶斯的三种常见变体

根据数据的不同特性,朴素贝叶斯有三种常见的变体模型:高斯朴素贝叶斯、多项式朴素贝叶斯和伯努利朴素贝叶斯。它们分别适用于不同类型的数据和应用场景。

1. 高斯朴素贝叶斯(Gaussian Naive Bayes)

高斯朴素贝叶斯连续特征数据,假设特征服从高斯分布(正态分布)。如身高、体重。

假设:每个类别 C i C_i Ci 下的特征 x j x_j xj 服从正态分布:
P ( x j ∣ C i ) = 1 2 π σ C i 2 exp ⁡ ( − ( x j − μ C i ) 2 2 σ C i 2 ) P(x_j | C_i) = \frac{1}{\sqrt{2 \pi \sigma_{C_i}^2}} \exp \left( -\frac{(x_j - \mu_{C_i})^2}{2 \sigma_{C_i}^2} \right) P(xjCi)=2πσCi2 1exp(2σCi2(xjμCi)2)
其中, μ C i \mu_{C_i} μCi σ C i \sigma_{C_i} σCi 分别是类别 C i C_i Ci 下特征 x j x_j xj 的均值和标准差。

  • 适用场景
    • 特征为连续值(如身高、体重等)。
    • 特征值近似服从正态分布的场景。
    • 不适合处理离散数据,如文本分类中的词频数据。
  • 示例应用
    • 分类问题中,特征是连续变量的,如预测癌症的肿瘤大小。

2. 多项式朴素贝叶斯(Multinomial Naive Bayes)

多项式朴素贝叶斯适用于离散型数据,假设特征(如词频)符合多项式分布。如词频或 TF-IDF 值。

假设:每个类别 C i C_i Ci 下的特征 x j x_j xj 服从多项式分布:
P ( x ∣ C i ) = ( ∑ j = 1 d x j ) ! x 1 ! x 2 ! ⋯ x d ! ∏ j = 1 d P ( x j ∣ C i ) x j P(x | C_i) = \frac{\left( \sum_{j=1}^d x_j \right)!}{x_1! x_2! \cdots x_d!} \prod_{j=1}^d P(x_j | C_i)^{x_j} P(xCi)=x1!x2!xd!(j=1dxj)!j=1dP(xjCi)xj
其中, d d d 是特征数量, x j x_j xj 是特征 j j j 的出现次数, P ( x j ∣ C i ) P(x_j | C_i) P(xjCi) 是在类别 C i C_i Ci 下特征 j j j 出现的概率。

  • 适用场景
    • 特征值是非负整数(表示频数)。
    • 文本分类,特征为词频或 TF-IDF 值。
  • 示例应用
    • 垃圾邮件分类,根据邮件中不同词的出现频率进行分类。
    • 文档主题分类。

3. 伯努利朴素贝叶斯(Bernoulli Naive Bayes)

伯努利朴素贝叶斯适用于二元特征数据(如 0 和 1),假设特征服从伯努利分布。,常用于特征值表示是否出现某个事件的场景。

假设:每个类别 C i C_i Ci 下的特征 x j x_j xj 服从伯努利分布:
P ( x j ∣ C i ) = P ( x j = 1 ∣ C i ) x j ⋅ ( 1 − P ( x j = 1 ∣ C i ) ) 1 − x j P(x_j | C_i) = P(x_j = 1 | C_i)^{x_j} \cdot (1 - P(x_j = 1 | C_i))^{1 - x_j} P(xjCi)=P(xj=1∣Ci)xj(1P(xj=1∣Ci))1xj
其中, x j x_j xj 为 0 或 1,表示特征 j j j 是否在样本中出现。

  • 适用场景
    • 特征为布尔值(0或1)表示的场景,如文本数据中的词袋模型(词是否出现)。
    • 适用于稀疏数据,尤其是大量特征值为0的情况。
  • 示例应用
    • 文本分类中,每个特征表示某个词是否出现在文档中(即只关心是否出现,不关心出现的次数)。
    • 文本情感分析,特征表示是否出现某些情感词汇。

总结

  • 贝叶斯定理 提供了一种计算条件概率的方法。
  • 朴素贝叶斯分类器 假设特征之间相互独立,尽管这一假设在实际中可能并不成立,但在很多应用中仍然表现良好。
  • 高斯朴素贝叶斯:适合连续值特征假设特征服从正态分布
  • 多项式朴素贝叶斯:适合离散值特征假设特征服从多项式分布。特征表示频数,如词频数据。
  • 伯努利朴素贝叶斯:适合布尔值特征假设特征服从伯努利分布。特征表示某事件是否发生,如词袋模型的文本分类。

选择合适的朴素贝叶斯模型有助于提高分类效果,应根据数据特征和应用场景进行选择。

零概率问题

没有平滑时,这个概率可以表示为:

P ( x i ∣ C ) = count ( x i , C ) count ( C ) P(x_i | C) = \frac{\text{count}(x_i, C)}{\text{count}(C)} P(xiC)=count(C)count(xi,C)

其中:

  • count ( x i , C ) \text{count}(x_i, C) count(xi,C) 表示类别 C C C 下特征 x i x_i xi 出现的次数。
  • count ( C ) \text{count}(C) count(C) 表示类别 C C C 出现的总次数。

朴素贝叶斯中的零概率问题是指在计算后验概率时,如果某个特征值在训练数据中没有出现,则该特征值的概率会被计算为0。由于贝叶斯公式中包含了特征值的概率乘积,只要一个特征值的概率为0,那么整体公式的结果也会为0,导致预测结果不准确

总结

  • 拉普拉斯平滑:一种简单的平滑方法,通过在每个事件的频数上加1来避免零概率问题。适合简单场景,但在数据量较大时可能过于平滑。
  • 加权平滑引入一个超参数控制特征的重要性或频率分布,进行比例调整,适合在特征权重差异较大的情况下使用。
  • Dirichlet平滑:一种基于Dirichlet分布的平滑方法,灵活度更高,通过给每个特征引入超参数对平滑程度进行调节,常用于复杂的文本模型、语言模型或多项式分布估计中。

拉普拉斯平滑(Laplace Smoothing)

拉普拉斯平滑(也称为加一平滑)是一种解决概率估计中零概率问题的简单方法。拉普拉斯平滑通过在每个事件的频数上加一个小的正数(通常为1) 来避免零概率的出现。

公式为:
在这里插入图片描述其中:

  • count ( x i , C ) \text{count}(x_i, C) count(xi,C) 表示类别 C C C 下特征 x i x_i xi 出现的次数。
  • count ( C ) \text{count}(C) count(C) 表示类别 C C C 出现的总次数。
  • | V V V |是特征空间的大小 (即可能出现的所有特征的数量)。
  • 加上1是为了保证所有特征的概率不为零

拉普拉斯平滑适用于解决朴素贝叶斯分类器中的零概率问题,这可能导致对频率较高的事件也进行了不必要的平滑,使得估计结果过于平滑。

加权平滑(Weighted Smoothing)

可以根据特征重要性或频率分布给予不同的权重,从而在估计概率时更加准确。

公式为:
P ( x i ∣ C ) = count ( x i , C ) + α count ( C ) + α ⋅ ∣ V ∣ P(x_i | C) = \frac{\text{count}(x_i, C) + \alpha}{\text{count}(C) + \alpha \cdot |V|} P(xiC)=count(C)+αVcount(xi,C)+α
其中:

  • count ( x i , C ) \text{count}(x_i, C) count(xi,C) 表示类别 C C C 下特征 x i x_i xi 出现的次数。
  • count ( C ) \text{count}(C) count(C) 表示类别 C C C 出现的总次数。
  • | V V V |是特征空间的大小 (即可能出现的所有特征的数量)。
  • α \alpha α加权平滑的平滑参数,用来控制平滑的强度。
    • α = 1 \alpha = 1 α=1 时,公式退化为拉普拉斯平滑。
    • 如果 α > 1 \alpha > 1 α>1,则加大对未见事件的平滑强度。
    • 如果 α < 1 \alpha < 1 α<1,则对未见事件的平滑力度较小。

通过引入特征权重 α ,根据特征的重要性或频率分布进行比例调整。需要在平滑过程中考虑特征间差异的情况,调整 α 。

狄利克雷平滑(Dirichlet Smoothing)

Dirichlet平滑是一种更加灵活的平滑方法,它通过引入超参数对每个特征的平滑程度进行调整。相比拉普拉斯平滑,Dirichlet平滑能够根据数据特点选择不同的平滑强度。

公式为:
P ( x i ∣ C ) = count ( x i , C ) + α i count ( C ) + ∑ i = 1 ∣ V ∣ α i P(x_i | C) = \frac{\text{count}(x_i, C) + \alpha_i}{\text{count}(C) + \sum_{i=1}^{|V|} \alpha_i} P(xiC)=count(C)+i=1Vαicount(xi,C)+αi
其中:

  • count ( x i , C ) \text{count}(x_i, C) count(xi,C) 表示类别 C C C 下特征 x i x_i xi 出现的次数。
  • count ( C ) \text{count}(C) count(C) 表示类别 C C C 出现的总次数。
  • | V V V |是特征空间的大小 (即可能出现的所有特征的数量)。
  • α i \alpha_i αi 是每个特征 x i x_i xi 的平滑参数,不同的特征可以有不同的平滑强度。
  • α i \alpha_i αi 相等且为 1 时,Dirichlet 平滑退化为拉普拉斯平滑。

为每个类别分配不同的平滑参数,更加灵活。 计算较复杂,但在处理复杂的数据分布时更具优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2239654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型书籍推荐丨这本书必看:大语言模型 基础与前沿(附PDF)

哈喽大家好&#xff01;很久都没有更新大模型这块的书了&#xff0c;今天给大家说一下这本&#xff1a;《大语言模型&#xff1a;基础与前沿》&#xff0c;本书深入阐述了大语言模型的基本概念和算法、研究前沿以及应用&#xff0c;涵盖大语言模型的广泛主题&#xff0c;从基础…

Tofu AI视频处理模块视频输入配置方法

应用Tofu产品对网络视频进行获取做视频处理时&#xff0c;首先需要配置Tofu产品的硬件连接关系与设备IP地址、视频拉流地址。 步骤1 Tofu设备点对点直连或者通过交换机连接到电脑&#xff0c;电脑IP配置到与Tofu默认IP地址同一个网段。 打开软件 点击右上角系统设置 单击左侧…

MTSET可溶于DMSO、DMF、THF等有机溶剂,并在水中有轻微的溶解性,91774-25-3

一、基本信息 中文名称&#xff1a;[2-(三甲基铵)乙基]甲硫基磺酸溴&#xff1b;MTSET巯基反应染料 英文名称&#xff1a;MTSET&#xff1b;[2-(Trimethylammonium)ethyl]methanethiosulfonate Bromide CAS号&#xff1a;91774-25-3 分子式&#xff1a;C6H16BrNO2S2 分子量…

BERT框架详解

BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是由Google在2018年提出的一种自然语言处理&#xff08;NLP&#xff09;模型。BERT通过使用Transformer架构&#xff0c;实现了对文本的双向上下文理解&#xff0c;从而在多个NLP任务中取…

定时器(QTimer)与随机数生成器(QRandomGenerator)的应用实践——Qt(C++)

一、QTimer与QRandomGenerator &#xff08;一&#xff09;QTimer&#xff08;定时器&#xff09;[2] QTimer类为定时功能提供了一个高级编程接口。在使用QTimer时&#xff0c;实例化一个QTimer对象并将其timeout()发射信号与合适的信号槽相连接。通过调用QTimer的start()函数…

Linux 进程线程间通信总结

线程 线程共享存储空间主要带来的问题是数据同步和互斥。由于线程在同一进程中运行&#xff0c;它们共享相同的内存空间&#xff0c;任何线程都可以访问共享数据。这样&#xff0c;多个线程并发执行时&#xff0c;可能会导致以下两种主要问题&#xff1a; 互斥问题&#xff0…

什么是RAG? LangChain的RAG实践!

1. 什么是RAG RAG的概念最先在2020年由Facebook的研究人员在论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中提出来。在这篇论文中他们提出了两种记忆类型&#xff1a; 基于预训练模型&#xff08;当时LLM的概念不像现在这么如日中天&#xff0…

Python 进阶函数教程

Python 进阶函数教程 引言 在 Python 编程中&#xff0c;函数是组织代码、提高可重用性和可读性的关键组成部分。尽管许多初学者掌握了基本的函数定义和调用&#xff0c;但 Python 还提供了许多高级功能&#xff0c;使函数更加灵活和强大。本文将深入探讨 Python 中的高级函数…

ReactPress:深入解析技术方案设计与源码

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;欢迎一起共建&#xff0c;感谢Star。 ReactPress是一个基于React框架开发的开源发布平台&#xff0c;它不仅仅是一个简单的博客系统&#xff0c;更是一个功能全…

c++实现B树(下)

书接上回小吉讲的是B树的搭建和新增方法的实现&#xff08;blog传送门&#x1f6aa;&#xff1a;B树实现上&#xff09;&#xff08;如果有小可爱对B树还不是很了解的话&#xff0c;可以先看完上一篇blog&#xff0c;再来看小吉的这篇blog&#xff09;。那这一篇主要讲的是B树中…

【漏洞分析】Fastjson最新版本RCE漏洞

01漏洞编号 CVE-2022-25845CNVD-2022-40233CNNVD-202206-1037二、Fastjson知多少 万恶之源AutoType Fastjson的主要功能是将Java Bean序列化为JSON字符串&#xff0c;这样得到的字符串就可以通过数据库等方式进行持久化了。 但是&#xff0c;Fastjson在序列化及反序列化的过…

PSRAM,Flash,SRAM,ROM有什么区别

PSRAM、Flash、SRAM 和 ROM 是四种不同类型的存储器&#xff0c;它们在计算机和嵌入式系统中的用途、特性和工作方式各不相同。下面是这四种存储器的区别和各自的特点&#xff1a; ### 1. **SRAM&#xff08;静态随机存取存储器&#xff09;** - **特性**&#xff1a; - **易…

大数据学习13之Scala基础语法(重点)

1. 简介 Scala 是 Scalable Language 的简写&#xff0c;是一门多范式的编程语言。创始人为 Martin Odersky 马丁奥德斯基。 Scala 这个名字来源于 Scalable Language(可伸缩的语言&#xff09;&#xff0c;它是一门基于 JVM 的多范式编程语言&#xff0c;通俗的说&#xff1a;…

django入门【05】模型介绍——字段选项(二)

文章目录 1、null 和 blank示例说明⭐ null 和 blank 结合使用的几种情况总结&#xff1a; 2、choices**choices 在 Django 中有以下几种形式&#xff1a;**&#xff08;1&#xff09; **简单的列表或元组形式**&#xff08;2&#xff09; **字典映射形式**&#xff08;3&#…

微信小程序:vant组件库安装步骤

前言&#xff1a;在微信小程序中引用vant组件报错&#xff0c;提示路径不存在&#xff0c;这很有可能是因为没有安装构建vant组件库导致。下面是我整理的安装vant组件库的步骤: 第一步&#xff1a;安装node.js(执行完第一步请重启小程序) 具体步骤请看链接&#xff1a;node.js…

Python如何根据给定模型计算权值

目录 一、特征权重的重要性 二、线性回归中的特征权重计算 1. 导入必要的库 2. 创建示例数据集 3. 分割数据集 4. 训练线性回归模型并计算权重 三、特征选择方法 四、实际案例&#xff1a;金融科技数据集 五、总结 在机器学习中&#xff0c;特征权重的计算是理解模型如…

过去几年电子学习的趋势

近年来&#xff0c;在技术和不断变化的学习者期望的推动下&#xff0c;电子学习已经发展成为一种适应性强、沉浸式和社会化的教育形式。个性化已成为最具影响力的趋势之一&#xff0c;Coursera和LinkedIn Learning等平台为个人量身定制内容。这些平台使用人工智能来建议课程、跟…

面相小白的php反序列化漏洞原理剖析

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理反序列化漏洞的一些成因原理 建议学习反序列化之前 先对php基础语法与面向对象有个大体的了解 (我觉得我整理的比较细致&#xff0c;了解这俩是个啥就行) 漏洞实战情况 这个漏洞黑盒几乎不会被发现&am…

Flutter中的Material Theme完全指南:从入门到实战

Flutter作为一款热门的跨平台开发框架&#xff0c;其UI组件库Material Design深受开发者喜爱。本文将深入探讨Flutter Material Theme的使用&#xff0c;包括如何借助Material Theme Builder创建符合产品需求的主题风格。通过多个场景和代码实例&#xff0c;让你轻松掌握这一工…

IDC机房服务器托管的费用组成

IDC机房服务器托管的费用&#xff0c;并不是只有我们所想的电费而已&#xff0c;还有一些其它费用组成&#xff0c;详细来看&#xff1a; 1. 机位费用&#xff1a;   - 机位费用是根据服务器的尺寸和占用的空间来计算的。服务器通常按照U&#xff08;Unit&#xff09;的高度来…