当前位置:文档之家› 基于互信息的贝叶斯网络结构学习算法

基于互信息的贝叶斯网络结构学习算法

第37卷 

Vbl37 第7期 

NO.7 计算机工程 

Computer Engineering 2011年4月 

April 2011 

・软件技术与数据库・ 文章编号:lo0 -3428(2011)07—_o062—_03 文献标识码:A 中图分类号:TP311 

基于互信息的贝叶斯网络结构学习算法 

王越,谭暑秋,刘亚辉 

(重庆理工大学计算机科学与工程学院,重庆400050) 

摘要:贝叶斯网络结构学习是贝叶斯网络构建的核心,有效的结构学习算法是构建最优网络结构的基础。基千此,提出一种基于互信息 

的贝叶斯网络结构学习算法,该算法可以挖掘}Jj数据集各属性中存在的隐含依赖关系,适时地对数据集进行降维操作,从而提高算法的效 

率,并可保证结果的准确性。实验结果表明,与常用的依赖分析算法SGS相比,在结果相似的情况下,该算法执行艘率更高。 

关健词:贝叶斯网络;结构学习;互信息 

Bayesian Network Structural Learning Algorithm 

Based on Mutual Information 

WANG Yue,TAN Shu-qiu,LIU Ya-hui 

(College of Computer Science and Engineering,Chongqing University of Technology,Chongqing 400050,China) 

[Abstract]Bayesian network structural learning plays a very important role in the processing of Bayesian network’S construction,and an effective 

structural learning algorithm is the base of constructing the optimum Bayesian network.An algorithm of Bayesian network structural learning(called M|BNS)based on mutual information is proposed The algorithm can give the concealed dependency relationships among data attributes,and make 

dimension reduction at the right moment,which can improve the performed efficiency and ensure the accuracy rate Experimental result shows that 

the algorithm is effective.Compared with the SGS,the algorithm ofMI/ ̄NS is more effective in the similar results 

[Key words]Bayesian network;structural learning;mutual information 

D0h 1 0.3969/j.issn.1 000—3428 2()1 l 07 02 1 

1概述 

贝叶斯网络是一种进行强有力推理的工具,它通过将图 

论知识与概率论知识的结合,可以方便地表示和分析不确定 

性和概率性的事物。由于贝叶斯网络具有独特的不确定表达 

形式、丰富的概率表达能力和综合先验知识的增量学习特性, 

使其成为数据挖掘等众多方法中的研究热点之一。 

学习贝叶斯网络就是要寻找一种网络,能按某种测度较 

好地与给定实例数据集拟合。就一般意义而言,寻找一种网 

络包括寻找一种有向无环图(Directed Acyclic Graph,DAG)结 

构和获得与DAG中每个结点相关的条件概率表。前者称为 

网络结构学习,后者称为网络参数学习。因此,结构学习是 

学习贝叶斯网络的核心,有效的结构学习方法和算法是构建 

最优网络结构的基础。网络结构学习就是通过对给定的样本 

数据集的学习,从大量的结构中选出最适合该数据集的网络 结构川。 

现有的主要贝叶斯网络结构学习方法有2类 l:一类是 

基于打分一搜索的学习方法,其原理是按照一定的搜索策略及 

评分准则构建贝叶斯网络结构;另一类是基于依赖关系的学 

习算法,这类方法通常利用统计或信息论的方法定量地分析 

变量间的依赖关系获取最优的表达这些关系的网络结构。其 

中一个比较常见的算法是SGS(Spirtes.Glymour and Scheines) 

算法。此算法不需要结点有序的贝叶斯网络结构学习算法。 

它能够自动为由条件独立(cI)测试学习而得到网络结构中的 

边定向,但缺点是要求指数级的cI测试 。j。 

本文结合信息论中互信息的知识,提出一种基于互信息 

的贝叶斯网络结构学习算法(M1BNS)。该算法通过互信息的 知识能够挖掘出各属性之间的一种依赖关系,并利用这种依 

赖关系确定贝叶斯网络结构。由于算法执行过程中适时地对 

