机器学习之 朴素贝叶斯、贝叶斯网络

目录

贝叶斯定理

朴素贝叶斯算法

高斯朴素贝叶斯

伯努利朴素贝叶斯

多项式朴素贝叶斯

贝叶斯网络

最简单的贝叶斯网络

全连接贝叶斯网络

一般化的贝叶斯网络


引子

参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机率?

贝叶斯定理

先验概率P(A):在不考虑其他的情况下,A事件发生的概率。

条件概率P(B|A):A事件发生的情况下,B事件发生的概率。

后验概率P(A|B):在B事件发生之后,对A事件发生的概率的重新评估。

                                                      P(A|B)=\frac{P(AB)}{P(B)}

全概率:如果A和A’ 构成样本空间的一个划分,那么事件B的概率为A和A’ 的概率分别乘以B对这两个事件的概率之和。

                                                      \begin{aligned}P(B)&=P(A)\times P(B|A)+P(A')\times P(B|A') \\P(B)&=\sum_{i=1}^nP(A_i)\times P(B|A_i)\end{aligned}

基于条件概率的贝叶斯定律数学公式:

                                                      \begin{aligned}P(A|B)&=\frac{P(A)\times P(B|A)}{P(B)} \\&\frac{P(A)\times P(B|A)}{\sum_{i=1}^nP(B|A_i)\times P(A_i)}\end{aligned}

朴素贝叶斯算法

朴素贝叶斯(Naive Bayes, NB)是基于“特征之间是独立的”这一朴素假设,应用贝叶斯定理的监督学习算法。对应给定的样本X的特征向量x_1, x_2,\dots, x_m,该样本X的类别y的概率可以由贝叶斯公式得到:

                          P(y|x_1, x_2, \dots, x_m)=\frac{P(y)P(x_1, x_2, \dots, x_m|y)}{P(x_1, x_2, \dots, x_m)}
算法推导

特征属性之间是独立的,所以

                                      P(x_i|y,x_1, x_2, ..., x_{i-1},...,x_{i+1},x_m)=p(x_i|y)

公式优化得到:

                                      P(y|x_1, x_2, \dots, x_m)=\frac{P(y)P(x_1, x_2, \dots, x_m|y)}{P(x_1, x_2, \dots, x_m)}=\frac{p(y)\prod_{i=1}^{m} p(x_i|y)}{P(x_1, x_2, \dots, x_m)}

在给定样本的条件下,P(x_1, x_2, \dots, x_m)是常数,可以省略,得到:

                                      P(y|x_1, x_2, \dots, x_m)\propto p(y)\prod_{i=1}^{m} p(x_i|y)

从而得到

                                      \hat{y}= \arg \max (p(y)\prod_{i=1}^{m} p(x_i|y))

朴素贝叶斯算法流程:

  • 设 x=\{a_1, a_2, \dots, a_m\} 为待分类项,其中a为x的一个特征属性
  • 类别集合为C=\{y_1, y_2, \dots, y_n\}
  • 分别用贝叶斯公式计算P(y_1|x), P(y_2|x), \dots, P(y_n|x)的值,、
  • 如果P(y_k|x)=\max\{P(y_1|x), P(y_2|x), \dots, P(y_n|x)\},那么认为x为 y_k 类型

高斯朴素贝叶斯

Gaussian Naive Bayes是指当特征属性为连续值时,而且分布服从高斯分布,那么在计算P(x|y)的时候可以直接使用高斯分布的概率公式:

                                                                   \begin{aligned}g(x, \eta, \sigma)&=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\eta)^2}{2\sigma^2}} \\P(x_k|y_k)&=g(x_k, \eta_{y_k}, \sigma_{y_k})\end{aligned}

因此只需要计算出各个类别中此特征项划分的各个均值和标准差。

伯努利朴素贝叶斯

Bernoulli Naive Bayes是指当特征属性为连续值时,而且分布服从伯努利分布,那么在计算P(x|y)的时候可以直接使用伯努利分布的概率公式:

                                                        P(x_k|y)=P(1|y)x_k+(1-P(1|y))(1-x_k)

伯努利分布是一种离散分布,只有两种可能的结果。1表示成功,出现的概率为p。0表示失败,出现的概率为q=1-p。其中均值为E(x)=p,方差为Var(X)=p(1-p)。

多项式朴素贝叶斯

