朴素贝叶斯(NaïveBayes)

2023-10-26

NaïveBayes简介

基于贝叶斯方法,通过先验概率,计算并选择最大的后验概率。

核心公式

P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)} P(YX)=P(X)P(XY)P(Y)
其中:
P(Y)为先验概率(prior);
P(X|Y)为在样本为Y的前提下,X的条件概率是(likelihood);
P(X)是证据因子(evidence);
P(Y|X)是后验概率(posterior)。

  1. 离散的概率模型
    P ( Y ∣ X 1 , … , X i ) P(Y|X_1,…,X_i) P(YX1,,Xi),其中类别变量Y,依赖于特征变量 X 1 , X 2 , … , X i X_1, X_2,…,X_i X1,X2,,Xi, 修改模型为:
    P ( Y ∣ X 1 , . . , X i ) = P ( X 1 , . . , X i ) P ( Y ) P ( X 1 , . . . , X i ) P(Y|X_1,..,X_i)=\frac{P(X_1,..,X_i)P(Y)}{P(X_1,...,X_i)} P(YX1,..,Xi)=P(X1,...,Xi)P(X1,..,Xi)P(Y)
    由于在预测时,同种方案下,分母 P ( X 1 , … , X i ) P(X_1,…,X_i) P(X1,,Xi)相同,因此我们可以不用考虑这部分。因此,此模型,我们重点需要计算的部分即为: P ( X 1 , . . , X i ) P ( Y ) P(X_1,..,X_i)P(Y) P(X1,..,Xi)P(Y)
    根据链式法则,假设各个特征相互独立,模型即可变为以下公式: P ( X 1 ∣ P ) ∗ P ( X 2 ∣ Y ) . . . P ( X i ∣ Y ) P(X_1|P)*P(X_2|Y)...P(X_i|Y) P(X1P)P(X2Y)...P(XiY)其中, P ( X i ∣ Y ) = D X , Y D Y P(X_i|Y)=\frac{D_{X,Y}}{D_Y} P(XiY)=DYDX,Y

  2. 连续概率模型
    (采用最大似然估计)假设概率的密度函数为:
    P ( X i ∣ Y ) = 1 2 Π σ Y e ( X i − μ γ ) 2 2 σ γ P(X_i|Y)=\frac{1}{\sqrt{2\Pi}\sigma_Y}e^{\frac{{(X_i-\mu_\gamma)}^2}{2\sigma_\gamma}} P(XiY)=2Π σY1e2σγ(Xiμγ)2
    其中:
    μ ^ γ = 1 ∣ D γ ∣ ∑ X ∈ D c X \hat{\mu}_\gamma=\frac{1}{|D_\gamma|}\sum_{X \in D_c}X μ^γ=Dγ1XDcX

σ ^ γ 2 = 1 ∣ D γ ∣ ∑ X ∈ D γ ( X − μ γ ^ ) ( X − μ γ ^ ) T \hat{\sigma}_\gamma^2=\frac{1}{|D_\gamma|} \sum_{X \in D_\gamma}(X-\hat{\mu_\gamma})(X-\hat{\mu_\gamma})^T σ^γ2=Dγ1XDγ(Xμγ^)(Xμγ^)T

  1. 拉普拉斯修正
    (避免因样本不充分而导致估计概率为0)
    令N表示训练集D中可能的类别数,Ni表示第i个属性可能的取值数
    P ^ ( Y ) = ∣ D γ ∣ + 1 D + N \hat{P}(Y)=\frac{|D_\gamma|+1}{D+N} P^(Y)=D+NDγ+1
    P ^ ( X i ∣ Y ) = ∣ D Y , X i ∣ + 1 D γ + N i \hat{P}(X_i|Y)=\frac{|D_{Y,X_i}|+1}{D_\gamma+N_i} P^(XiY)=Dγ+NiDY,Xi+1

算法十问

  1. 贝叶斯公式的物理意义?
  1. 后验概率最大化的含义?

