04 贝叶斯算法 - 贝叶斯网络

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了04 贝叶斯算法 - 贝叶斯网络相关的知识,希望对你有一定的参考价值。

参考技术A

01 贝叶斯算法 - 朴素贝叶斯
02 贝叶斯算法 - 案例一 - 鸢尾花数据分类
03 贝叶斯算法 - 案例二 - 新闻数据分类

之前聚类算法中讲了 无向图 的聚类算法 - 谱聚类
13 聚类算法 - 谱聚类

本章介绍的贝叶斯算法是 有向图 的聚类算法。

区别:
谱聚类 的无向图里的点里放的是 样本
贝叶斯网络 的有向图的点里放的是 样本的特征

把某个研究系统中涉及到的 随机变量 ,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。 贝叶斯网络(Bayesian Network) ,又称有向无 环图模型 (directed acyclic graphical model, DAG);

贝叶斯网络 是一种概率图模型,根据概率图的拓扑结构,考察一组随机变量:X1,X2,...,Xn及其N组条件概率分布(Conditional ProbabililtyDistributions, CPD)的性质。

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

分析: 很好理解上面的概念,先回顾下面的算法,朴素贝叶斯算法要求的是互相独立的事件形成出x1~xn,这些特征彼此概率互不影响,所以才能求出联合概率密度。贝叶斯网络算法就是来解决有关联的特征组成的样本分类的。

一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,可以是可观察到的变量,或隐变量,未知参数等等。连接两个节点之间的箭头代表两个随机变量之间的因果关系(也就是这两个随机变量之间非条件独立);如果两个节点间以一个单箭头连接在一起,表示其中一个节点是“因”,另外一个节点是“果”,从而两节点之间就会产生一个条件概率值。

PS: 每个节点在给定其直接前驱的时候,条件独立于其非后继。

贝叶斯网络的关键方法是图模型,构建一个图模型我们需要把具有因果联系的各个变量用箭头连在一起。贝叶斯网络的有向无环图中的节点表示随机变量。连接两个节点的箭头代表此两个随机变量是具有因果关系的。

贝叶斯网络是模拟人的认知思维推理模式的,用一组条件概率以及有向无环图对不确定性因果推理关系建模。

目标,求P(a,b,c)
a的概率和任何别的特征都无关,所以先求a的概率:P(a);
b的生成和a有关。即a发生的情况下,b发生的概率:P(b|a);
c的生成和a、b有关。即a和b同事发生的情况下,c发生的概率。P(c|a,b);

有一天早晨,白尔摩斯离开他的房子的时候发现他家花园中的草地是湿的,有两种可能,第一:昨天晚上下雨了,第二:他昨天晚上忘记关掉花园中的喷水器,接下来,他观察他的邻居华生,发现他家花园中的草地也是湿的,因此,他推断,他家的草地湿了是因为昨天晚上下雨的缘故。

那么在贝叶斯网络中,哪些条件下我们可以认为是条件独立的?

条件一:
在C给定的条件下,a和b被阻断(blocked)是独立的。
即只要C给定了,a、b就独立。
条件独立:tail - to -tail

条件二:
在C给定的条件下,a和b被阻断(blocked)是独立的。
条件独立:head- to -tail

条件三:
在C未知的情况下,a和b被阻断(blocked),是独立的。
条件独立:head - to - head

数据挖掘算法之贝叶斯网络

贝叶斯网络

上上周末写完上篇朴素贝叶斯分类后,连着上了七天班,而且有四天都是晚上九点下班,一直没有多少时间学习贝叶斯网络,所以更新慢了点,利用清明节两天假期,花了大概七八个小时,写了这篇博客,下面讲的例子有一个是上一篇朴素贝叶斯讲过的,还有其他的都是出自贝叶斯网络引论中。我会以通俗易懂的方式写出来,不会讲得很复杂,会介绍贝叶斯网络的绝大部分知识点,看完会让你对于贝叶斯网络有个大概的了解。但是对于比较深层次的东西,我先不打算写。比如训练贝叶斯网络因为涉及到比较加深入的数学知识,我自己暂时也不是理解得很透彻,所以先不写。

