机器学习之朴素贝叶斯分类
创始人
2024-04-08 01:33:20
0

文章目录

  • 朴素贝叶斯
    • 例题
    • 核心代码实现
  • 参考

朴素贝叶斯

在这里插入图片描述
基于朴素贝叶斯公式来估计后验概率P(c | x)的主要困难在于类条件概率P(x | c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。因此,朴素贝叶斯就是拥有一个朴素的条件:“属性条件独立性假设”:对于已知类别,假设所有属性相互独立,也就是说假设每个属性独立地对分类结果发生影响。
因此可以重写为:
在这里插入图片描述
其中d为属性数目,xix在第i个属性上地取值。

由于对所有类别来说P(x)相同,因此基于上式朴素贝叶斯分类器可以写成:

在这里插入图片描述

其实也是很好理解的,就比如一组训练数据,我们先计算出好瓜并且色泽青绿的概率、好瓜并且根蒂蜷缩的概率、坏瓜并且色泽青绿的概率…根据已有的数据,我们能够得到一组概率值,那么基于此,我们其实就已经得到了朴素贝叶斯分类器了,因为当我们得到一组新的测试数据的时候,我们只需要看数据色泽、根蒂等特征是符合好瓜里的概率大还是坏瓜里的概率大就能够做出判断了。

计算的具体方式如下:
在这里插入图片描述

例题

举个例子:
在这里插入图片描述

在这里插入图片描述
首先估计类先验概率P©:
在这里插入图片描述
然后为每个属性估计条件概率P(xi| c):

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

看到这里可以回味一下,朴素贝叶斯其实思路很简单,就是类别中哪些特征出现的概率大,那么当测试数据属于这些特征时,计算出是这类的概率就会大了,就达到分类的效果了。

但是在这里单纯这样计算会存在一个bug,比如一个瓜很多条件都符合好瓜的特征,但是其中有一个特征因为训练集太小而并没有在好瓜中出现,那么其无论多像好瓜,都会被认为好瓜的概率为0,因为0乘任何数都为0

在这里插入图片描述

为此,我们可以采用拉普拉斯修正:
在这里插入图片描述
强调一下,Ni为表示第i个属性的取值数

那么上例可以进行如下修正:

在这里插入图片描述
在这里插入图片描述

核心代码实现

使用的西瓜数据集3.0
首先根据训练集计算出各类标签的各种特征的先验概率存储到一个概率字典中,然后就能够根据输入的数据得到类别概率从而获得最终的分类结果。
首先定义一个朴素贝叶斯类
定义我们需要的变量
在这里插入图片描述
初始化概率字典:
在这里插入图片描述

初始化后即可进行训练,训练方法定义如下:
在这里插入图片描述
首先需要计算在相同标签下进行不同特征的先验概率的字典并保存下来。
上面主要是计算离散特征的。
在这里插入图片描述
接下来就是计算连续型特征。
在这里插入图片描述
定义概率密度函数,为评估分类做准备。
在这里插入图片描述
用于评估模型,如果有标签,那么就输出对应的准确率
在这里插入图片描述
main函数入口,以及运行结果展示。
其中测试的样例就是上面提到的例题里的测试样例,分类器判别为好瓜,和例题答案一致。

我们可以接着看一下构建的概率字典:
在这里插入图片描述
可以看到其中的结果是经过拉普拉斯平滑过后的结果,与例题中的同样对应。

数据集+可运行代码:
机器学习之朴素贝叶斯分类+拉普拉斯平滑

参考

机器学习——周志华

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...