简述朴素贝叶斯算法的基本原理_贝叶斯分析例题

简述朴素贝叶斯算法的基本原理_贝叶斯分析例题朴素贝叶斯算法(NaiveBayesianalgorithm)是应用最为广泛的分类算法之一,在垃圾邮件分类等场景展露出了非常优秀的性能。朴素贝叶斯公式来历朴素贝叶斯,名字中的朴素二字就代表着该算法对概率事件做了很大的简化,简化内容就是各个要素之间是相互独立的。比如今天刮风和气温低,两个要素导致了不下雨的结果。实际上刮风可能导致气温低,而且刮风对于天晴的影响会更大,朴素贝叶斯认为刮风和气…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

朴素贝叶斯算法(Naive Bayesian algorithm) 是应用最为广泛的分类算法之一,在垃圾邮件分类等场景展露出了非常优秀的性能。

朴素贝叶斯公式来历

朴素贝叶斯,名字中的朴素二字就代表着该算法对概率事件做了很大的简化,简化内容就是各个要素之间是相互独立的。
比如今天刮风和气温低,两个要素导致了不下雨的结果。实际上刮风可能导致气温低,而且刮风对于天晴的影响会更大,朴素贝叶斯认为刮风和气温之间相互独立,且对于是否下雨这个结果的影响没有轻重之分。用公式来表示这种独立性就是:
在这里插入图片描述
在介绍朴素贝叶斯公式前,先介绍一下条件概率公式。条件概率表示在B已经发生的条件下,A发生概率。
在这里插入图片描述
朴素贝叶斯公式就是条件概率的变形。
假设已有数据为
在这里插入图片描述
其中x为属性值,y为分类结果,共有n个已有数据。每个x有多种属性,以第一组数据为例,上标表示第几个属性值,x的具体表示如下
在这里插入图片描述
假设y的可取值为(c1,c2,…,ck)
则贝叶斯公式表示为
在这里插入图片描述
由公式可以看出,贝叶斯公式就是条件概率的公式。贝叶斯公式的解释很简单:在已有数据的基础上,出现了一个新数据,只有X=(a1,a2,…,am),来预测y的取值。贝叶斯公式就是求在目前X发生的情况下,y取不同值的概率大小进行排序,取最大概率的y值。
其中X有多个属性,朴素贝叶斯假设各个属性之间是独立的,因此
在这里插入图片描述
因此朴素贝叶斯公式可以写成
在这里插入图片描述
此公式的含义就是在目前已知历史数据数据的前提下,出现了一个新的X,求在X已经发生的条件下,y取不同值的概率,然后取使得条件概率最大的y作为预测结果。也就是说寻找y的取值Cn,使得上式最大,用公式表示就是
在这里插入图片描述
这里可以看出,不论求y取任何值Ci的概率,分母都不变,为P(x=X),因此该公式可以简化为:(正因为将P(x=X)省略了,所以我就没有将P(x=X)写成全概率公式的样子)
在这里插入图片描述
其中P(y=Cn)是指y取Cn的值的数量占所有y值数量的百分比;P(xi=ai|y=Cn)表示在y取值为Cn的条件下,xi=ai的条件概率。公式表示如下:(I()函数表示当括号内的条件成立时,记为1。)
在这里插入图片描述
在这里插入图片描述
到这里,朴素贝叶斯的基础原理就完了。顺便提一下生成模型和判别模型吧。大家可以看到,朴素贝叶斯算法在进行判断时,每次都要用到历史数据,在求得概率分布的情况下再对新数据预测,这就是生成模型。什么是判别模型呢,简单的说就是像神经网络算法那种,训练完将各种权重保存起来,有了新数据直接使用权重带入进行计算,最后得出判别结果。这只是顺带提了一句,让读着有个大概的认识,语言并不是很严谨,如果读着想了解更多,请寻找相关的专业介绍生成和判别模型的文章。

举例1

这里使用了《统计学习方法-李航》里的例子。
历史数据为
在这里插入图片描述
x是二维向量,第一维度可取值(1,2,3),第二维度可取值(S,M,L),y可取值(-1,1)。目前有一个新数据x(2,S),使用朴素贝叶斯算法确定y的取值。
解:
目标是比较在数据x(2,S)下,不同y值的条件概率,也就是求P(y=1|x=(2,S))和P(y=-1|x=(2,S))的大小。
在这里插入图片描述
由此公式可知,分母相同,只需要对比分子的大小。
在这里插入图片描述
注意:
P(x1=2|y=1)=3/9数错了,不好意思。图片不方便改,望知悉。

