贝叶斯网络入门

2017 年 11 月 19 日 论智

论智

作者 | weakish

来源 | 论智

我们昨天介绍了朴素贝叶斯分类器,通过假设每一个特征的出现都是独立事件,简化了计算复杂度,也避免了样本稀疏的问题。虽然这一假设常常是不准确的,但朴素贝叶斯在实际工程中出乎意料地好用。因为很多应用并不在乎精确的类概率,只关心最后的分类结果。

然而,当特征之间相关性比较强,而我们又要求比较精确的类概率的时候,朴素贝叶斯就不够用了。

也就是说,下面的式子里p [f1, f2 .. fn]不好算了。

  
    
    
    
  1. pSucc [f1, f2 .. fn] S =

  2.    (p S) * (pSucc S [f1, f2 .. fn]) / (p [f1, f2 .. fn])

回顾一下,如果[f1, f2 .. fn]是独立事件,那我们有:

  
    
    
    
  1. p [f1, f2 .. fn] =

  2.    (p f1) * (p f2) * .. * (p fn)

现在每一项特征的概率可能受其他特征的影响。假设有一个函数pp可以表达这些影响:

  
    
    
    
  1. p [f1, f2 .. fn] =

  2.    (pp f1) * (pp f2) * .. * (pp fn)

那么问题就在于pp是如何定义的?

既然pp表达的是某一事件受其他事件的影响,那pp就可以用条件概率来定义:

  
    
    
    
  1. pp f = pSucc (influenced f) f

对于给定的特征f,我们找出所有影响它的特征[inf1, inf2 .. infn]:

  
    
    
    
  1. influenced f =

  2.    pSucc [inf1, inf2 .. infn] f

pSucc [inf1, inf2 .. infn] f这看起来是不是很熟悉?我们讨论幼稚贝叶斯的时候提到的是pSucc [f1, f2 .. fn] S。这两者的结构是一样的。

因此,这其实是一个递归调用幼稚贝叶斯分类器的问题。

基于同样的思路,我们可以处理(pSucc S [f1, f2 .. fn]).

不过实际工程中,因为数据量很大,递归调用贝叶斯分类器是吃不消的。所以为了降低计算复杂度,我们需要进行一些简化:

  1. 当影响程度很低时,我们直接忽略,视为独立事件。

  2. 我们只考虑直接影响给定特征f的特征,不考虑间接影响。例如,pinf1可能通过影响inf1来间接影响f,这种情况不考虑。

  3. 当我们考虑影响给定特征f的特征时,假定这些影响f的特征是相互独立事件。

当然,如果有必要,上面的简化也可以放宽,以提高计算复杂度为代价,获得更准确的估计。

进行上述简化后,我们得到了贝叶斯网络(Bayesian network)

一个简单的贝叶斯网络

贝叶斯网络中,特征间的相互影响关系,我们用有向无环图(DAG)来表示。在数学上,我们用图(Graph)来表示对象间的相互关系。图由结点(代表对象)和边(代表关系)组成。如果边具有方向,那么得到的图就称为有向图。对于一个有向图而言,如果从任一节点出发,都无法经过若干条边回到该节点,那么这个有向图就称为有向无环图。在贝叶斯网络中,我们用有向无环图的边的方向,表示某个特征对另一个特征的影响。无环则保证特征间的相互影响关系不会陷入无穷无尽的循环。

特征对给定特征的具体影响程度,我们用条件概率表(CPT)来表示。条件概率表这个概念很容易理解。下图就展示了一个简单的贝叶斯网络中各特征的条件概率表。

最后,特征间的相互影响关系,也就是DAG的构建,依赖于经验或领域知识。条件概率表,则可以用朴素贝叶斯来改进。

本文系论智编译,转载请联系本公众号获得授权。

登录查看更多
15

相关内容

贝叶斯网络是一种概率网络,它是基于概率推理的图形化网络,而贝叶斯公式则是这个概率网络的基础。贝叶斯网络是基于概率推理的数学模型,所谓概率推理就是通过一些变量的信息来获取其他的概率信息的过程,基于概率推理的贝叶斯网络(Bayesian network)是为了解决不定性和不完整性问题而提出的,它对于解决复杂设备不确定性和关联性引起的故障有很大的优势,在多个领域中获得广泛应用。
【新书册】贝叶斯神经网络,41页pdf
专知会员服务
177+阅读 · 2020年6月3日
【清华大学】图随机神经网络,Graph Random Neural Networks
专知会员服务
155+阅读 · 2020年5月26日
知识神经元网络 KNN(简介),12页pdf
专知会员服务
14+阅读 · 2019年12月25日
【新书】贝叶斯网络进展与新应用,附全书下载
专知会员服务
120+阅读 · 2019年12月9日
一文读懂线性回归、岭回归和Lasso回归
CSDN
34+阅读 · 2019年10月13日
一文读懂机器学习中的贝叶斯统计学
数据分析
26+阅读 · 2019年5月8日
入门 | 一文看懂卷积神经网络
算法与数学之美
7+阅读 · 2018年2月22日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
朴素贝叶斯和贝叶斯网络算法及其R语言实现
R语言中文社区
10+阅读 · 2017年10月2日
详解基于朴素贝叶斯的情感分析及Python实现
AI研习社
9+阅读 · 2017年7月12日
从贝叶斯方法谈到贝叶斯网络
七月在线实验室
8+阅读 · 2017年7月6日
MNIST入门:贝叶斯方法
Python程序员
23+阅读 · 2017年7月3日
Bivariate Beta LSTM
Arxiv
5+阅读 · 2019年10月7日
Explanatory Graphs for CNNs
Arxiv
4+阅读 · 2018年12月18日
Arxiv
19+阅读 · 2018年6月27日
Arxiv
3+阅读 · 2018年6月24日
Arxiv
3+阅读 · 2018年2月22日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关资讯
一文读懂线性回归、岭回归和Lasso回归
CSDN
34+阅读 · 2019年10月13日
一文读懂机器学习中的贝叶斯统计学
数据分析
26+阅读 · 2019年5月8日
入门 | 一文看懂卷积神经网络
算法与数学之美
7+阅读 · 2018年2月22日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
朴素贝叶斯和贝叶斯网络算法及其R语言实现
R语言中文社区
10+阅读 · 2017年10月2日
详解基于朴素贝叶斯的情感分析及Python实现
AI研习社
9+阅读 · 2017年7月12日
从贝叶斯方法谈到贝叶斯网络
七月在线实验室
8+阅读 · 2017年7月6日
MNIST入门:贝叶斯方法
Python程序员
23+阅读 · 2017年7月3日
相关论文
Bivariate Beta LSTM
Arxiv
5+阅读 · 2019年10月7日
Explanatory Graphs for CNNs
Arxiv
4+阅读 · 2018年12月18日
Arxiv
19+阅读 · 2018年6月27日
Arxiv
3+阅读 · 2018年6月24日
Arxiv
3+阅读 · 2018年2月22日
Arxiv
5+阅读 · 2015年9月14日
Top
微信扫码咨询专知VIP会员