机器学习 | 朴素贝叶斯

news2024/11/18 5:33:04

一.基本原理

基于条件独立的假设,先计算输入和输出的联合概率密度,然后根据所输入的x计算y的概率,然后选择具有最大后验概率的类作为它的类别

二.优缺点

优点

  • 小规模数据集表现好,适合多分类
  • 对于在小数据集上有显著特征的相关对象,朴素贝叶斯可以对其进行快速分类
  • 对大数据量训练和查询时具有较高的速度。即使使用超大规模的训练集,针对每个项目通常也只会有相对较少的特征数,并且对项目的训练和分类也仅仅是特征概率的数学运算而已
  • 支持增量式运算,即可以实时的对新增的样本进行训练
  • 对结果解释容易理解
  • 对于噪声和无关属性比较健壮。噪声点和无关属性对算法影响较小,在很多邮件服务中仍然一直沿用这个方法进行垃圾邮件过滤

缺点

  • 需要条件独立假设,会牺牲一定准确率,分类性能不一定高。因为在实际应用中,属性之间完全独立的情况是很少出现的,如果属性相关度较大,那么分类的效果就会变差。所以在具体应用的时候要好好考虑特征之间的相互独立性,再决定是否使用该算法,比如,维度太多的数据可能就不太适合,因为在维度很多的情况下,不同的维度之间越有可能存在联合的情况,而不是相互独立的,那么模型的效果就会变差
  • 对于连续性特征变量要求其满足正态分布

三.适用场景

  • 需要一个比较容易解释,而且不同维度之间相关性比较小的模型的时候
  • 可以高效处理数据,虽然结果不尽人意
  • 中文文本分类
  • TF-IDF 文本词频统计转换
  • 垃圾邮件的分类
  • 信用评估
  • 情感识别
  • 多分类实时预测(因为速度快)
  • 推荐系统(朴素贝叶斯 + 协同过滤)
  • 欺诈检测
  • 钓鱼网检测

四.常见面试题

1.什么是贝叶斯决策理论?

贝叶斯的底层思想:如果能够掌握一个事物的全部信息,就一定可以计算出一个客观概率。但是我们遇到的绝大多数事物的信息都是不全的,贝叶斯决策就是在不完全信息下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策(选择概率最大的类别),即:

  • 已知类条件概率密度参数表达式和先验概率
  • 利用贝叶斯公式转换成后验概率
  • 根据后验概率大小进行决策分类

2.朴素贝叶斯算法的前提假设是什么?

  • 特征之间相互独立
  • 每个特征同等重要

3.朴素贝叶斯为什么朴素?

朴素的含义是“单纯天真”。因为它假定所有的特征在数据集中的作用是同样重要和独立的。这个假设现实中基本上不存在,因此说朴素贝叶斯真的很朴素。很多情况下,所有变量几乎不可能满足两两之间的条件。用贝叶斯公式表达如下:

4.先验概率,后验概率,条件概率,联合概率,全概率公式和贝叶斯公式的理解

  • 先验概率:表示事件发生前的预判概率。这个可以是基于历史数据统计,也可以由背景常识得出,也可以是主观观点得出。一般都是单独事件发生的概率,如P(A)
  • 后验概率:基于先验概率求得的反向条件概率,形式上与条件概率相同,但是意义不同。后验概率是具体场景下条件概率的深入,具有一种建模意义,而条件概率只是一个数学名称
  • 条件概率:P(A|B)表示B发生的条件下A发生的概率
  • 联合概率:P(AB)表示事件A和事件B同时发生的概率
  • 全概率公式:是对结果成立的所有可能情况的概率求和
  • 贝叶斯公式:当已知结果,问导致这个结果的第 i 个原因的可能性是多少?

5.为什么属性独立性假设在实际情况中很难成立,但朴素贝叶斯仍能取得较好的效果?

首先独立性假设在实际中不存在,确实会导致朴素贝叶斯不如一些其他算法,但是就算法本身而言,朴素贝叶斯也会有不错的分类效果,原因是:

  •  对于分类任务来说,只要各类别的条件概率排序正确,无需精准概率值即可正确分类
  • 如果属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时不会对性能产生负面影响