后验概率最大化等价于0-1损失函数期望风险最小化。
详见:《统计学习方法》48页

  1. 朴素贝叶斯法、贝叶斯公式、贝叶斯估计分别是什么?
  • 朴素贝叶斯法就是我们这个朴素贝叶斯分类器。
  • 贝叶斯公式仅仅是指使用到的公式
    P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)} P(YX)=P(X)P(XY)P(Y)
  • 贝叶斯估计是和极大似然估计相对的一种参数估计方法,就是对每一个参数变量加入一个 λ \lambda λ。当 λ = 0 \lambda = 0 λ=0时,就是极大似然估计. 通常取值$ \lambda = 1$,这就是拉普拉斯平滑(Laplace smoothing).
  1. 贝叶斯网络是什么?

朴素贝叶斯假设输入变量都是条件独立的,如果输入变量之间存在概率依存关系,这是就是贝叶斯网络。

  1. 朴素贝叶斯分类器适合处理什么数据类型,能否处理连续特征?

朴素贝叶斯适合处理标称型数据类型,当处理连续型数据特征时,如果特征值很多可以使用特征分桶策略;但是一般可以假设样本特征服从某个分布(例如正太分布),计算均值和方差给出对应的分类,再进行贝叶斯计算。

面试总结

  1. 朴素贝叶斯与LR的区别?(经典问题)
  • 朴素贝叶斯是生成模型,而LR为判别模型.朴素贝叶斯:已知样本求出先验概率与条件概率,进而计算后验概率。
    优点:样本容量增加时,收敛更快;隐变量存在时也可适用。
    缺点:时间长;需要样本多;浪费计算资源
    .
  • Logistic回归:不关心样本中类别的比例及类别下出现特征的概率,它直接给出预测模型的式子。设每个特征都有一个权重,训练样本数据更新权重w,得出最终表达式。
    优点:直接预测往往准确率更高;简化问题;可以反应数据的分布情况,类别的差异特征;适用于较多类别的识别。
    缺点:收敛慢;不适用于有隐变量的情况。
  • 朴素贝叶斯是基于很强的条件独立假设(在已知分类Y的条件下,各个特征变量取值是相互独立的),而LR则对此没有要求。 > + 朴素贝叶斯适用于数据集少的情景,而LR适用于大规模数据集。
  1. 朴素贝叶斯分类适用于什么样子的数据集?

朴素贝叶斯适用于小规模的数据。

  1. 朴素贝叶斯中,朴素的含义?

对于朴素贝叶斯分类器,朴素(naive)的含义是各个特征属性之间是相互独立的。

  1. 因样本不充分而导致估计概率为0应如何修正?

使用拉普拉斯修正,详细信息见1.3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