数据集进行降维,效率得到了提高,同时可以保证结果的正 

确性。实验结果证明该算法是有效的,与传统SGS算法比较 

的实验结果显示,数据集属性维度越高,本算法效率也越高。 

2贝叶斯网络及其模型 

贝叶斯网络是一个有向无环图(DAG),它可表示为一个 

三元组G:(Ⅳ,E,P)。其中,N:{X ,X ,…, }是一组结点的集 

合,每个结点代表一个变量(属性)。E={( , f)l XJ, , ,∈N} 

是一组有向边的集合,每条边(xi,X )表示Xi, ,具有依赖关系 

Xi X,。P={.1,( l )}是一组条件概率的集合,其中,P(Xillri) 

表示Xi的父结点集 ,对Xi的影响。贝叶斯网络实质上就是一 

个联合概率分布p(x., ,…, , )所有条件独立性的图形化表 

示,其中,互为Xi父亲结点集 。 

构造贝叶斯网络(先验贝叶斯网络)一般分为以下3个步 

骤:(1)确定变量集和变量域;(2)确定网络结构;(3)确定局部 

概率分布。其中,确定网络结构有如下3种方法: 

方法1根据变量之问的条件独立性确定弧的存在性,根 

据变量之间条件相对预测能力(或条件相对互信息)确定弧的 

基金项目:重庆市科技攻关计划基金资助项目(CSTC,2009AB2049, 

CSTC,2009AC2068) 作者简介:王越(1961一),男,教授,主研方向:数据挖掘,数据 

库技术,嵌入式系统;谭暑秋,硕士研究生;刘亚辉,硕士 

收稿日期:2010-09—17 E-mail:wangyue@cqit.

edu cn 第37卷第7期 王越,谭暑秋,刘亚辉:基于互信息的贝叶斯网络结构学习算法 63 

方向。 

方法2用户根据变量之间的因果关系(根据用户的已有 

知识)来建立网络结构。 

方法3方法1与方法2结合使用。 

3互信息理论 

互信息是信息论中的一个中心概念,它描述了某个变量 

取值对另一个变量取值的确定能力。其值越大,表明2个变 

量间的确定能力越强 。具体概念定义如下: 

定义(互信息)设x,Y,Z为3个不相交的属性变量,称: 