6.什么是朴素贝叶斯中的零概率问题?如何解决?

  • 零概率现象:在进行分类的时候,可能会出现某个属性在训练集中没有与某个类同时出现过的情况,如果直接基于朴素贝叶斯分类器的表达式进行计算的话就会出现零概率现象
  • 解决方法:为了避免其他属性所携带的信息被训练集中未出现过的属性值抹去,一般使用拉普拉斯估计器进行修正
  • 具体方法:在分子上加1,对于先验概率,在分母上加上训练集中label的类别数;对于特征 i 在label下的条件概率,则在分母上加上第 i 个属性可能的取值数

7.朴素贝叶斯中概率计算的下溢问题如何解决?

  • 下溢问题:在朴素贝叶斯的计算过程中,需要对特定分类中各个特征出现的概率进行连乘,小数相乘,越乘越小,这样就造成下溢出。在程序中,在相应小数位置进行四舍五入,计算结果可能就变成0了
  • 解决方法:对乘积结果取自然对数。将小数的乘法操作转化为取对数后的加法操作,规避了变为0的风险的同时并不影响分类结果

8.朴素贝叶斯为什么适合增量计算?

因为朴素贝叶斯在训练过程中实际只需要计算出各个类别的概率和各个特征的类条件概率,这些概率值可以快速的根据增量数据进行更新,无需重新全量训练,所以其十分适合增量计算。该特性可以使用在超出内存的大量数据计算和按小时级等获取的数据计算中

9.朴素贝叶斯怎么处理连续变量?

当朴素贝叶斯算法数据的属性为连续型变量时,有两种方法可以计算属性的类条件概率

第一种方法:把一个连续的属性离散化,然后相应的离散区间替换连续属性值

  • 但这种方法不好控制离散区间划分的粒度。如果粒度太细,就会因为每个区间内训练记录太少而不能对P(X|Y),做出可靠的估计
  • 如果粒度太粗,那么有些区间就会有来自不同类的记录,因此失去了正确的决策边界

第二种方法:假设连续变量服从某种概率分布,然后使用训练数据估计分布的参数,例如可以使用高斯分布来表示连续属性的类条件概率分布

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

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

相关文章

Scikit-network-02:载图

载图 在Scikit网络中,图形由其scipy的压缩稀疏行格式中的邻接矩阵(或二部图矩阵)表示。在本教程中,我们提供了一些方法来实例化此格式的图。 from IPython.display import SVGimport numpy as np from scipy import sparse impo…

SQL注入渗透与攻防(九)之布尔盲注

目录 1.什么是布尔盲注? 2.如何进行布尔盲注? 案列演示: 1.什么是布尔盲注? Web的页面的仅仅会返回True和False。那么布尔盲注就是进行SQL注入之后然后根据页面返回的True或者是False来得到数据库中的相关信息。 我们这里拿sql…

15Python文件操作

文件处理 01. 文件的概念 1.1 文件的概念和作用 计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据长期存储设备包括:硬盘、U 盘、移动硬盘、光盘… 1.2 文件的存储方式 在计算机中,文件是以 二进制 的方式保存在磁盘上的 文本…

论文理解--DEEP COMPRESSION

原文链接: https://github.com/mit-han-lab/amc/security https://zhuanlan.zhihu.com/p/108096347 https://zhuanlan.zhihu.com/p/510905067 摘要 结论: 1、deep compression:由三阶段pipeline组成:pruning(剪枝)、 trained quantilization…

452页24万字智慧城市顶层设计及智慧应用解决方案

智慧城市总体设计 2.1 智慧城市核心技术 2.1.1 物联网 智慧城市是一个有机结合的大系统,涵盖了更透切的感知、更全面的互连,更深入的智能。物联网是智慧城市中非常重要的元素,它侧重于底层感知信息的采集与传输,城市范围内泛在网方…

无需调用Tecplot,PFC后处理技巧为你plot精美科研图

导读:PFC提供了非常美观的可视化处理的窗口—plot,用户可以在这里对模型的运行状态进行检查,也可以将Plot中的视图输出进行处理。一般来说plot中的图片质量足够用于常规的论文配图,当然用户也可以导出数据到tecplot中进行后处理&a…

【UE4 第一人称射击游戏】08-使用“AK47”发射子弹

上一篇: 【UE4 第一人称射击游戏】07-添加“AK47”武器 本节效果: 步骤: 1.在“Blueprints”文件夹内添加一个Actor蓝图,命名为“Projectile_Base”,该蓝图用于表示子弹 双击打开“Projectile_Base”,添加…

期货开户的身份识别验证

