当前位置: 首页 > news >正文

机器学习——朴素贝叶斯

目录

一、贝叶斯方法

背景知识

 贝叶斯公式

二、朴素贝叶斯原理

判别模型和生成模型

 1.朴素贝叶斯法是典型的生成学习方法

2.朴素贝叶斯法的基本假设是条件独立性

3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测

用于文本分类的朴素贝叶斯模型:

三、朴素贝叶斯案例

四、朴素贝叶斯代码实现


一、贝叶斯方法

背景知识

  • 贝叶斯分类:贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
  • 先验概率:根据以往经验和分析得到的概率。我们用P(Y)来代表在没有训练数据前假设Y拥有的初始概率。
  • 后验概率:根据已经发生的事件来分析得到的概率。以P(Y|X)代表假设X 成立的情下观察到Y数据的概率,因为它反映了在看到训练数据X后Y成立的置信度。
  • 联合概率:联合概率是指在多元的概率分布中多个随机变量分别满足各自条件的概率。X与Y的联合概率表示为P(X,Y)、 P(XY) 或P(X∩Y) 。假设X和Y都服从正态分布,那么P(X<5,Y<0)就是一个联合概率,表示 X<5,Y<0两个条件同时成立的概率。表示两个事件共同发生的概率。

 贝叶斯公式

 朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布 P(X,Y),然后求得后验概率分布P(Y|X)。

学习联合概率的方法:利用训练数据学习P(X|Y)的估计,与先验的P(Y)相乘,得到    P(X,Y)=P(X|Y) P(Y)

二、朴素贝叶斯原理

判别模型和生成模型

监督学习方法又分 生成方法(Generative approach)和判别方法(Discriminative approach)

所学到的模型分别称为 生成模型(Generative Model)和判别模型(Discriminative Model)。

 1.朴素贝叶斯法是典型的生成学习方法

生成方法由训练数据学习联合概率分布 P(X,Y),然后求得后验概率分布P(Y|X)。具体来说,利用训练数据学习P(X|Y)和P(Y)的估计,得到联合概率分布:

概率估计方法可以是极大似然估计或贝叶斯估计。

2.朴素贝叶斯法的基本假设是条件独立性

c_k代表类别,k代表类别序号。

这是一个较强的假设。由于这一假设,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。

3.朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测

我们要求的是P(Y|X),根据生成模型定义我们可以求P(X,Y)和P(Y)。 这个称作朴素贝叶斯假设条件独立,形式化表示为:(给定Z的情况下,X、Y条件独立)

也可以表示为:

用于文本分类的朴素贝叶斯模型:

首先随机选定了邮件的类型y(垃圾邮件或普通邮件),然后一个人翻遍词典的所有词,依照概率p(x^(i)|y)随机决定一个词是否出现,出现标示为1,否则标示为0 。假设有50000个单词,那么这封邮件的概率可以表示为:

联合概率将输入x分到联合概率最大的类 y ̂ :

三、朴素贝叶斯案例

假设我们正在构建一个分类器,该分类器说明文本是否与运动(Sports)有关。我们的训练数据有5句话:

我们想要计算句子“A very close game”是 Sports 的概率以及它不是 Sports 的概率。

P( Sports | a very close game ) 即这个句子的类别是Sports的概率 

特征:单词的频率

已知贝叶斯定理,则:

由于我们只是试图找出哪个类别有更大的概率,可以舍弃除数,只是比较 我们假设一个句子中的每个单词都与其他单词无关。

计算每个类别的先验概率:

对于训练集中的给定句子,P(Sports )的概率为⅗。P(Not Sports )是⅖。 

然后,再计算P(game│Sports)就是“game”有多少次出现在Sports的样本,然后除以sports为标签的文本的单词总数(3+3+5=11)。

因此,P(game│Sports)=2/11。

“close”不会出现在任何sports样本中!那就是说P(close│Sports)=0。

通过使用一种称为拉普拉斯平滑的方法:我们为每个计数加1,因此它永远不会为零。为了平衡这一点,我们将可能单词的数量添加到除数中,因此计算结果永远不会大于1(且保证了最终和为1的概率性质)。

在这里的情况下,可能单词是['a', 'great', 'very', 'over', 'it', 'but', 'game', 'election', 'clean', 'close', 'the', 'was', 'forgettable', 'match']。

由于可能的单词数是14,因此应用平滑处理可以得到 P( game | sports )=(2+1)/(11+14)

拉普拉斯平滑是一种用于平滑分类数据的技术。引入拉普拉斯平滑法来解决零概率问题,通过应用此方法,先验概率和条件概率可以写为

其中K表示类别数量,A表示a_j中不同值的数量,通常λ=1 加入拉普拉斯平滑之后,避免了出现概率为0的情况,又保证了每个值都在0到1的范围内,又保证了最终和为1的概率性质。

 

四、朴素贝叶斯代码实现

最常用的GaussianNB是高斯贝叶斯分类器。它假设特征的条件概率分布满足高斯分布:

 

 其他贝叶斯分类器:

  1. MultinomialNB是多项式贝叶斯分类器,它假设特征的条件概率分布满足多项式分布;
  2. BernoulliNB是伯努利贝叶斯分类器。它假设特征的条件概率分布满足二项分布。

 GaussianNB是高斯朴素贝叶斯分类器的scikit-learn实现。

GaussianNB是高斯朴素贝叶斯分类器的Numpy实现。 

相关文章:

  • 利用 Google Artifact Repository 构建docker 镜像仓库
  • C语言左移与右移学习
  • 由浅入深学习统计学 - 常用统计图形学习
  • Stream流的groupingBy
  • 100天精通风控建模(原理+Python实现)——第3天:风控建模中如何处理缺失值?
  • 如何有效的保护Windows登录 安当加密
  • Googletest(Gtest)使用case指南
  • Leetcode153. Find Minimum in Rotated Sorted Array
  • C语言进阶
  • Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper<T>, T> 学习总结
  • 链表的实现(文末附完整代码)
  • shell之route命令介绍
  • Apipost-Helper:IDEA中的类postman工具
  • 数据结构—内部排序(上)
  • 为 Ubuntu 虚拟机构建 SSH 服务器
  • 时间复杂度分析经典问题——最大子序列和
  • 30天自制操作系统-2
  • es6--symbol
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Flannel解读
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Object.assign方法不能实现深复制
  • springboot_database项目介绍
  • storm drpc实例
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 和 || 运算
  • 深入浏览器事件循环的本质
  • 怎么将电脑中的声音录制成WAV格式
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #Lua:Lua调用C++生成的DLL库
  • (1)(1.9) MSP (version 4.2)
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (libusb) usb口自动刷新
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (五)c52学习之旅-静态数码管
  • (五)Python 垃圾回收机制
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET上SQLite的连接
  • /etc/fstab和/etc/mtab的区别
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [20171113]修改表结构删除列相关问题4.txt
  • [AIGC] Spring Interceptor 拦截器详解
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [Assignment] C++1
  • [autojs]逍遥模拟器和vscode对接
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷
  • [gdc19]《战神4》中的全局光照技术
  • [GDMEC-无人机遥感研究小组]无人机遥感小组-000-数据集制备
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [JS7] 显示从0到99的100个数字