Multinomial Naive Bayes是指当特征属性服从多项分布,从而,对于每个类别y,参数为  \theta _y=(\theta_{y_1}, \theta_{y_2}, \dots, \theta_{y_n}) 其中n为特征属性数目,那么 P(x_i|y) 的概率为 \theta _{y_i} 

                                                                              \begin{aligned}\theta _{y_i}&=\frac {N_{y_i}+\alpha}{N_y+\alpha\times n} \\N_{y_i}&=\sum_{x\in T}x_i \\N_y&=\sum_{i=1}^{|T|}N_{y_i}\end{aligned}

贝叶斯网络

把某个研究系统中涉及到的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。

贝叶斯网络(Bayesian Network),又称有向无环图模型(directed acyclic graphical model,DAG),是一种概率图模型,根据概率图的拓扑结构,考察一组随机变量 \{X_1, X_2, \dots, X_n\} 及其N组条件概率分布(Conditional Probabililty Distributions,CPD)的性质。

当多个特征属性之间存在着某种相关关系的时候,使用朴素贝叶斯算法就没法解决这类问题,那么贝叶斯网络就是解决这类应用场景的一个非常好的算法。

一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,可以是可观察到的变量,或隐变量、未知参数等等。连接两个节点之间的箭头代表两个随机变量之间的因果关系(也就是这两个随机变量之间非条件独立),如果两个节点间以一个单箭头连接在一起,表示其中一个节点是“因”,另外一个是“果”,从而两节点之间就会产生一个条件概率值。每个节点在给定其直接前驱的时候,条件独立于其后继。
贝叶斯网络的关键方法是图模型,构建一个图模型我们需要把具有因果联系的各个变量用箭头连在一起。贝叶斯网络的有向无环图中的节点表示随机变量。连接两个节点的箭头代表此两个随机变量是具有因果关系的。贝叶斯网络是模拟人的认知思维推理模式的,用一组条件概率以及有向无环图对不确定性因果推理关系建模。

最简单的贝叶斯网络

                                                                               P(a, b, c)=P(c|a, b)P(b|a)P(a)

全连接贝叶斯网络

每一对节点之间都有边连接

                                                            \begin{aligned}P(x_1, x_2, \dots, x_n)&=P(x_n|x_1, x_2, \dots, x_{n-1})\dots P(x_2|x_1)P(x_1) \\P(x_1, x_2, \dots, x_n)&=\prod_{i=2}^nP(x_i|x_1, x_2, \dots, x_{i-1})\times P(x_1)\end{aligned}

一般化的贝叶斯网络

x_1, x_2, x_3独立 x_6​ 和 x_7在给定条件下独立 x_1, x_2, x_3\dots x_7 的联合分布为:

                              p(x_1, x_2, x_3, x_4, x_5, x_6, x_7)=p(x_1)p(x_2)p(x_3)p(x_4|x_1, x_2, x_3)p(x_5|x_1, x_3)p(x_6|x_4)p(x_7|x_4, x_5)

 案例

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

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

相关文章

attention机制_简析Attention机制—优缺点,实现,应用

什么是Attention机制?Attention机制的本质来自于人类视觉注意力机制。人们在看东西的时候一般不会从到头看到尾全部都看,往往只会根据需求观察注意特定的一部分。简单来说,就是一种权重参数的分配机制,目标是协助模型捕捉重要信息…

pycharm Debug问题

pycharm Debug问题 参考链接:https://blog.csdn.net/weixin_43472408/article/details/85072640 Debug的调试方式如下所示: 1.show execution point (F10) 显示当前所有断点 2.step over(F8) 单步调试。 若函数A内存在子函数a时,不会进入子函数a内执…

php执行npm命令_npm系列之命令执行

当我想使用vue的脚手架来创建一个项目的时候,我应该怎么做?执行命令 npm install -g vue/cli 全局安装,之后就可以在控制台中使用vue create programName 来创建一个项目。为什么可以直接使用vue命令?这类支持命令的依赖会在项目中…

模拟产品展示 Flash无法展示的追踪过程

鼠标滑过小图时,左侧前四张大图可以,但是最后那张大图无法展示: falsh产品展示需要通过参数传递,把关联产品id的图片get出来,如: http://192.168.8.166:90/category/prod_img.aspx?prodid101 结果&#xf…

c语言贪吃蛇最简单代码_C语言指针,这可能是史上最干最全的讲解啦(附代码)!!!...

点击上方“大鱼机器人”,选择“置顶/星标公众号”福利干货,第一时间送达!指针对于C来说太重要。然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识。所…

SpringSecurity深度解析与实践(3)

这里写自定义目录标题 引言SpringSecurity之授权授权介绍java权限集成 登录失败三次用户上锁 引言 SpringSecurity深度解析与实践(2)的网址 SpringSecurity之授权 授权介绍 Spring Security 中的授权分为两种类型: 基于角色的授权&#…