朴素贝叶斯(NaïveBayes) 的相关文章

  • vscode c++安装与单文件多文件编译配置(win10)

    vscode c 安装与单文件多文件编译配置 win10 总体思路 1下载Vscode mingw cmake 用于多文件编译 2配置 1 gt mingw vscode cmake环境变量 2 gt vscode 插件Chinese co
  • Redis多线程与ACL

    Redis是单线程吗 Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的 这也是 Redis 对外提供键值存储服务的主要流程 但 Redis 的其他功能 比如持久化 异步删除 集群数据同步等 其实是由额
  • JS中正则表达式常用语法总结

    目录 一 正则表达式的创建 二 的区别 三 和 四 d s w 五 六 test match 七 支持正则表达式的 String 对象的方法 一 正则表达式的创建 JS正则的创建有两种方式 new RegExp 和 直接字面量 使用RegE
  • Java Remote Debug(IDEA实现远程调试)

    前言 介绍 Java Remote Debug指的是 Java远程调试 特别是当你在本地开发的时候 你需要调试服务器上的程序时 远程调试就显得非常有用 本人就遇到这样一个问题 本地环境运行一切正常 但是部署到服务器就报错 而且问题一直找不到
  • ctfshow中web入门题关键解题思路

    一 信息搜集 1 web1 查看页面源代码 2 web2 burdsuite抓包 3 web3 burdsuite抓包 4 web4 查看robots txt文件 5 web5 查看index phps文件 6 web6 一般网站开发的源代
  • 开源IaaS云平台的分析与比较

    http blog csdn net jiayuboxin article details 11934223 http blog csdn net jiayuboxin article details 10977429 Project Sa
  • Dirichlet分布的推导与理解

    1 概述 Dirichlet 分布与贝塔分布 伽马分布有着紧密的联系 在贝叶斯统计中经常被用作其它概率分布如多项分布的先验分布 且在LDA分析中得到了广泛应用 本文结合直观理解以及详细的数学推导得到狄利克雷分布具体形式 并结合可视化以加深理
  • 解决Android Studio连接不上逍遥模拟器的问题

    1 打开逍遥模拟器 2 打开Android Studio 所要运行的项目 3 cmd 打开命令提示符 然后输入 adb connect 127 0 0 1 21503 然后回车 OK搞定 屡试不爽 看下图 其他模拟器参考这里点击打开链接
  • 在什么场景下要使用类方法

    静态方法和类方法的比较 静态方法 我们先来创建一个类 假设他是检测报告的相关信息 class Report inspection negative def init self name id number self name name se
  • 【Block-Level Verification】 SystemVerilog 数据类型_数组操作_队列_结构体_枚举类型_字符串_过程块和方法_变量生命周期_例化和链接...

    System Verilog芯片验证 System Verilog语言 1 数据类型 Verilog本身是来做硬件描述 是对硬件本身的行为进行建模 SystemVerilog是Verilog的生命延续 sv是对SystemVerilog进行
  • powershell定义命令(四)

    using System using System Collections Generic using System Collections ObjectModel using System ComponentModel using Sys
  • OpenCV3历程(5)——裂缝的检测与测量

    一 开始先介绍几个即将用到的函数及知识点 1 LUT函数 函数简介 void LUT InputArray src 原始图像的地址 InputArray lut 查找表的地址 对于多通道图像的查找 它可以有一个通道 也可以与原始图像有相同的
  • char data[0]用法总结

    struct MyData int nLen char data 0 开始没有理解红色部分的内容 上网搜索下 发现用处很大 记录下来 在结构中 data是一个数组名 但该数组没有元素 该数组的真实地址紧随结构体MyData之后 而这个地址就

