贝叶斯分类器与贝叶斯网络
贝叶斯分类器是一种基于贝叶斯公式的分类器,是一种基于统计的分类器,它计算在某一特征向量的前提下,各种分类可能出现的概率.把概率最大的那个类当作最终的分类结果.贝叶斯分类器分为2种:朴素贝叶斯分类器,贝叶斯网络.
这篇博克简单介绍下这两种分类器原理.
朴素贝叶斯分类器
贝叶斯公式如下
其中X代表特征向量, C代表分类.我们的目标就是找出使得这个后验概率最大的那个类.
其中需要注意的是X中的各个特征分量是分布独立的.这样就有:
这些概率都可以从样本中很快统计出来,从而很容易计算出结果。
朴素贝叶斯分类器一个很经典的应用就是用来进行垃圾邮件过滤。每一封邮件都包含了一系列特征词,这些特征词就构成特征向量X.我们只需要计算在该特征向量出现的前提下此邮件为垃圾邮件的概率就可以进行判别了。
实际上算法的基础就是词频的计算,这个可是mapreduce这种框架的强项啊。两轮MR之后就可以得出结果。
贝叶斯网络
朴素贝叶斯分类器工作必须有一个前提假设,特征属性之间的关系必须是独立的,只有在这个假设前提下,朴素贝叶斯分类器才能工作的比较好。但是在现实世界中,这种假设并不成立。所以另一种算法就被提出-贝叶斯网络。
贝叶斯网络的定义并不复杂,一个贝叶斯网络就是一个有向无环图,图中的每一个节点代表着一个随机变量(可以理解为样本的特征属性),对应着每一个节点贝叶斯网络还有一张条件概率表(CPT)。CPT表明了子节点对父节点的条件概率,也就是。对于没有父子关系的节点们,他们之间是相互独立的。所以就有:
这个需要注意的是,如果求得是部分变量的联合概率分布,那么就必须基于上述公式进行一个全概率公式的变换,例子:
如果所有的属性的父节点都是X1(当然除了自己),那么上述公式就有:
这么说可能比较晦涩,举个例子画个图:
贝叶斯网络中有些变量(节点)是可以被直接观测得到的,这些变量是可以在数据集中体现出来的,这些变量可以称之为观察变量.而有些变量是无法直接观测到,无法直接在数据集中体现的,这些变量称之为隐性变量.这个应该很好理解,举个例子,假如在医院的所有的医疗记录中,只存在三个变量,高血压,肥胖,急性肠炎.肥胖可以导致高血压,它是高血压的父节点,这很明显,但我们不能只考虑这三个变量构成的网络.因为急性肠炎可能导致抵抗力下降,抵抗力下降也会导致高血压.(好牵强的例子,大家忍忍吧,实在是医学知识匮乏).尽管医院的记录中并不包含任何营养不良的医疗记录,但是它确实是高血压的一个可能原因,我们需要把它作为一个变量在贝叶斯网络中考虑进来,这样的变量就是隐藏变量,我觉叫间接变量可能更好。
1)贝叶斯网络推理
贝叶斯网络一旦购建好,我们就可以计算在给定一些变量的情况下,查询处任意变量组合的概率,这被称之为贝叶斯网络推理,也是贝叶斯网络的应用之所在.贝叶斯网络推理算法现在已知是一个N-P问题.下面就简单分析一下如何来推理[例子来源于文献4]
上图是一个简单的贝叶斯网路,h1,h2隐藏变量,o1,o2是可观测变量,所有这些变量要么是0,要么是1。我们推理的目的就是在给定其它变量的观测值时推理出某些变量目标(也许是隐藏变量)的值的概率分布。本例中,就有
根据最后的推导结果,就可以根据CPT得出最后的概率分布.
注意P(o1,o2)的推导,全概率公式.
当然这是最直接的算法,算法复杂度较高,现在比较常用的实际上是连接树算法,接口算法等等,有很多这方面的论文讨论这个.
2)贝叶斯网络的构造
上面谈到了贝叶斯网络的使用,这里再讨论一下贝叶斯网络的构造.贝叶斯网络的构造需要构造两个方面,一个是拓扑结构,另外一个是CPT.
拓扑结构的构造有两种方法:
第一借助于领域专家帮忙构造,由该领域专家来设计网络拓扑结构.
第二通过算法来构造,比如基于结构空间的贪婪搜索等等.有兴趣请参考相关论文
CPT的构造需要通过样本学习来构造,下面就简单介绍一下梯度下降算法构造CPT.
先有下面的定义:
代表CPT中的一个项目,表示的概率是在给定它的父亲们等于它的第K个可能的值(可能是一种组合)时, 取它的第j个值的概率.举个例子来说,对于上面的例图Fingure 6.11,对于LC的CPT,如果LungerCancer是第三个特征属性,CPT就有下面的对应:
为了构造CPT,我们需要有样本集D,包含了m个样本,每个样本完备得包含了所有特征属性.
我们的目的就是最大化,也就是最大化在目前CPT的条件概率下,出现当前D样本分布的概率.那么我们的目标就变成了求函数的最优解问题.于是考虑使用梯度下降法(也就是所谓的爬山).我们想象一个等高图模型,我们为了求该登高模型的最大值,我们该怎么做呢?一个很自然的想法就是我们先随便在山上找一个点,然后找到点的梯度,沿着梯度方向我们前进一个固定步长,然后继续求梯度,继续再沿着梯度方向前进一个固定步长,然后一直循环.那么什么时候结束呢?两种情况下:
第一到了某一点梯度发现已经为0.那就证明该点已经到了最高值
第二在沿着该点的梯度方向前进了步长之后,发现高度没有发生明显的变化,这个变化很小,小于一个既定的阈值.那么我们也认为找到了局部最高值.
这种方法可以求到局部最优解,但无法确保得到全局最优解。
把这种方法用到求的局部最优解上,就有如下算法:
第一 随机CPT表中的条目
第二 求在w初始值时的梯度,由于D是一个数据样本集和,所以该梯度可以分解为每一个样本在w初始值时的梯度之和.经过一系列概率公式变化(参见文献二),就可以得到如下公式:
所以样本的梯度值就很容易求出来了,注意上面公式的最后结果分子不是1,就是0.因为针对某一个样本,变量和其父亲出现某种分布的概率要么是0,要么是100%.有了上述公式,我们针对贝叶斯网络的所有CPT条目都调用上述公式,就可以得到每个条目在某个样本下的梯度.对样本集合中的每个样本我们都经过上面的计算,样本集合D中每个CPT条目的梯度是所有样本梯度的和.把所有条目的梯度组合在一起,就是整个的梯度.注意这里的的梯度不是一个值,而是一个所有CPT条目的分布.
第三 由于需要有一定的约束条件
所以CPT条目的分布,也就是的分布需要投射到一个平面上,因此需要一个平面投射转化成
第四 根据,按照一定的步长来更新所有的
第五 继续迭代至 =0或小于固定阈值
具体算法参加下图
贝叶斯网络的一个应用场景就是专家故障诊断系统,用来评估在故障出现的情况下各种故障原因的概率分布.
参考文献:
[1] 点到平面的投影算法http://blog.csdn.net/coollen_mmx/article/details/4200489
[2]Local learning in probabilistic networks with hidden variables
[3]http://www.cnblogs.com/leoo2sk/archive/2010/09/18/bayes-network.html
[4]离散动态贝叶斯网络的直接计算推理算法
[5]Adaptive Probabilistic Networks with Hidden Variables
贝叶斯分类器与贝叶斯网络相关推荐
- 从朴素贝叶斯分类器到贝叶斯网络(下)
从朴素贝叶斯分类器到贝叶斯网络(下) 2016年01月04日 00:49:20 阅读数:11673 书接上文 :从朴素贝叶斯分类器到贝叶斯网络(上) 三.贝叶斯网络 贝叶斯网络(Bayesian Ne ...
- 机器学习基础(六):贝叶斯分类(贝叶斯决策论、朴素/半朴素贝叶斯分类器、贝叶斯网、EM算法)
6.贝叶斯分类 6.1贝叶斯决策论Bayesian decision theory 概率框架下实施决策的基本方法. 对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和 ...
- 科普篇:贝叶斯网络中的置信度传播
https://www.toutiao.com/a6695926161593074183/ 在本文中,我将使用置信度传播算法(BP)和一些示例数据.开始本文之前我默认您是了解贝叶斯网络的(BN),这篇 ...
- 朴素贝叶斯与贝叶斯网络
朴素贝叶斯与贝叶斯网络 标签(空格分隔): 机器学习 朴素贝叶斯 朴素贝叶斯朴素在哪里呢? -- 两个假设 一个特征出现的概率与其他特征(条件)独立: 每个特征同等重要. 朴素贝叶斯分类器 \(P(c ...
- 朴素贝叶斯、贝叶斯网络分类器
目录 贝叶斯定理 贝叶斯分类 朴素贝叶斯分类器 ...
- 贝叶斯条件概率/贝叶斯网络
一.TL;DL 条件概率的公式:P(AB)=P(A)P(B|A)=P(B)P(A|B):即事件A和事件B同时发生的概率等于在发生A的条件下B发生的概率乘以A的概率. 贝叶斯公式:由条件概率公式推导出 ...
- 实验一:贝叶斯网络及其应用
目录 前言 一.实验目的 二.实验内容和要求 三.步骤 总结 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容. 一.实验目的 掌 ...
- 贝叶斯网络、EM算法推导
文章目录 一.贝叶斯网络 1.1 网络推导 1.2 例题解析 二.EM算法 一.贝叶斯网络 贝叶斯网亦称"信念网",它借助有向无环图(Directed Acyclic Graph, ...
- HMM和N-gram、贝叶斯网络的区别
1.HMM 一个参数:(A,B,,Q,V) 两个假设: 观测独立假设,观测只与当前状态有关, 马尔可夫假设t时刻的状态只与t-1时刻的状态有关 三个问题: 概率计算问题,给定观测集合O和模型参数求 学 ...
最新文章
- java在记事本找不到_好烦,用记事本练习JDBC总是找不到类
- kafka丢数据问题方案(转载+整理+汇总)
- codeforces E. Jamie and Tree LCA+dfs序+线段树
- ubuntu mysql medium_ubuntu mysql远程连接+phpmyadmin安装
- js byte数组转string_JVM系列之:String,数组和集合类的内存占用大小
- Python语言学习系列------基础语法(一)
- php如何计算精确,简单谈谈php浮点数精确运算
- 空间数据挖掘常用方法及举例
- 全网首发:JDK绘制文字:三、绘制句柄的内容是如何定义的
- C++中字符编号ASCII码表
- VMware Workstation 15 设置Linux共享文件夹
- 高风险IP究竟来自哪里?IP定位带你反欺诈
- Git文件过大(pack文件过大)
- win10驱动开发4——加载/卸载驱动
- Python程序员必备的四款开发工具
- python获取excel数据制作有文字和图表的报告_如何用Python绘制学术报告图表?
- 【单片机毕业设计】【mcuclub-jj-013】基于单片机的衣柜的设计
- OS WDM OPM OSW 知识总结
- BigCommerce vs WooCommerce –哪个更好? (比较)
- 1.23 lseek函数
热门文章
- clistctrl获取选中行数据_Power Query基础6:筛选、排序、删重复行
- 股票的科创板,新三板,创业板到底哪个能让你赚钱
- scp 报错 not a regular file
- R和RStudio下载安装详细步骤
- java timer 序列化_编程达人 应用层timer_如何序列化timer
- 中国电信与中国联通启动2.1GHz 5G主设备集采,规模24万站
- 原价19万的美系插混,2年后落地只要11万~15万,微蓝6 PHEV为啥这么惨
- 《消费者报告》杂志:Model 3和Model S被评选为美国最佳豪华汽车
- 蛋壳公寓CEO高靖被限制消费
- 服气!蹭热点无敌,麦当劳发布“5G”新品:真香