机器学习之单标签多分类及多标签多分类

单标签二分类算法 Logistic算法 单标签多分类算法 Softmax算法 One-Versus-One(ovo):一对一 One-Versus-All / One-Versus-the-Rest(ova/ovr): 一对多 ovo和ovr的区别 Error Correcting Output code…

cas单点登录-jdbc认证(三)

前言 本节的内容为JDBC认证,查找数据库进行验证,其中包括: 密码加密策略(无密码,简单加密,加盐处理)认证策略(jdbc)一、业务需求 不同的公司,需求业务需求或者…

mybatis foreach map_重学Mybatis(六)-------输入映射(含面试题)

博主将会针对Java面试题写一组文章,包括J2ee,SQL,主流Web框架,中间件等面试过程中面试官经常问的问题,欢迎大家关注。一起学习,一起成长,文章底部有面试题。入参映射关键字说明图中paramenterTy…

蒋涛作序盛赞Leo新作为“程序员职场实用百科全书”——《程序员羊皮卷》连载(1)

《程序员羊皮卷》当当购买地址:http://product.dangdang.com/product.aspx?product_id20691986 互动购买地址:http://www.china-pub.com/196049 程序员行业从外面看起来有很多绚丽的光环,这里有无数以程序致富的天才,世界首富比…

matlab ones函数_Matlab中相见恨晚的命令(持续更新)

知乎上有个“有哪些让人相见恨晚的Matlab命令”的话题,很多答主提供的命令确实很实用,为了更方便大家的学习,我就知乎上的答案和我自己想到的都综合整理成了一篇文章,把我觉得很实用的指令整理出来。知乎原答案链接dbstop if erro…

机器学习之特征工程

特征工程-概念 特征工程是一个面向十分广的概念,只要是在处理数据就可以认为是在做特征工程。个人理解,真正意义上的特征工程还是数据降维和数据升维的过程。 而前期对数据的处理过程: 需要哪些数据?数据如何存储?数…

ArcGIS AO开发高亮显示某些要素

参考代码1 ifeaturecursor pcur ifeatureclass.search(iqueryfilter pfilter); pfilter.whereclause strAddress; //输入查询条件,也就是你寸地址的字段名didian ifeature pfeat pcur.nextfeature();// 如果pCur多个要素,则可以考虑将其合并并一起高亮…

du -sh 如何找到最大的文件夹_小白必看!手把手教你如何在linux上安装redis数据库...

首先我们要清楚redis是什么?redis是一种非关系型数据库,它与MySQL的这种关系型数据库不同,MySQL是将数据存储在磁盘中,而redis是储存在内存中。一般很多公司都是使用MySQLredis两种数据存储方式,这样可以提高性能&…

机器学习之线性回归 损失函数、代价函数、目标函数

损失函数(Loss Function)定义在单个样本上,算的是一个样本的误差。比如: 其中0-1损失函数: 感知器损失函数: 平方和损失函数: 绝对损失函数: 对数损失函数: 代价函数(Cos…

git 远程仓库管理 分支创建、管理、查看、切换

作用: 区分生产环境代码以及开发环境代码研究新的功能或者攻关难题解决线上bug 特点: 项目开发中公用分支包括master、dev分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支分支dev是用于开发的分支&#…

Hadoop Hive概念学习系列之hive的数据压缩(七)

Hive文件存储格式包括以下几类: 1、TEXTFILE 2、SEQUENCEFILE 3、RCFILE 4、ORCFILE 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。 SEQUENCEFILE,RCFILE,O…

java 加锁_Java并发之synchronized深入

一句话总结synchronized:JVM会自动通过使用monitor来加锁和解锁,保证了同时只有一个线程可以执行指定代码,从而保证了线程安全,同时具有可重入和不可中断的性质。一.synchronized的作用使用synchronized修饰方法或者代码块时&…

激活函数之 Sigmoid、tanh、ReLU、ReLU变形和Maxout

Sigmoid函数 Sigmoid函数计算公式 sigmoid:x取值范围(-∞,∞),值域是(0, 1)。 sigmoid函数求导 这是sigmoid函数的一个重要性质。 图像 代码 # -*- coding: utf-8 -*- """ author: tom """import numpy im…

Python查看、修改pip install 默认使用的pip库

一、更改 Python 的 pip install 默认使用的pip库 【方法】只需要将对应python脚本的路径添加到系统环境变量Path中较前的位置即可,这样就可以获得优先级。 1、打开终端,可以通过指令 pip show pip 查看默认使用的pip包: 2、现在&#xff…