这几天利用闲暇时间,看了一部电视剧,stb超级教师,这部电视剧虽然没有什么明星,但是个人觉得还是挺好看的,比较有营养,算是一部喜剧和励志片。故事情节大概就是一个家庭贫困的孩子,在高中没有读完就去黑市打黑拳,十多年后,这个男主角和几个兄弟在黑道上打出了一片天,但是男主角后悔当初没读书,对于打打杀杀的日子感到腻了,就去一家高中当了一个班主任,但是这个班是全校的垃圾班,班上的班主任已经换了16个,有的还被学生整得去了精神病院。虽然刚开始也遭到了同学们的暗算,但是在他不懈的坚持下,感化了所有学生。因为男主角以前没受过什么正规教育,没有教师资格证,被一些老师排挤,要求他离校,最终在男主角不断的坚持和同学们的帮助下,考上了教师资格证。

里面有几句男主角说的话:共勉

成长就是让你一个人,踉踉跄跄的受伤,跌跌撞撞的坚强

你们生下来不是为了考试成绩而活,那证明不了什么,真正重要的,是你们要好好的活着,为自己找到一个真正的答案。

不管是什么样的人,只要肯用心,肯努力,都可以达到自己的目标


引子

前面讲了朴素贝叶斯,朴素贝叶斯有个前提,就是每个随机变量(特征属性)都是相互独立的
但是在现实生活中,我们遇到的情况不是所有随机变量都相互独立,他们之间相互关联、相互影响。

上一篇我们讲过一个通过朴素贝叶斯来检测真假账号的例子。

账号真假的判断根据三个特征属性来判断:

             

       F1: 日志数量/注册天数 

     F2: 好友数量/注册天数 
     F3: 是否使用真实头像(真实头像为1,非真实头像为0)

通过计算这个式子:P(F1|C)P(F2|C)P(F3|C)P(C) 来判断一个账号的真假。但是我们的前提是假设这三个特征相互独立。
现在发现三个特征属性具有如图所示的关联关系



1、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像
2、日志密度与好友密度、日志密度与是否使用真实头像在账号真实性给定的条件下是独立的
3、使用真实头像的用户比使用非真实头像的用户平均有更大的好友密度

 
 
由于特征属性间存在依赖关系,使得朴素贝叶斯分类不能解决这种问题了,看下面这种解决办法:
上图是一个有向无环图,其中每个节点代表一个随机变量,而弧则表示两个随机变量之间的联系,代表父节点影响子节点

不过上面这个图,只是定性地给出了随机变量(特征属性)之间的关系,如果要定量,还需要一些数据,这些数据就是每个节点对其直接前驱节点的条件概率,而没有前驱节点的节点则使用先验概率表示。而这些数据可以通过训练获得,如下,是通过训练获得的在已知账号为真或假地情况下,使用真实头像的概率分布





 纵向表头表示条件变量,横向表头表示随机变量。上表为真实账号和非真实账号的概率,而下表为头像真实性对于账号真实性的概率。这两张表分别为“账号是否真实”和“头像是否真实”的条件概率表。有了这些数据,不但能顺向推断,还能通过贝叶斯定理进行逆向推断。例如,现随机抽取一个账户,已知其头像为假,求其账号也为假的概率:

      

      也就是说,在仅知道头像为假的情况下,有大约35.7%的概率此账户也为假。

上面的计算式子中分母P(H=0)用到了全概率公式进行变形

看看百度百科上面全概率公式的定义

若事件B1,B2,…构成一个完备事件组且都有正概率,则对任意一个事件A,有如下公式成立:

以上是关于04 贝叶斯算法 - 贝叶斯网络的主要内容,如果未能解决你的问题,请参考以下文章

数据挖掘算法之贝叶斯网络

基于搜索的贝叶斯网络结构学习算法-K2

贝叶斯预测的计算实例

贝叶斯定理(贝叶斯分类)

数据挖掘算法之贝叶斯网络

数据挖掘算法之贝叶斯网络