/ , 、 、 ):圭 (q,Yj)lb )为X,Y的互信息。,( ,),)=∑∑ (j J — : J为 , 的互信息。 

。,= \P(Xi)P(Yj, 

/ , . 、 、 l(X,Y Jz)=圭兰主p( , )Jb J_ }为给定Z ‘ \ptx

i’z^)P(Yj。z^J』 

的条件下,x和y的互信息(条件互信息)。其中,r.q,s为 , 

Z的状态个数;,J( ,Y,, )为( ,Y,Z)的状态为(x ,y , ) 

时的概率。 

定理川互信息t(x, 和i(x,y}ZJ具有如下性质: 

(i)对称性,即I(X, =,( x)和,(x, z):,(y,xI Z)。 

(2)非负性,即I(X, ≥0和t(X,YIZ)≥0。而且,当且仅 

当x和Y条件独立时有,(x,y)=O。同理,有当且仅当在给定 

条件z,x和Y条件独立时有l(X,YIZ)=O。 

4基于互信息的新结构学习算法 

假设训练数据集是完整的,且假设每个结点x对其所有 

父结点 , 、,…, 的依赖是互相独立的。由于给出的数据集 

实例中,各个属性值一般不全是离散性的,因此首先要对数 

据集进行离散化预处理。 

第1步属性值离散化。 

对连续性的数据,一般采取将连续变量的取值区问分为 

若干个区域,使连续变量转化为离散变量。其中,属性值用 

数学家史特吉斯(Sturges)提出的k=1+3 321bn决定所分数据 

的组数,其中规定n为训练集的数据量,则数值型属性值xi 

如果在[min+fx((max~min)/ ),min+(1+1)x((nmx—min)/k))区 

问内,则离散化后的值为,,其中,l=0—1--,r ];rain是属 

性列中的最小值;max是属性列中的最大值。 

第2步建立无向图。 

设一个数据集D有Jv个变量{X,,X 一,x, ),所建立的 

无向图为P={<X,,X >),其中,i, =1,2,…,i'l,且 ≠J。 

设U={x ,x ・, , )为属性全集,依次对每一对属性 

,,x,∈U计算互信息,其中,X ≠X 。给定一个阈值 , 

当J(x ,x,)‘ 时,连接边x 一x,,其中, 通常取一个很 

小的正数。 

第3步对无向图进行删剪。 

从上面所给的性质可得到一个判断 ,y是否条件独立的 

算法:当给 一个概率分布p( )时,可以通过判断 

,( ,Y i z)=o来代替i(x,z,y)。其中,t(x,z,',)表示在给定 

z的条件下,x独立于y,即:p(X f l,,z)=p(x f z)和 

p(YIx,z):p(YIz)。当l(x,YIz)=o时,则有,( ,z,y)条 

件独立性成立,从而P图中的x,一x,边可以删除;否则在给 

定条件z的情况下,x和Y则互相依赖。 

然而在实际计算中并没有一个真正的概率分布p(x),只 

是有一个基于样本数据集D而计算的一个经验概率分布 

p,,( )来近似估计 ( ),计算的l(x,Y 1 z)只是基于p, ( )上 的, (x,YIz)的近似值,所以,它的值总是大于o。为此, 

可把判断条件独立方法描述为:设 为属性全集, 

x ,x,∈U(i, =1,2,’一,n),X,≠X,,且C ( =1,2,・一, )∈C。 

其中,c是类属性集。给定一个闽值e,,如果有I(X,Ylc)<e, 

则判定给定C,x与y条件独立;否则给定C,X与y是条 

件依赖的。 

第4步建立有向图P 。 

设存在边即 ,一x.,如何确定边的方向,这里运用各属 

性与类属性之间的互信息判断边的方向。给定一个闽值e : 

n)当\“x ,C)-l(x ,C) e3戳,耨在x _}X 且X _÷x , 

即.)( H x 。 

(2)当J,( ,c)-t(x,,c)}>乞,且/(x,,c)>,( ,,c)时, 

存在x x,;反之则存在x, x,。 

由算法可知,在处理过程中可能存在 , x,Rx 

2条边同时都存在的情况,这说明在贝叶斯网络中结点x,和 

结点JY 存在着互相依赖。在这种情况F,一个训练数据集就 

会存在着多种可能性的贝叶斯网络。 

第5步利用专家知识做出判断。 

对第4步产生的多种可能性的贝叶斯网络结构进行评 

价,最终选择一些最有可能性的结果作用于本文的目标。 

MIBNS算法主要伪代码如下: 

Input数据训练集D,非类属性集X,类属性C,阈值e ,g,,巳 Output贝叶斯网络图尸 

调用数据离散化方法 / DiscretizefD1; 

/ 构造无向图P / 

FOR i FROM 1 To n 其中n是非类属性的属性个数 / FORj FROMj+1 to n 

IF I(X ,X,)>e1 P=PU{<X.,x >); 

ENDIF; END FOR: FORj FROM 1 TO m/丰其中,131是类属性的属性个数 / 

IF i(x ,c )>e1 P=PU{<Ci-X.>};/ 其中,”代表无向边 / 

ENDIF; 

ENDFOR: ENDFOR: / 对无向图P进行修剪 / FORi FROM l TO n一1 

FORjFROMi+l TO n 

FOR kFROM 1 TO H1 l(X.,x。IC)+=I(x ,x 1 ck); IF I(X ,X IC)<e, /:=:移除无向边<X,一X.> / 

P=P一{<X 一X >}; ENDIF; 

ENDFOR: ENDFOR; 

END F0R: 将无向图转变为有向图P / FOR kFROM 1 TOin FORi FRoM l TO n 

FORj FROM 1 TO n 1F<X ,X,>IN P 

I(X,,C)+=l(X ,ck);

相关主题