【机器学习笔记】4 朴素贝叶斯

贝叶斯方法

贝叶斯分类
贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
朴素贝叶斯分类是这一类算法中最简单的较为常见的算法。
先验概率
根据以往经验和分析得到的概率。我们用𝑃(𝑌)来代表在没有训练数据前假设𝑌拥有的初始概率。
后验概率
根据已经发生的事件来分析得到的概率。以𝑃(𝑌|𝑋)代表假设𝑋成立的情下观察到𝑌数据的概率,因为它反映了在看到训练数据𝑋后𝑌成立的置信度。
联合概率
是指在多元的概率分布中多个随机变量分别满足各自条件的概率。𝑋与𝑌的联合概率表示为𝑃( 𝑋, 𝑌) 、 𝑃(𝑋𝑌) 或𝑃(𝑋∩𝑌) 。
假设𝑋和𝑌都服从正态分布,那么𝑃(𝑋 < 5, 𝑌 < 0)就是一个联合概率,表示 𝑋 < 5, 𝑌 < 0两个条件同时成立的概率。表示两个事件共同发生的概率。
贝叶斯公式
在这里插入图片描述
朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布 𝑃(𝑋, 𝑌),然后求得后验概率分布𝑃(𝑌|𝑋)。
具体来说,利用训练数据学习𝑃(𝑋|𝑌)和𝑃(𝑌)的估计,得到联合概率分布:𝑃(𝑋, 𝑌)=𝑃(𝑋|𝑌) 𝑃(𝑌)

朴素贝叶斯原理

监督学习方法又分生成方法(Generative approach)判别方法(Discriminative approach)
所学到的模型分别称为生成模型(Generative Model)判别模型(Discriminative Model)
在这里插入图片描述
朴素贝叶斯法是典型的生成学习方法
生成方法由训练数据学习联合概率分布 𝑃(𝑋, 𝑌),然后求得后验概率分布𝑃(𝑌|𝑋)。具体来说,利用训练数据学习𝑃(𝑋|𝑌)和𝑃(𝑌)的估计,得到联合概率分布:𝑃(𝑋, 𝑌)=𝑃(𝑌)𝑃(𝑋|𝑌).概率估计方法可以是极大似然估计或贝叶斯估计。

朴素贝叶斯法的基本假设是条件独立性
在这里插入图片描述
Ck代表类别,k代表类别个数。
这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。

朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测
我们要求的是𝑃(𝑌|𝑋),根据生成模型定义我们可以求𝑃(𝑋, 𝑌)和𝑃(𝑌)假设中的特征是条件独立的。这个称作朴素贝叶斯假设。 形式化表示为,(如果给定𝑍的情况下,𝑋和𝑌条件独立):𝑃(𝑋|𝑍) = 𝑃(𝑋|𝑌, 𝑍)。
也可以表示为:𝑃(𝑋, 𝑌|𝑍) = 𝑃(𝑋|𝑍)𝑃(𝑌|𝑍)

用于文本分类的朴素贝叶斯模型,这个模型称作多值伯努利事件模型。
在这个模型中,我们首先随机选定了邮件的类型𝑝(𝑦),然后一个人翻阅词典的所有词,随机决定一个词是否出现依照概率𝑝(𝑥(1)|𝑦),出现标示为1,否则标示为0 。假设有50000个单词,那么这封邮件的概率可以表示为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
朴素贝叶斯法对条件概率分布作了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。具体地,条件独立性假设是:
在这里插入图片描述
朴素贝叶斯法分类时,对给定的输入𝑥,通过学习到的模型计算
后验概率分布𝑃( 𝑌 =c𝑘| 𝑋 = 𝑥) ,将后验概率最大的类作为𝑥的类输
出。根据贝叶斯定理:
在这里插入图片描述
在这里插入图片描述

朴素贝叶斯案例

假设我们正在构建一个分类器,该分类器说明文本是否与运动(Sports)有关。我们的训练数据有5句话:
在这里插入图片描述
我们想要计算句子“A very close game”是 Sports 的概率以及它不是 Sports 的概率。
即𝑃( Sports | a very close game )这个句子的类别是Sports的概率
特征:单词的频率
在这里插入图片描述
我们假设一个句子中的每个单词都与其他单词无关。
在这里插入图片描述
计算每个类别的先验概率:对于训练集中的给定句子,𝑃 Sports 的概率为⅗。𝑃(Not Sports )是⅖。
然后,在计算𝑃( 𝑔𝑎𝑚𝑒|𝑆𝑝𝑜𝑟𝑡𝑠 )就是“game”有多少次出现在Sports的样本,然后除以sports为标签的文本的单词总数(3+3+5=11)。
因此,( 𝑔𝑎𝑚𝑒|𝑆𝑝𝑜𝑟𝑡𝑠 )=2/11
“close”不会出现在任何sports样本中!那就是说𝑃( 𝑐𝑙𝑜𝑠𝑒|𝑆𝑝𝑜𝑟𝑡𝑠) = 0。
通过使用一种称为拉普拉斯平滑的方法:我们为每个计数加1,因此它永远不会为零。为了平衡这一点,我们将可能单词的数量添加到除数中,因此计算结果永远不会大于1。
在这里插入图片描述
拉普拉斯平滑是一种用于平滑分类数据的技术。引入拉普拉斯平滑法来解决零概率问题,通过应用此方法,先验概率和条件概率可以写为
在这里插入图片描述
其中𝐾表示类别数量,𝐴表示𝑎𝑗中不同值的数量通常𝜆 = 1
加入拉普拉斯平滑之后,避免了出现概率为0的情况,又保证了每个值都在0到1的范围内,又保证了最终和为1的概率性质
在这里插入图片描述

