本发明涉及概率网络技术领域,尤其涉及一种贝叶斯网络构建方法和系统。
背景技术:
贝叶斯网络又称信度网络,是Bayes方法的扩展,用来表示变量之间概率依赖关系的图形模型,它描述的是一组随机变量所遵从的联合概率分布,并通过一组条件概率来指定一组条件独立性假设,是目前不确定知识表达和推理领域最有效的理论模型之一。从1988年由Pearl提出后,已经成为近几年来研究的热点。
一个贝叶斯网络模型由两部分组成:网络结构图和条件概率表。网络结构图是一个有向无环图(DAG),图中的所有节点分别对应随机变量,有向边表示变量间的直接依赖关系,体现了领域知识定性方面的特征。在有向无环图中,给定的父节点,每个独立于它的非后继节点;条件概率表或称局部概率分布,是与每个变量关联的局部概率分布的集合,集合中的元素是给定每个变量的父节点。
目前,构建贝叶斯网络一般包括两种方法:
一、指定网络结构的贝叶斯网络方法。
该方法由相关领域专家根据经验知识确定贝叶斯网络的结构和参数,早期的贝叶斯网络构造大多采用这种方式。这种方式适合于问题领域的复杂性不高,变量很少且关系清晰的应用领域。但是,这种法不仅需要人工参与确定各参数间的依赖关系,而且在有新的节点加入时也需要人工参与,智能化水平较弱。
二、通用结构学习的贝叶斯网络方法。
贝叶斯网络的结构通过机器学习算法从大量训练数据中学习得到。这种方法是由数据驱动的,特别适合于可利用的领域数据量较大,而对领域知识难以完全掌握的情况。但是,该方法可能学习得到用领域知识难以理解与解释的贝叶斯网络图,而且受数据采集与数据集有偏性的影响较大,并且由于因果关系表现在数据的关联性上呈现对称的情形,所以不能够体现网络中节点的因果关系,进而常常能得到多种等价的网络拓扑,部分网络拓扑是逆因果的。
可见,上述两种方法中,方法一的智能化水平太低,而方法二受数据影响较大,呈现两个极端,均难以满足现实应用的需求。
技术实现要素:
本发明的目的是提供一种贝叶斯网络的构建方法和系统,以解决上述问题。
本发明所公开的贝叶斯网络的构建方法,包括:
步骤一、统一原始数据格式,获得具有标签化属性值的节点;
步骤二、根据领域知识对所述节点进行排序,获得逻辑序列;
步骤三、提取所述逻辑序列中排序最高的节点作为根节点;
步骤四、对所述逻辑序列中的节点进行独立性验证;
步骤五、依次将所述逻辑序列中的节点作为当前节点,依据独立性验证结果提取与所述当前节点相关度最大的节点作为当前节点的父节点,并提取没有子节点的节点作为叶子节点;
步骤六、以所述根节点、父节点和叶子节点构建贝叶斯网络。
本发明所公开的贝叶斯网络构建系统,包括:
数据转换模块,所述数据转换模块用于统一原始数据格式,获得具有标签化属性值的节点;
逻辑排序模块,所述逻辑排序模块与所述数据转换模块相连,用于接收所述节点,并由人工根据领域知识对所述节点进行排序,获得逻辑序列;
根节点选择模块,所述根节点选择模块与所述逻辑排序模块相连,用于接收所述逻辑序列,并提取所述逻辑序列中排序最高的节点作为根节点,在所述逻辑序列中将所述根节点删除;
独立性验证模块,所述独立性验证模块与所述根节点选择模块相连,用于接收所述逻辑序列,并对所述逻辑序列中的节点进行独立性验证;
父节点选择模块,所述父节点选择模块与所述独立性验证模块相连,用于依次将所述逻辑序列中的节点作为当前节点,提取与所述当前节点相关度最大的节点作为当前节点的父节点,并提取没有子节点的节点作为叶子节点;
贝叶斯网络构建模块,所述贝叶斯网络构建模块分别与根节点选择模块、父节点选择模块相连,用于接收所述根节点、父节点和叶子节点,并以所述根节点、父节点和叶子节点构建贝叶斯网络。
本发明所公开的贝叶斯网络的构建方法和系统,在前期统一参数格式后,根据领域知识确认各节点间的逻辑关系并排序,避免了数据对所述贝叶斯网络带来的影响,在后期利用自动化的方式,依据相关领域的逻辑关系,将各节点进行排序以获得根节点,并根据各节点间的相关度,确认节点间的网络结构关系,以此构建贝叶斯网络,减少了人工输入的麻烦,提高了智能化水平。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种贝叶斯网络构建方法流程示意图;
图2为本发明实施例公开的贝叶斯网络构建方法步骤五的流程示意图;
图3为本发明实施例公开的一种贝叶斯网络构建系统结构示意图;
图4为本发明实施例公开的贝叶斯网络构建系统父节点选择模块结构示意图;
图5为本发明实施例公开的另一种贝叶斯网络构建系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例公开了一种贝叶斯网络的构建方法,如图1所示,该方法包括:
步骤一、统一原始数据格式,获得具有标签化属性值的节点。所述具有标签化属性值的节点为统一的逗号分隔符格式的文件,以便提取属性,标签化属性值。或者,所述具有标签化属性值的节点也可以为其他能够对节点属性进行标签化的格式文件。
步骤二、根据领域知识对所述节点进行排序,获得逻辑序列。即,根据领域知识确定各个属性节点在贝叶斯网络中的可能存在的边的方向,进而表示在一个或多个相互关联的事件中的因果的顺序。例如:“告警类别”字段,在因果序上,高于“CPU”,因为告警类别决定了告警正文中是否出现“CPU”这样的单词。
根据领域知识的多少,顺序可以是完全有序的,也可以是以分级形式给出的。在本实施例中,所述领域知识为企业级网络管理中的领域知识。
步骤三、提取所述逻辑序列中排序最高的节点作为根节点。所述根节点的个数为一个或多个,则在所述贝叶斯网络中可以由一棵树组成,也可以有多棵树组成。
步骤四、对所述逻辑序列中的节点进行独立性验证。
对所述逻辑序列中的节点进行独立性验证也就是对所述逻辑序列中的节点进行两两独立性验证,即在所述逻辑序列中所有的节点之间,对两两节点彼此间的相关或相互独立的验证,进而判断两个节点间的独立关系。所述对所述节点进行独立性验证的方法为卡方验证法,或,协方差系数法,或,Pearson积距系数法。
例如,卡方验证法,其计算公式如下:
其中,Observed是两个特征上取某种值的组合的发生次数,也就是观测频度,expected是期望频度,来自于两个特征单独取相应值的频度的乘积(独立假设下两者相等)。
步骤五、除所述根节点外,依次将所述逻辑序列中的节点作为当前节点,依据独立性验证结果提取与所述当前节点相关度最大的节点作为当前节点的父节点,并提取没有子节点的节点作为叶子节点。
如图2所示,所述步骤五包括:
步骤51、提取所述逻辑序列中顺序在所述根节点之后的节点,作为当前节点。例如,在逻辑序列a、b、c、d、e…n中,节点a为根节点,则在此提取节点b作为当前节点。
步骤52、将所述当前节点在逻辑序列中删除,生成暂存逻辑序列。例如,在逻辑序列a、b、c、d、e…n中,若节点c为当前节点,则在逻辑序列a、b、c、d、e…中将节点c删除,生成的暂存逻辑序列为a、b、d、e…n。
步骤53、在所述暂存逻辑序列中,提取与所述当前节点相关度最大的节点作为当前节点的父节点。在步骤四中,已经对所述逻辑序列中的节点进行独立性验证,获得每两个节点间的相关度,在此利用步骤四的输出,在所述暂存逻辑序列中,提取与所述当前节点相关度最大的节点作为当前节点的父节点。
若存在两个或多个相关度最大的节点,则选取使贝叶斯网络树结构高度最高的节点作为当前节点的父节点。对于贝叶斯网络树结构而言,其结构高度越高,利用的关联性就越充分,距离朴素贝叶斯的情况就越远,树结构中蕴含的条件独立信息也就越多。选取使贝叶斯网络树结构高度最高的节点作为当前节点的父节点也就充分利用了节点间相关性的信息,而且意味着每个节点的子节点数量更少,有利于计算的简化。
若所述相关度最大的节点为当前节点的子节点,则提取相关度的次大项节点作为当前节点的父节点。例如,在逻辑序列a、b、c、d、e…n中,验证节点b时,与节点b相关度最大的是节点d,则节点b的父节点是节点d,即节点b是节点d的子节点。在验证节点d时,与节点d相关度最大的是节点b,与节点d相关度的次大项节点是节点c,则选择节点c作为节点d的父节点,从而避免选择节点b而破坏贝叶斯网络树结构的情况。
步骤54、判断所述当前节点是否为逻辑序列中最后一个节点,
如果是,则将没有子节点的节点作为叶子节点,
如果否,则选择顺序在所述当前节点之后的节点作为新的当前节点,转至步骤52。
其中,如果所述当前节点不是逻辑序列中最后一个节点,则表明逻辑序列中还有节点没有处理(所谓的“处理”是指对寻找节点的父节点的过程,其结果可能会找到父节点,也可能没有父节点)完毕,需要对其继续处理,此时需要选择顺序在所述当前节点之后的节点作为新的当前节点,转至步骤52对其继续处理。所谓的“选择顺序在所述当前节点之后的节点作为新的当前节点”即为,例如在逻辑序列a、b、c、d、e…n中,若当前节点为节点d,在步骤54中已经确定了节点d的父节点,在节点d后面还有节点e、节点f等节点需要验证,此时,在当前节点d之后,按照顺序选择节点e为新的当前节点,即在处理完节点d后,处理节点e,寻找节点e的父节点,直至按照在逻辑序列中存在的顺序,依次将所有的节点处理完毕。
如果所述当前节点是逻辑序列中最后一个节点,则表明已经把逻辑序列中所有节点的父节点都已经验证完毕,此时,会出现没有子节点的节点。例如,在逻辑序列a、b、c、d、e…n中,节点e的父节点是节点n,而在逻辑序列a、b、c、d、e…n中,除节点e之外,与其他节点相关度最大的节点都不是节点e,即其他节点的父节点均不会是节点e,则节点e即为叶子节点。
步骤六、以所述根节点、父节点和叶子节点构建贝叶斯网络。在确定了根节点、父节点和叶子节点后,即已经确认了所述逻辑序列中所有节点间相互的相关度信息,而此处的父节点为上述步骤所输出的父节点,所述父节点不仅包括一个节点信息,还包括与此节点相关节点的方向信息,据此以确认所述贝叶斯网络中的节点及边的方向信息。此时,所述根节点和叶子节点作为所述贝叶斯网络的两端,再加以所述父节点确认所述贝叶斯网络中的节点及边的方向信息,则足以构建贝叶斯网络。最后,再依据现有技术计算得出相应的条件概率表,完成所述贝叶斯网络的构建。
本实施例所公开的贝叶斯网络的构建方法,在前期统一参数格式后,根据领域知识确认各节点间的逻辑关系并排序,避免了数据对所述贝叶斯网络带来的影响,在后期利用自动化的方式,依据相关领域的逻辑关系,将各节点进行排序以获得根节点,并根据各节点间的相关度,确认节点间的网络结构关系,以此构建贝叶斯网络,减少了人工输入的麻烦,提高了智能化水平。
在本实施例中,所述领域知识为企业级网络管理中的领域知识。则本实施例所述贝叶斯网络构建方法相应的可以用于网管系统中事件的过滤。即:依据网管采集到的事件数据构建贝叶斯网络,在相应事件发生时,根据已构建的贝叶斯网络判断这些事件是否值得维护人员关注。如果值得关注,则该事件将通过工单系统派发给运维人员进行人工干预,否则该事件将被筛选掉。经过试验,本发明结合运维人员经验判断,可以过滤75%以上的无效事件。
此外,根据领域知识的不同,本发明所公开的贝叶斯网络的构建方法还可以应用在其他不同的领域当中,在此不做具体限制。
实施例二
本实施例公开了一种贝叶斯网络构建系统,如图3所示,该贝叶斯网络构建系统包括:
数据转换模块,所述数据转换模块用于统一原始数据格式,获得具有标签化属性值的节点;
逻辑排序模块,所述逻辑排序模块与所述数据转换模块相连,用于接收所述节点,并由人工根据领域知识对所述节点进行排序,获得逻辑序列;
根节点选择模块,所述根节点选择模块与所述逻辑排序模块相连,用于接收所述逻辑序列,并提取所述逻辑序列中排序最高的节点作为根节点,在所述逻辑序列中将所述根节点删除;
独立性验证模块,所述独立性验证模块与所述根节点选择模块相连,用于接收所述逻辑序列,并对所述逻辑序列中的节点进行独立性验证;
父节点选择模块,所述父节点选择模块与所述独立性验证模块相连,用于依次将所述逻辑序列中除根节点之外的节点作为当前节点,依据独立性验证结果提取与所述当前节点相关度最大的节点作为当前节点的父节点,并提取没有子节点的节点作为叶子节点;
贝叶斯网络构建模块,所述贝叶斯网络构建模块分别与根节点选择模块、父节点选择模块相连,用于接收所述根节点、父节点和叶子节点,并以所述根节点、父节点和叶子节点构建贝叶斯网络。
如图4所示,所述父节点选择模块,包括:
第一当前节点提取单元,所述第一当前节点提取单元与所述独立性验证模块相连,用于接收所述逻辑序列,提取所述逻辑序列中顺序在所述根节点之后的节点,作为当前节点;
第二当前节点提取单元,所述第二当前节点提取单元与所述独立性验证模块相连,用于接收所述逻辑序列,选择顺序在所述当前节点之后的节点作为新的当前节点;
暂存逻辑序列生成单元,所述暂存逻辑序列生成单元分别与所述第一当前节点提取单元和第二当前节点提取单元相连,用于将所述当前节点在逻辑序列中删除,生成暂存逻辑序列;
父节点选择单元,所述父节点选择单元分别与所述暂存逻辑序列生成单元和独立性验证模块相连,用于接收所述当前节点、暂存逻辑序列和独立性验证模块的独立性验证结果,并在所述暂存逻辑序列中,提取与所述当前节点相关度最大的节点作为当前节点的父节点,若存在两个或多个相关度最大的节点,则选取使贝叶斯网络树结构高度最高的节点作为当前节点的父节点,若所述相关度最大的节点为当前节点的子节点,则提取相关度的次大项节点作为当前节点的父节点;
叶子节点选择单元,所述叶子节点选择单元分别与所述第一当前节点提取单元、第二当前节点提取单元和父节点选择单元相连,用于接收所述逻辑序列、当前节点和父节点,并判断所述当前节点是否为所述逻辑序列的最后一个节点,
如果是,则将所述逻辑序列中没有子节点的节点作为叶子节点,
如果否,则转至第二当前节点提取单元。
如图5所示,所述贝叶斯网络构建系统还包括:
贝叶斯网络输出模块,所述贝叶斯网络输出模块与所述贝叶斯网络构建模块相连,用于接收并输出已构建完成的贝叶斯网络。
本实施例所公开的贝叶斯网络的构建系统,在前期统一参数格式后,根据领域知识确认各节点间的逻辑关系并排序,避免了数据对所述贝叶斯网络带来的影响,在后期利用自动化的方式,依据相关领域的逻辑关系,将各节点进行排序以获得根节点,并根据各节点间的相关度,确认节点间的网络结构关系,以此构建贝叶斯网络,减少了人工输入的麻烦,提高了智能化水平。
以上对本发明所提供的贝叶斯网络构建方法和系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。