随机推荐

  • vue3中使用echarts饼状图,并且点击第一个饼状图某一块显示这部分信息的饼状图

    1 在项目中安装echarts npm install echarts save 2 引入echarts div div div div function initChart 基于准备好的dom 初始化echarts实例 var myCha
  • Python数据分析基础篇--NumPy

    大家好 我是小研 一个在研究生路上的苦行僧 今天给大家分享一下Python数据分析的Numpy基础 开启数据分析的基础篇 NumPy基础 NumPy Numerical Python的简称 是Python数值计算最重要的基础包 大多数提供科
  • 启动Elasticsearch服务,提示如下错误信息:maybe these locations are not writable or multiple nodes were started

    Elasticsearch 服务启动 提示错误信息 o e b ElasticsearchUncaughtExceptionHandler node 1 uncaught exception in thread main org elast
  • Qt5调用QPixmap::fromWinHICON

    QPixmap QPixmap fromWinHICON HICON icon static Win32 only Returns a QPixmap that is equivalent to the given icon Warning
  • 9、java5线程池之定时任务线程池newScheduledThreadPool与newSingleThreadScheduledExecutor

    JDK文档描述 newSingleThreadScheduledExecutor 创建一个单线程执行程序 它可安排在给定延迟后运行命令或者定期地执行 注意 如果因为在关闭前的执行期间出现失败而终止了此单个线程 那么如果需要 一个新线程会代替
  • Linux杂谈之sudo

    一 sudo配置文件 etc sudoers介绍 什么是sudo 1 sudo 的 英文全称 是 super user do 即以超级用户 root 用户 的方式执行命令 2 etc sudoers 是一个文本文件 只有 root用户 有该
  • 【Spark】Task、Partition、RDD等概念的理解

    有部分图和语句摘抄别的博客 有些理解是自己的补充的 梳理一下Spark中Task Partition RDD Node数 Executor数 core数目的关系和Application Driver Job Task Stage理解 1 B
  • ChatGPT 打字机效果原理

    一 背景 在初次使用 ChatGPT 时 我就被打字机的视觉效果吸引 总是感觉似曾相识 因为经常在一些科幻电影中看到 高级文明回传的信息在通讯设备的屏幕上以打字机效果逐步出现 在紧张的氛围下 输出人类可读的内容 拉动着观众的神经 一步步将故
  • IDM下载百度资源出现403的解决方法

    IDM下载百度资源出现403的解决方法 参考文章 1 IDM下载百度资源出现403的解决方法 2 https www cnblogs com aucy p 9567375 html 备忘一下
  • redis的五种数据结构

    reids官方命令集查询 http redis io commands redis整合各种语言案例查询 https github com josiahcarlson redis in action redis可以存储键和五种不同类型的值之间
  • 《Java面向对象程序设计》学习笔记

    最近备考某学校的 817程序设计Java 的专业课 在学习耿祥义老师的 Java面向对象程序设计 第3版 微课视频版 发一些自己的学习笔记到专栏 一篇文章对应书上一章 可能不会及时更新 见谅 笔记可能有错误 看看就得 现在懒得浓缩精炼了 以
  • RL

    Catalogue DQN Framework Application 1 1 Cartpole Introduction 1 2 Code 1 3 Result Reference DQN Framework The agent inte
  • Java 遍历集合时删除元素 快速失败和安全失败

    文章目录 遍历集合时删除元素 遍历集合时删除元素的五种操作 方式4分析 方式2和方式3分析 方式5分析 方式1分析 方式5再分析 快速失败和安全失败 快速失败 fail fast 安全失败 fail safe 附录 遍历集合时删除元素 遍历
  • Visual Studio 调试系列1 Debug 与 Release 模式

    系列目录 已更新最新开发文章 点击查看详细 Debug 模式 Debug 通常称为调试版本 它包含调试信息 并且不作任何优化 便于程序员调试程序 在Debug模式下调试 可以在断点处看到详细的调试提示信息 如下图 并且在输出目录中生成 De
  • vue3+ts使用websocket 实现实时推送消息

    因业务需要 做大屏页面某一处需要不断推送消息 采用websocket技术 1 新建socket ts 在utils文件夹下新建socket ts export default class Socket cb 存储回调函数 construct
  • 程序员会被 AI 替代吗?

    作者 阿文 责编 伍杏玲 出品 程序人生 coder life 程序人生 编者按 本文作者是运维工程师 为什么拥有IT技能的他会自称为 客服 的呢 一起来看看吧 客服 日常 笔者目前从事云计算行业的客户服务性岗位 虽然工作上需要用到各种技术
  • import引css,@import引入CSS文件的方法

    import引入CSS文件的方法 发布时间 2020 09 26 13 58 39 来源 亿速云 阅读 61 作者 小新 小编给大家分享一下 import引入CSS文件的方法 相信大部分人都还不怎么了解 因此分享这篇文章给大家参考一下 希望
  • Excel使用hlookup和offset实现动态查询报表

    文章目录 1 筛选器 2 hLookUp函数 3 sum offset函数 4 mod函数 效果图 数据源 文件下载 https download csdn net download diyangxia 85231108 1 筛选器 在年份
  • 排序

    桶排序 快 简单 但是浪费空间 memset num 0 sizeof num for int i 1 i lt n i scanf d t num t for int i 1000 i gt 1 i for int j 1 j lt a
  • 朴素贝叶斯(NaïveBayes)

    Author Silly 0903 Datawhale Na veBayes简介 基于贝叶斯方法 通过先验概率 计算并选择最大的后验概率 核心公式 P Y X