朴素贝叶斯的代码实现

最常用的GaussianNB是高斯贝叶斯分类器。它假设特征的条件概率分布满足高斯分布:
在这里插入图片描述
在这里插入图片描述
其他贝叶斯分类器:
MultinomialNB是多项式贝叶斯分类器,它假设特征的条件概率分布满足多项式分布;
BernoulliNB是伯努利贝叶斯分类器。它假设特征的条件概率分布满足二项分布。

最常用的GaussianNB是高斯朴素贝叶斯分类器的scikit-learn实现。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vuex中mutations详解,与actions的区别

Vuex 的 Mutations 是用于改变 Vuex Store 中状态的一种方式。它是一个同步的操作&#xff0c;用于直接修改 Store 中的状态。 Mutations 有以下特点&#xff1a; 同步操作&#xff1a;Mutations 是同步的&#xff0c;这意味着它们会立即执行并修改状态。原子性&#xff1a;…

[嵌入式系统-8]:逻辑地址、虚拟地址、物理地址以及地址映射

目录 前言&#xff1a; 一、三种内存地址 1.1 逻辑地址&#xff1a;相对地址 1.1.1 什么是逻辑地址 1.1.2 逻辑地址示例 1.2 虚拟地址 1.2.1 什么是虚拟地址 1.2.2 虚拟地址实例 1.3 物理地址 1.3.1 什么是物理地址 1.3.2 物理地址示例 1.3.3 什么情况适用物理地址…

Python面向对象学习小记——类对象

一个对象可以抽象出一个类&#xff0c;一个类可以实例化一个对象。 【属性是静态的&#xff0c;方法是动态的。】

各指针含义区分

一、char *a P109: (1)(变量)指针变量&#xff1a;指针变量&#xff0c;即指针的定义&#xff1a;用来存放指针的变量。指向的是变量&#xff0c;且可以改变其指向的地址。P104 char *a (2)(变量)指针常量&#xff1a;指针常量&#xff0c;指向的是变量首字节的地址&#xff…

六、Datax通过json字符串运行

Datax通过json字符串运行 一、场景二、代码实现 一、场景 制作一个web应用&#xff0c;在页面上配置一个json字符串&#xff0c;保存在数据库里面。在执行json的时候&#xff0c;动态在本地创建一个json文件后执行&#xff0c;并识别是否成功&#xff0c;将执行过程保存在数据…

[字符串] Manacher算法

回文串性质 Manacher算法 介绍 以o(n)时间复杂度&#xff0c;让字符串中每个位置作为回文中心来计算回文半径的算法&#xff0c;所以回文半径和回文中心是实时更新的 如何以转换后的回文半径来计算回文串长度 为什么除2后向下取整&#xff0c;因为我们要计算蓝色方块的个数&a…

山西电力市场日前价格预测【2024-02-12】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-02-12&#xff09;山西电力市场全天平均日前电价为127.42元/MWh。其中&#xff0c;最高日前电价为369.24元/MWh&#xff0c;预计出现在18:45。最低日前电价为0.00元/MWh&#xff0c;预计出…

springsecurity6使用

spring security 中的类 &#xff1a; AuthenticationManager : 实现类&#xff1a;ProviderManager 管理很多的 provider &#xff0c;&#xff0c;&#xff0c; 经常使用的&#xff0c;DaoAuthenticationProvider , 这个要设置一个 UserDetailService , 查找数据库&#xff…

在python中JSON数据格式的使用

什么是JSON&#xff1f; JSON是一种数据格式&#xff0c;由美国程序设计师DouglasCrockford创建的&#xff0c;JSON全名是JavaScript Object Notation,由JSON英文全文字义我们可以推敲JSON的缘由&#xff0c;最初是为JavaScript开发的。这种数据格式由于简单好用被大量应用在We…

数据分析案例-基于亚马逊智能产品评论的探索性数据分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

PHP脉聊交友系统网站源码,可通过广告变现社交在线聊天交友即时通讯APP源码,附带视频搭建教程

探索全新社交体验&#xff1a;一站式PHP交友网站解决方案 &#x1f310; 全球化交友&#xff0c;无界沟通 在数字化的浪潮下&#xff0c;社交已不再受地域限制。我们的PHP交友网站不仅支持多国语言&#xff0c;还配备了即时翻译功能&#xff0c;让您轻松跨越语言障碍&#xff…

JVM(1)基础篇

1 初始JVM 1.1 什么是JVM JVM 全称是 Java Virtual Machine&#xff0c;中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 Java源代码执行流程如下&#xff1a; 分为三个步骤&#xff1a; 编写Java源代码文件。 使用…