无论你是开通商品期货、原油期货还是股指期货以及期权,现在都支持网上办理!原油期货和股指期货以及期权品种都是在商品期货账户的基础上满足条件后再另外开通交易权限。叁格期权小编在这里为各位投资者详细介绍商品期货网上开户流程。 一、开户前准备 …

文件透明加密,保护重要数据的安全性

各种泄露事件使人们对信息安全问题的高度关注,随着加密技术的不断完善,主流透明加密技术被广泛应用于企业加密软件中。那么,这个技术如何保护电脑?有什么优点? 文件透明加密是最近几年发展出来的一种文件加解密技术。所…

RK3568平台开发系列讲解(工具命令篇)vim 编辑器的使用

🚀返回专栏总目录 文章目录 一、vim 编辑器有三种模式二、vim 编辑器移动光标三、vim 编辑器支持快速定位四、vim 编辑器的文本的复制和粘贴五、vim 编辑器使用快捷键来复制六、vim 编辑器的删除七、vim 编辑器的撤销八、vim 编辑器的查找九、vim 编辑器的替换十、vim 编辑器…

四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)

目录CAM算法回顾CAM算法流程CAM算法的精妙之处CAM算法的缺点GradCAMGrad-CAM算法的优点:Grad-CAM算法的缺点:Grad-CAM算法的改进Grad-CAM算法Score-CAM算法LayerCAM算法总结CAM算法回顾 CAM算法流程 输入原始图像,经过多层无池化的全卷积神经…

23种设计模式:单例设计模式(饿汉式 VS 懒汉式)

23种设计模式:单例设计模式(饿汉式 VS 懒汉式) 每博一文案 世事浮沉,有太多的责任需要我们担当,生活中总有些挫折和磨难,让我们觉得快要杠不住了。 但当我们咬牙坚持过那段难熬的时光后,发现并…

居家防护类设备的智能化解决方案

疫情防控政策优化后,你期待的消费暴涨如期而至了吗?近期,继自带“玄学”光环的黄桃罐头被疯抢之后,橘子水、葱姜水、古法掐喉咙消肿等缓解疼痛的“东方神秘法宝”再现各大视频平台。 面对此次居家隔离,哪些产品将再次…

(Java)欢乐的跳

欢乐的跳一、题目描述二、输入格式三、输出格式四、样例(1)样例输入1(2)样例输出1(3)样例输入2(4)样例输出2五、提示六、正确代码七、注意点以及思路(1)注意点…

【万字长文】从Linux零拷贝深入了解Linux I/O

前言 存储器是计算机的核心部件之一,在完全理想的状态下,存储器应该要同时具备以下三种特性: 速度足够快:存储器的存取速度应当快于 CPU 执行一条指令,这样 CPU 的效率才不会受限于存储器容量足够大:容量…

新闻发布系统的设计与实现/新闻管理系统

摘要 21世纪是信息的时代,是网络的时代,进入信息社会高速发展的时代,数字化革命给所有领域带来新的改变。传统的报纸杂志已经远远满足不了人们的需求,人们更加希望于能够在网上了解更多的新闻和信息,网页逐渐融入人们的…

实验二:数据查询实验

【实验目的】 熟练运用SQL语言实现数据查询,包括单表查询、分组查询、连接查询、嵌套查询、集合查询、oralce数据库常用函数等 【实验内容】 根据“数据导入”文档中的语句,将“费用明细表”和“科室字典”2张excel表内容导入数据库。然后拟定以下内容…

力扣刷题笔记day8(二维数组中的查找+旋转数组的最小数字+第一个只出现一次的字符)

文章目录二维数组中的查找题目思路代码旋转数组的最小数字题目思路代码第一个只出现一次的字符题目思路代码二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高…

中级集成和高级信息系统项目管理怎么选?考哪个?

二者只有一个不同,高级需要考论文,如果有时间,有需求,就直接冲高级,一步到位; 下面一起看看两个科目的不同之处: 系统集成项目管理工程师 通过本考试的合格人员能够掌握系统集成项目管理的知识…

linux armhf ubuntu18.04搭建docker

1、开发环境 文件系统版本:ubuntu18.04 armhf 内核版本:linux4.1.15 docker版本:20.10.22 2、ubuntu上安装docker 1、卸载过往的版本 sudo apt-get remove docker docker-ce docker.io containerd runc2、重新更新、安装 sudo apt-get …