在这里插入图片描述
所以y的取值是-1

原始朴素贝叶斯公式的问题

大家在解例子的时候有没有发现一个问题,假如

在这里插入图片描述
标红框的连乘中有一项为0,也就是说在y取值为Cn的条件下,ai的值没有出现过,所以P(x=X|y=Cn)=0,也就是说y取Cn的可能性为0,与实际不符。很明显这种情况产生了严重的偏差。
为了纠正这种情况产生的偏差,对等式右边的概率计算进行了改进

  1. 先验概率改进计算公式:
    在这里插入图片描述
    式中λ>=0,K是y可取值的总数。当λ=0时,和原来的公式一样,当λ=1时称为拉普拉斯平滑(这个名词的背后历史就不提了,λ尝取的值就是1)。
    不难看出有如下规律
    在这里插入图片描述
    说明Pλ也是一种概率分布,既解决了某些值概率可能为0的问题,又基本符合原来的概率分布。
    2. 条件概率改进计算公式
    在这里插入图片描述
    同样的,λ>=0,Sj表示x第j个维度可取值的总数。同样的对于Pλ(xj=aj|y=Cn)也是一种概率分布,近似代表着改进之前的概率分布。
    有了改进后的先验概率和条件概率的公式,便可以解决了单一条件概率为0时,判断不准确的问题。

举例2

对于例子1,使用拉普拉斯平滑后的概率计算公式来预测。我把题目复制一下,虽然看着累赘,省的回去一直翻着看。
历史数据为
在这里插入图片描述
x是二维向量,第一维度可取值(1,2,3),第二维度可取值(S,M,L),y可取值(-1,1)。目前有一个新数据x(2,S),使用朴素贝叶斯算法确定y的取值。
解:
在这里插入图片描述
在这里插入图片描述
因此可以看出y=-1的概率更大,因此预测结果为-1。这个结果与例子1的结果相同。
本文主要参考了《统计学习方法》这本书,只希望把学习结果能分享给对的人,总结的内容比较浅显简单。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215536.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • x86为什么不叫x32_华为鲲鹏cpu是x86架构吗

    x86为什么不叫x32_华为鲲鹏cpu是x86架构吗整理了下网上的资料,归类了下,大似表述是这样的:IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86。x86并不是指32位环境,而是指80×86架构,这个架构目前有32位,64位

    2022年8月1日
    5
  • idea 2021.9 激活码(JetBrains全家桶)

    (idea 2021.9 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
    79
  • Golang——uint32「建议收藏」

    Golang——uint32「建议收藏」leetcode:190、1911.uint(usigned)均是无符号整型,uint、uint64占用内存64位。2.int带符号整型,占64位题目其实给定的是十进制varnumuint32=43261596,计算机内存以32位补码形式存储此数,题目说颠倒此数的二进制位,十进制变为2进制:除2取余。3.取10进制数据最低位:n%10,n=n/10;num:=9//intfor…{…}//会得到9、84.取(10进制的)2进制格式数据最低位:n%2,

    2025年9月16日
    4
  • .h5文件的读取_python读写h5文件

    .h5文件的读取_python读写h5文件**关于hdf5文件**HDF(HierarchicalDataFormat)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件。详见其官方介绍:https://support.hdfgroup.org/HDF5/。Python中有一系列的工具可以操作和使用HDF5数据,这里只介绍h5py。一个HDF5文件是存储两类对象的容器,这两类对象分别为:dataset…

    2022年9月9日
    2
  • 在WIN7系统的笔记本上建立WIFI热点「建议收藏」

    在WIN7系统的笔记本上建立WIFI热点

    2022年1月21日
    83
  • SpringBoot整合RabbitMQ之实战

    SpringBoot整合RabbitMQ之实战实战前言RabbitMQ作为目前应用相当广泛的消息中间件,在企业级应用、微服务应用中充当着重要的角色。特别是在一些典型的应用场景以及业务模块中具有重要的作用,比如业务服务模块解耦、异步通信、高并发限流、超时业务、数据延迟处理等。其中课程的学习链接地址:https://edu.csdn.net/course/detail/9314RabbitMQ官网拜读首先,让我们先拜读Ra…

    2022年5月14日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号