基于贝叶斯网络推理的预测分析方法以及装置技术领域
本发明涉及自动化运维技术领域,尤其涉及一种基于贝叶斯网络推理的预测分析
方法以及装置。
背景技术
目前的自动化运维系统主要分为三大类:预备、配置管理和监控。其中,预备主要
是配置管理自动化的软件,可以在系统安装完毕后进行服务的自动更新;配置管理工具用
来设置参数或者开启一个新服务器上的服务;监控则提供了完善的服务器性能检测。然而,
现有的自动化运维系统只关注了过去发生的、现在发生的情况,以提供了相对自动的解决
方案。但是,现有的自动化运维系统的预测功能匮乏,无法有效地对未来的故障和风险进行
预测,也无法根据用户输入对系统性能进行预判。因此,如何对自动化运维系统中的未来的
故障和风险进进行预测,以扩展自动化运维系统的预测功能,已经成为亟待解决的问题。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的第一个目的在于提出一种基于贝叶斯网络推理的预测分析方法。
该方法通过将贝叶斯网络推理应用于自动化运维领域的预测中,扩展了自动化运维系统的
预测功能,属于独创性成果。
本发明的第二个目的在于提出一种基于贝叶斯网络推理的预测分析装置。
为达上述目的,本发明第一方面实施例的基于贝叶斯网络推理的预测分析方法,
所述方法应用于自动化运维系统,所述方法包括:从所述自动化运维系统的数据库中获取
自动化运维数据,其中,所述自动化运维数据包括节点关系表和节点数据表;根据所述节点
关系表生成网络拓扑图,并根据所述网络拓扑图和所述节点数据表进行样本文件的统计分
析,以生成第一贝叶斯网络;获取目标节点的限定条件,并根据所述目标节点的限定条件以
及所述第一贝叶斯网络进行推理分析,以得到所述第一贝叶斯网络中每个节点的区间置信
度,并输出所述每个节点中置信度最大的区间。
根据本发明实施例的基于贝叶斯网络推理的预测分析方法,可从自动化运维系统
的数据库中获取自动化运维数据,其中,自动化运维数据包括节点关系表和节点数据表,之
后,根据节点关系表生成网络拓扑图,并根据网络拓扑图和节点数据表进行样本文件的统
计分析,以生成第一贝叶斯网络,以便在实际应用中,获取目标节点的限定条件,并根据目
标节点的限定条件以及第一贝叶斯网络进行推理分析,以得到第一贝叶斯网络中每个节点
的区间置信度,并输出每个节点中置信度最大的区间,以方便用户决策。即通过将贝叶斯网
络推理应用于自动化运维领域的预测,属于独创性成果,扩展了自动化运维系统的预测功
能,即对于任意给定的网络拓扑结构及节点数据集,能够自动学习生成条件概率表,得到贝
叶斯网络,并根据贝叶斯网络得出的推理结果,返回所有节点的取值概率,方便用户决策,
基于贝叶斯网络推理进行预测分析,保证了预测结果的可靠性,且可提供有效建议,并可规
避风险带来的损失。
根据本发明的一个实施例,在所述根据所述目标节点的限定条件以及所述第一贝
叶斯网络进行推理分析之前,所述方法还包括:判断所述第一贝叶斯网络是否满足预设条
件,其中,所述预设条件包括所述第一贝叶斯网络中存在孤立节点,和/或,所述第一贝叶斯
网络的个数为多个;如果所述第一贝叶斯网络中存在孤立节点,和/或,所述第一贝叶斯网
络的个数为多个,则设置虚拟根节点,并将所述虚拟根节点与所述第一贝叶斯网络进行联
接以生成第二贝叶斯网络;其中,所述根据所述目标节点的限定条件以及所述第一贝叶斯
网络进行推理分析,以得到所述第一贝叶斯网络中每个节点的区间置信度,包括:根据所述
目标节点的限定条件以及所述第二贝叶斯网络进行推理分析,以得到所述第二贝叶斯网络
中每个节点的区间置信度。
根据本发明的一个实施例,所述根据所述网络拓扑图和所述节点数据表进行样本
文件的统计分析,以生成第一贝叶斯网络,包括:将所述节点数据表中的每个数据进行区间
划分,并将所述每个数据所对应的节点映射到对应的区间;从所述节点数据表中提取每个
节点对应的父节点数据,并统计所述父节点数据与子节点数据之间的一一对应情况以生成
条件概率表,其中,所述父节点数据与子节点数据均为经过区间划分后的数据;根据所述网
络拓扑图、所述每个节点对应的区间分界点以及所述条件概率表生成所述第一贝叶斯网
络。
根据本发明的一个实施例,所述将所述节点数据表中的每个数据进行区间划分,
包括:确定所述节点数据表中每个数据的类型;当所述每个数据的类型为常数时,指定所述
每个数据对应的区间为第一目标区间;当所述每个数据的类型不为常数时,指定所述每个
数据对应的区间为第二目标区间。
其中,在本发明的一个实施例中,所述第一目标区间为(0,1);所述第二目标区间
的范围覆盖整个实数区间。
根据本发明的一个实施例,所述统计所述父节点数据与子节点数据之间的一一对
应情况以生成条件概率表,包括:S1,将父节点对应的第i个区间作为前提条件,其中,i为正
整数,且0<i≤所述父节点对应的区间的总个数;S2,统计子节点在每个区间上的数据出现
次数总和作为分子集;S3,将所述子节点在所有区间上的数据出现次数总和进行累加作为
分母;S4,将所述分子集中的每个分子与所述分母进行相除,以得到所述子节点在所述父节
点对应的第i个区间情况下的条件概率;S5,令i=i+1,并重复执行所述步骤S1-S5,直至i为
所述父节点对应的区间的总个数;S6,将所述子节点在所述父节点的每个区间情况下的条
件概率进行统计以生成所述条件概率表。
其中,在本发明的一个实施例中,所述虚拟根节点的取值为常数。
根据本发明的一个实施例,所述将所述虚拟根节点与所述第一贝叶斯网络进行联
接以生成第二贝叶斯网络,包括:确定所述第一贝叶斯网络中所有入度为零的节点;将所述
所有入度为零的节点对应的父节点统一设定为所述虚拟根节点,以得到所述第二贝叶斯网
络。
为达上述目的,本发明第二方面实施例的基于贝叶斯网络推理的预测分析装置,
所述装置应用于自动化运维系统,所述装置包括:第一获取模块,用于从所述自动化运维系
统的数据库中获取自动化运维数据,其中,所述自动化运维数据包括节点关系表和节点数
据表;第一生成模块,用于根据所述节点关系表生成网络拓扑图,并根据所述网络拓扑图和
所述节点数据表进行样本文件的统计分析,以生成第一贝叶斯网络;第二获取模块,用于获
取目标节点的限定条件;推理分析模块,用于根据所述目标节点的限定条件以及所述第一
贝叶斯网络进行推理分析,以得到所述第一贝叶斯网络中每个节点的区间置信度,并输出
所述每个节点中置信度最大的区间。
根据本发明实施例的基于贝叶斯网络推理的预测分析装置,可通过第一获取模块
从自动化运维系统的数据库中获取自动化运维数据,其中,自动化运维数据包括节点关系
表和节点数据表,第一生成模块根据节点关系表生成网络拓扑图,并根据网络拓扑图和节
点数据表进行样本文件的统计分析,以生成第一贝叶斯网络,以便在实际应用中,第二获取
模块获取目标节点的限定条件,推理分析模块根据目标节点的限定条件以及第一贝叶斯网
络进行推理分析,以得到第一贝叶斯网络中每个节点的区间置信度,并输出每个节点中置
信度最大的区间,以方便用户决策。即通过将贝叶斯网络推理应用于自动化运维领域的预
测,属于独创性成果,扩展了自动化运维系统的预测功能,即对于任意给定的网络拓扑结构
及节点数据集,能够自动学习生成条件概率表,得到贝叶斯网络,并根据贝叶斯网络得出的
推理结果,返回所有节点的取值概率,方便用户决策,基于贝叶斯网络推理进行预测分析,
保证了预测结果的可靠性,且可提供有效建议,并可规避风险带来的损失。
根据本发明的一个实施例,所述装置还包括:判断模块,用于在所述推理分析模块
根据所述目标节点的限定条件以及所述第一贝叶斯网络进行推理分析之前,判断所述第一
贝叶斯网络是否满足预设条件,其中,所述预设条件包括所述第一贝叶斯网络中存在孤立
节点,和/或,所述第一贝叶斯网络的个数为多个;设置模块,用于在所述判断模块判断所述
第一贝叶斯网络中存在孤立节点,和/或,所述第一贝叶斯网络的个数为多个时,设置虚拟
根节点;第二生成模块,用于将所述虚拟根节点与所述第一贝叶斯网络进行联接以生成第
二贝叶斯网络;其中,所述推理分析模块具体用于:根据所述目标节点的限定条件以及所述
第二贝叶斯网络进行推理分析,以得到所述第二贝叶斯网络中每个节点的区间置信度。
根据本发明的一个实施例,所述第一生成模块包括:划分单元,用于将所述节点数
据表中的每个数据进行区间划分,并将所述每个数据所对应的节点映射到对应的区间;第
一生成单元,用于从所述节点数据表中提取每个节点对应的父节点数据,并统计所述父节
点数据与子节点数据之间的一一对应情况以生成条件概率表,其中,所述父节点数据与子
节点数据均为经过区间划分后的数据;第二生成单元,用于根据所述网络拓扑图、所述每个
节点对应的区间分界点以及所述条件概率表生成所述第一贝叶斯网络。
根据本发明的一个实施例,所述划分单元具体用于:确定所述节点数据表中每个
数据的类型;当所述每个数据的类型为常数时,指定所述每个数据对应的区间为第一目标
区间;当所述每个数据的类型不为常数时,指定所述每个数据对应的区间为第二目标区间。
根据本发明的一个实施例,所述第一目标区间为(0,1);所述第二目标区间的范围
覆盖整个实数区间。
根据本发明的一个实施例,所述第一生成单元具体用于:S1,将父节点对应的第i
个区间作为前提条件,其中,i为正整数,且0<i≤所述父节点对应的区间的总个数;S2,统计
子节点在每个区间上的数据出现次数总和作为分子集;S3,将所述子节点在所有区间上的
数据出现次数总和进行累加作为分母;S4,将所述分子集中的每个分子与所述分母进行相
除,以得到所述子节点在所述父节点对应的第i个区间情况下的条件概率;S5,令i=i+1,并
重复执行所述步骤S1-S5,直至i为所述父节点对应的区间的总个数;S6,将所述子节点在所
述父节点的每个区间情况下的条件概率进行统计以生成所述条件概率表。
根据本发明的一个实施例,所述虚拟根节点的取值为常数。
根据本发明的一个实施例,,所述第二生成模块包括:确定单元,用于确定所述第
一贝叶斯网络中所有入度为零的节点;生成单元,用于将所述所有入度为零的节点对应的
父节点统一设定为所述虚拟根节点,以得到所述第二贝叶斯网络。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变
得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得
明显和容易理解,其中,
图1是一个简单的贝叶斯网络的示例图;
图2是根据本发明一个实施例的基于贝叶斯网络推理的预测分析方法的流程图;
图3是根据本发明一个实施例的生成条件概率表的流程图;
图4是根据本发明一个实施例的第一贝叶斯网络的示例图;
图5是根据本发明一个具体实施例的基于贝叶斯网络推理的预测分析方法的流程
图;
图6是根据本发明一个实施例的第二贝叶斯网络的示例图;
图7是根据本发明一个实施例的基于贝叶斯网络推理的预测分析装置的结构示意
图;
图8是根据本发明一个实施例的第一生成模块的结构示意图;
图9是根据本发明一个具体实施例的基于贝叶斯网络推理的预测分析装置的结构
示意图;
图10是根据本发明一个实施例的第二生成模块的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终
相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
为了使得本领域的技术人员能够更加方便的了解本发明,首先,可先对贝叶斯网
络的理论进行简单描述。
需要说明的是,贝叶斯网络是立足于贝叶斯理论的重要成果,贝叶斯理论的基本
内容是:基于先验概率和条件概率,得出后验概率。其中,条件概率可理解为:事件A在另外
一个事件B已经发生条件下的发生概率,表示为P(A|B),读作“在B条件下A的概率”;联合概
率:两个事件共同发生的概率,表示为P(A,B),读作A与B的联合概率,其中,条件概率的计算
公式为:先验概率可理解为:事件A或者事件B发生的概率,A的边缘概率
表示为P(A),B的边缘概率表示为P(B)。边缘概率是这样得到的:在联合概率中,将最终结果
中不需要的那些事件合并成其事件的全概率而消失(其中,对离散随机变量用求和得全概
率,对连续随机变量用积分得全概率),这称为边缘化(marginalization)。后验概率可理解
为:事件B发生之后,对事件A的发生概率重新评估,称为A的后验概率,用P(A|B)表示,其中,
后验概率由贝叶斯定理推理出,其公式为:
此外,贝叶斯网络(Bayesiannetwork)又称信念网络(Belief Network),或有向无
环图模型(directedacyclicgraphicalmodel。贝叶斯网络是一种概率图型模型,于1985年
由Judea Pearl首先提出。贝叶斯网络模拟人类推理过程中因果关系的不确定性处理模型,
其网络拓朴结构是一个有向无环图(DAG)。
贝叶斯网络的有向无环图中的节点表示随机变量{X1,X2,...,Xn},它们可以是可
观察到的变量,或隐变量、未知参数等。认为有因果关系(或非条件独立)的变量或命题则用
箭头来连接(换言之,连接两个节点的箭头代表此两个随机变量是具有因果关系,或非条件
独立)。若两个节点间以一个单箭头连接在一起,则表示其中一个节点是“因(parents)”,另
一个是“果(children)”,两节点就会产生一个条件概率值。
例如,假设节点A直接影响到节点B,即A→B,则用从A指向B的箭头建立结点A到结
点B的有向弧(A,B),权值(即连接强度)用条件概率P(B|A)来表示。
令G=(I,E)表示一个有向无环图(DAG),其中I代表图形中所有的节点的集合,而E
代表有向连接线段的集合,且令X=Xi,(i∈I)为其有向无环图中的某一节点i所代表的随
机变量,若节点X的联合概率可以表示成:
则称X为相对于一有向无环图G的贝叶斯网络,其中,pa(i)表示节点i之“因”。此
外,对于任意的随机变量,其联合概率可由各自的局部条件概率分配相乘而得出:
p(x1,...,xk)=p(xk|x1,...,xK-1)...p(x2|x1)p(x1)。
图1为一个简单的贝叶斯网络的示例图。如图1所示,因为节点A导致节点B,节点A
和B导致C,所以有以下联合概率:P(A,B,C)=P(C|A,B)P(B|A)P(A),其中,P(C|A,B)、P(B|A)
预先统计得到并存储在条件概率表中。现在开始计算每个节点的概率:
(1)假设P(A)已知,则根据节点B的条件概率表直接得到其后验概率:P(B|A);根据
联合概率推出节点C的后验概率:
(2)假设P(C)已知,那么节点A的后验概率:其
中P(A),P(C)为先验概率且已知,而P(C|A)可从节点C的条件概率表读取;节点B的后验概
率:原理同节点A。
因此,根据以上的分析可得,贝叶斯网络推理最重要的两个步骤:生成条件概率
表、由先验概率和条件概率得到后验概率。
为此,本发明基于上述理论基础,提出了一种可用于自动化运维系统中的基于贝
叶斯网络推理的预测分析方法,即通过将贝叶斯网络推理应用于自动化运维领域的预测,
这样可以使得当系统一个指标发生变化时,能够预测出来未来其他指标相应的变化情况,
从而可以方便地进行流量预测、故障预防、设备调度等,从而优化服务架构、保证性能最优,
属于独创性成果。具体地,下面参考附图描述根据本发明实施例的基于贝叶斯网络推理的
预测分析方法以及装置。
图2是根据本发明一个实施例的基于贝叶斯网络推理的预测分析方法的流程图。
需要说明的是,本发明实施例的基于贝叶斯网络推理的预测分析方法可应用于自动化运维
系统中,自动化运维系统主要分为三大类:预备、配置管理和监控,其中,预备主要是配置管
理自动化的软件,可以在系统安装完毕后进行服务的自动更新;配置管理工具用来设置参
数或者开启一个新服务器上的服务;监控则提供了完善的服务器性能检测。
如图2所示,该基于贝叶斯网络推理的预测分析方法可以包括:
S210,从自动化运维系统的数据库中获取自动化运维数据,其中,自动化运维数据
包括节点关系表和节点数据表。
可以理解,自动化运维系统中具有数据库(如第一数据库),该数据库存储有多张
表,该表中的数据即为自动化运维数据。作为一种示例,该自动化运维系统的数据库中包括
两张表:节点关系表和节点数据表。其中,节点关系表可包括节点及其父节点;节点数据表
包含以下性能指标:sql执行的平均响应时间(ART_sql)、CPU使用时间(CPU_used)、内存使
用情况(Memory_uesd)、机器健康状况(Health)、交换率(SwapPercent)、吞吐量
(ThroughPut)、物理设备利用率(PhysicalPercent)、设备可用性(Availability)、http平
均响应时间(ART_http)、堆栈利用率(HeapPercent)、活跃线程数(ActiveThreadsNum)、应
用性能指数(Apdex)、在线用户总数(OnlineUserNum_total)、空闲磁盘情况(DiskFree)等。
具体地,可通过数据库的查询方式从自动化运维系统的数据库中读取自动化运维
数据,其中,该自动化运维数据可包括节点关系表和节点数据表。
S220,根据节点关系表生成网络拓扑图,并根据网络拓扑图和节点数据表进行样
本文件的统计分析,以生成第一贝叶斯网络。
可以理解,数据库包含服务器采集到的实时数据文件和经过学习生成的网络拓扑
文件。为此,在本步骤中,可根据节点关系表中的节点及其父节点,从中学习出至少一个有
向图,该有向图即为网络拓扑图,并根据网络拓扑图和节点数据表进行样本文件的统计分
析,生成用于预测分析的第一贝叶斯网络。
具体而言,在本发明的一个实施例中,上述根据网络拓扑图和节点数据表进行样
本文件的统计分析,以生成第一贝叶斯网络的具体实现过程可如下:可将节点数据表中的
每个数据进行区间划分,并将每个数据所对应的节点映射到对应的区间,之后,可从节点数
据表中提取每个节点对应的父节点数据,并统计父节点数据与子节点数据之间的一一对应
情况以生成条件概率表,其中,父节点数据与子节点数据均为经过区间划分后的数据,最
后,根据网络拓扑图、每个节点对应的区间分界点以及条件概率表生成第一贝叶斯网络。
具体地,可对节点数据表中的每个数据进行离散化处理,即将这些自动化运维数
据进行区间划分,并将每个数据点映射到对应区间,之后,可将这些自动化运维数据中每个
节点变量对应的父节点数据提取出来,并统计父子节点数据的一一对应情况以生成条件概
率表,其中,可以理解,此处的父子节点数据均为经过区间化处理的数据。最后,得到所有节
点的信息,其中该信息可包括如下信息:节点名称(name)、节点区间分界点(levels)、节点
父节点(parents)、条件概率表(probs)、节点修改时间(whenchanged),并将这些节点的信
息对应的添加到网络拓扑图中,以得到第一贝叶斯网络,并将该第一贝叶斯网络写入到另
一个数据库(如第二数据库),以便后续进行推理分析阶段的使用。例如,以节点数据表包含
以下性能指标:(ART_sql)、CPU使用时间(CPU_used)、内存使用情况(Memory_uesd)、机器健
康状况(Health)、交换率(SwapPercent)、吞吐量(ThroughPut)、物理设备利用率
(PhysicalPercent)、设备可用性(Availability)、(ART_http)、堆栈利用率
(HeapPercent)、活跃线程数(ActiveThreadsNum)、应用性能指数(Apdex)、在线用户总数
(OnlineUserNum_total)、空闲磁盘情况(DiskFree)等为例,根据网络拓扑图和该节点数据
表进行样本文件的统计分析而生成的第一贝叶斯网络,可如图4所示。
作为一种示例,上述将节点数据表中的每个数据进行区间划分的具体实现过程可
如下:可确定节点数据表中每个数据的类型,并在每个数据的类型为常数时,指定每个数据
对应的区间为第一目标区间,以及在每个数据的类型不为常数时,指定每个数据对应的区
间为第二目标区间。
可以理解,贝叶斯网络的参数学习中,通常假定网络中所有变量是离散变量或是
呈高斯分布的连续变量,但是现实世界中存在许多并不服从高斯分布的连续变量,因此在
参数学习过程中,需要考虑对连续变量进行离散化,该连续变量离散化是指:将连续变量的
取值空间划分为多个取值区间,从而将连续变量转换为离散变量进行处理。本发明通过对
实数域进行区间划分,将数据映射到一个一个区间上,从而实现了离散化处理。为此,作为
一种示例,在本步骤中,该第一目标区间可为(0,1),该第二目标区间的范围可覆盖整个实
数区间(即第二目标区间为(负无穷,正无穷)),其中,该第一目标区间适用于取值为常数的
节点,第二目标区间适用于贝叶斯网中取值非常数的节点。
也就是说,可先确定节点数据表中每个数据的类型,并判断该类型是否常数,若
是,则将该数据的区间指定为第一区间,如(0,1),如果该数据的类型不是常数,则将该数据
的区间的范围覆盖整个实数区间,即该数据的区间可以是整个实数中任意一个区间。
作为一种示例,如图3所示,上述统计父节点数据与子节点数据之间的一一对应情
况以生成条件概率表的具体实现过程可包括如下步骤:
S310,将父节点对应的第i个区间作为前提条件,其中,i为正整数,且0<i≤父节点
对应的区间的总个数。
S320,统计子节点在每个区间上的数据出现次数总和作为分子集。
S330,将子节点在所有区间上的数据出现次数总和进行累加作为分母。
S340,将分子集中的每个分子与分母进行相除,以得到子节点在父节点对应的第i
个区间情况下的条件概率。
S350,令i=i+1,判断i是否等于父节点对应的区间的总个数,若否,则重复执行步
骤S310-S350,若是,执行下述步骤S360。
S360,将子节点在父节点的每个区间情况下的条件概率进行统计以生成条件概率
表。
由此,通过计算每个子节点在其对应的父节点的每个区间情况下的条件概率,得
到子节点完整的条件概率表,以便后续根据该每个子节点在其对应的父节点的每个区间情
况下的条件概率,来对自动化运维系统进行预测分析。
S230,获取目标节点的限定条件,并根据目标节点的限定条件以及第一贝叶斯网
络进行推理分析,以得到第一贝叶斯网络中每个节点的区间置信度,并输出每个节点中置
信度最大的区间。
作为一种示例,在对自动化运维系统进行预测分析时,可从数据库(如第二数据
库)中读取第一贝叶斯网络,并根据该第一贝叶斯网络建立联接树,并获取目标节点的限定
条件,其中,该目标节点的限定条件可以是用户输入的,并找到该目标节点的限定条件对应
的区间,并更改该区间的取值概率为1,并将该目标节点的其他区间取值为0。之后,根据更
改过区间取值概率的节点,基于贝叶斯公式,重新计算该联接树中所有与该更改过区间取
值概率的节点相连的节点的概率,其中,该概率可称之为区间置信度(belief),可以理解,
与该更改过区间取值概率的节点直接相连或间接相连的节点都将受影响。最后,在数据库
(如第二数据库)添加belief字段,并将将每个节点的置信度写回到此字段下,并返回给用
户,同时将每个节点置信度最大的区间也一并返回给用户,方便用户的决策。
例如,当自动化运维系统中的某一个指标变化时,可获取用户输入的该指标(如上
述的目标节点)的变化情况(如上述的限定条件),并读取第一贝叶斯网络,并基于第一贝叶
斯网络,根据该指标的变化情况即可预测出未来其他指标相应的变化情况,从而可以方便
地进行流量预测、故障预防、设备调度等等,从而优化服务架构、保证性能最优。
根据本发明实施例的基于贝叶斯网络推理的预测分析方法,可从自动化运维系统
的数据库中获取自动化运维数据,其中,自动化运维数据包括节点关系表和节点数据表,之
后,根据节点关系表生成网络拓扑图,并根据网络拓扑图和节点数据表进行样本文件的统
计分析,以生成第一贝叶斯网络,以便在实际应用中,获取目标节点的限定条件,并根据目
标节点的限定条件以及第一贝叶斯网络进行推理分析,以得到第一贝叶斯网络中每个节点
的区间置信度,并输出每个节点中置信度最大的区间,以方便用户决策。即通过将贝叶斯网
络推理应用于自动化运维领域的预测,属于独创性成果,扩展了自动化运维系统的预测功
能,即对于任意给定的网络拓扑结构及节点数据集,能够自动学习生成条件概率表,得到贝
叶斯网络,并根据贝叶斯网络得出的推理结果,返回所有节点的取值概率,方便用户决策,
基于贝叶斯网络推理进行预测分析,保证了预测结果的可靠性,且可提供有效建议,并可规
避风险带来的损失。
可以理解,由于自动化运维数据的多种多样,可能会生成多个贝叶斯网络,即在根
据网络拓扑图和节点数据表进行样本文件的统计分析,以生成贝叶斯网络时,可能会出现
多个网络,或者出现孤立节点。而现有技术中,在进行预测分析式,如果出现多个贝叶斯网
络,则通常通过以下方式进行处理:根据多个贝叶斯网络建立多棵联接树,并对每棵联接树
进行标识,之后,在接收到用户输入的目标节点的限定条件时,会先定位该目标节点的限定
条件位于哪个贝叶斯网络,并在定位到该目标节点的限定条件位于哪个贝叶斯网络时,在
该定位到的贝叶斯网络中进行推理分析。然而,当网络中存在大量孤立节点、多个网络、或
者输入变量分布在不同网络时,上述处理方式会导致查询时间成指数增长,导致效率低下。
基于上述存在的问题,本发明对此进行了改进以解决上述问题。具体如下面图5所
示的具体描述。具体地,图5是根据本发明一个具体实施例的基于贝叶斯网络推理的预测分
析方法的流程图。
为了简化多网络推理流程,提高推理预测的效率,在本发明的实施例中,可通过设
置虚拟根节点,来解决多个贝叶斯网络同时推理的问题。具体地,如图5所示,该基于贝叶斯
网络推理的预测分析方法可以包括:
S510,从自动化运维系统的数据库中获取自动化运维数据,其中,自动化运维数据
包括节点关系表和节点数据表。
S520,根据节点关系表生成网络拓扑图,并根据网络拓扑图和节点数据表进行样
本文件的统计分析,以生成第一贝叶斯网络。
S530,判断第一贝叶斯网络是否满足预设条件,其中,预设条件包括第一贝叶斯网
络中存在孤立节点,和/或,第一贝叶斯网络的个数为多个。
需要说明的是,在本发明的实施例中,如果判断第一贝叶斯网络不满足预设条件,
即该第一贝叶斯网络不存在孤立节点,且该第一贝叶斯网络的个数为一个,则可直接执行
下述步骤S550。
S540,如果第一贝叶斯网络中存在孤立节点,和/或,第一贝叶斯网络的个数为多
个,则设置虚拟根节点,并将虚拟根节点与第一贝叶斯网络进行联接以生成第二贝叶斯网
络。
其中,在本发明的一个实施例中,该虚拟根节点的取值可为常数。也就是说,在判
断第一贝叶斯网络中存在孤立节点,和/或,第一贝叶斯网络的个数为多个时,可在该第一
贝叶斯网络中添加一个独立的虚拟根节点,该虚拟根节点的取值固定为某一常数。可以理
解,由于该虚拟根节点的取值为常数,所以该虚拟根节点在贝叶斯推理中并没有实质性影
响,也就是说,该虚拟根节点并不会影响预测结果。
作为一种示例,上述将虚拟根节点与第一贝叶斯网络进行联接以生成第二贝叶斯
网络的具体实现过程可如下:确定第一贝叶斯网络中所有入度为零的节点,并将所有入度
为零的节点对应的父节点统一设定为虚拟根节点,以得到第二贝叶斯网络。也就是说,可将
该虚拟根节点变成整个网络联接树的根节点,以使得将多个贝叶斯网络及孤立节点联接为
一整个贝叶斯网络,该整个贝叶斯网络即为第二贝叶斯网络,例如,如图6所示,为将虚拟根
节点1与第一贝叶斯网络进行联接后而得到的第二贝叶斯网络的示例图。
可以理解,联结树算法是目前计算速度最快、应用最广的贝叶斯网络精确推理算
法(其中,联接树算法只是贝叶斯网络推理算法的一种,此外还有其他算法(基于高斯分布
的贝叶斯算法等),对此本发明不做具体限定)。该联结树算法首先将贝叶斯网络转换为一
个联结树(该联结树是一个无向树,每个树节点是无向图的称为团的最大全连通子图),然
后通过消息传递来进行计算,消息会依次传遍联结树的每个节点,最终使联结树满足全局
一致性。为此,可以理解,在本步骤中,设置虚拟根节点的意义在于:联接树必须满足变量连
通性,必须满足变量连通性,即包含同一变量的所有团所导出的子图必须是连通的。但如果
网络拓扑图中存在孤立节点或者独立子图,那么需要首先判断用户输入条件属于哪个子图
的节点,然后才能在该子图推理;而本发明通过加入这个虚拟根节点后,无需判断网络,可
直接得到所有节点的结果,大大降低复杂度;此外,由于该虚拟根节点取值为常数,对推理
结果的正确性无影响。
S550,获取目标节点的限定条件,并根据目标节点的限定条件以及第二贝叶斯网
络进行推理分析,以得到第二贝叶斯网络中每个节点的区间置信度,并输出每个节点中置
信度最大的区间。
作为一种示例,在对自动化运维系统进行预测分析时,可根据该第二贝叶斯网络
建立联接树,并获取目标节点的限定条件,其中,该目标节点的限定条件可以是用户输入
的,并找到该目标节点的限定条件对应的区间,并更改该区间的取值概率为1,并将该目标
节点的其他区间取值为0。之后,根据更改过区间取值概率的节点,基于贝叶斯公式,重新计
算该联接树中所有与该更改过区间取值概率的节点相连的节点的概率,其中,该概率可称
之为区间置信度(belief),可以理解,与该更改过区间取值概率的节点直接相连或间接相
连的节点都将受影响。最后,在数据库(如第二数据库)添加belief字段,并将将每个节点的
置信度写回到此字段下,并返回给用户,同时将每个节点置信度最大的区间也一并返回给
用户,方便用户的决策。
可以理解,在本发明的一个实施例中,上述步骤S530和步骤S540也可在获取目标
节点的限定条件之后,进行推理分析之前执行。
根据本发明实施例的基于贝叶斯网络推理的预测分析方法,可判断第一贝叶斯网
络是否满足预设条件,并在第一贝叶斯网络中存在孤立节点,和/或,第一贝叶斯网络的个
数为多个时,设置虚拟根节点,并将虚拟根节点与第一贝叶斯网络进行联接以生成第二贝
叶斯网络,根据目标节点的限定条件以及第二贝叶斯网络进行推理分析,以得到第二贝叶
斯网络中每个节点的区间置信度,并输出每个节点中置信度最大的区间。即通过设置虚拟
根节点,来解决多个贝叶斯网络同时推理的问题,简化了多网络推理流程,提高了推理效
率。
与上述几种实施例提供的基于贝叶斯网络推理的预测分析方法相对应,本发明的
一种实施例还提供一种基于贝叶斯网络推理的预测分析装置,由于本发明实施例提供的基
于贝叶斯网络推理的预测分析装置与上述几种实施例提供的基于贝叶斯网络推理的预测
分析方法相对应,因此在前述基于贝叶斯网络推理的预测分析方法的实施方式也适用于本
实施例提供的基于贝叶斯网络推理的预测分析装置,在本实施例中不再详细描述。图7是根
据本发明一个实施例的基于贝叶斯网络推理的预测分析装置的结构示意图。需要说明的
是,本发明实施例的基于贝叶斯网络推理的预测分析装置可应用于自动化运维系统中。
如图7所示,该基于贝叶斯网络推理的预测分析装置可以包括:第一获取模块710、
第一生成模块720、第二获取模块730和推理分析模块740。
具体地,第一获取模块710可用于从自动化运维系统的数据库中获取自动化运维
数据,其中,自动化运维数据包括节点关系表和节点数据表。
第一生成模块720可用于根据节点关系表生成网络拓扑图,并根据网络拓扑图和
节点数据表进行样本文件的统计分析,以生成第一贝叶斯网络。
具体而言,在本发明的一个实施例中,如图8所示,该第一生成模块720可包括划分
单元721、第一生成单元722和第二生成单元723。其中,划分单元721用于将节点数据表中的
每个数据进行区间划分,并将每个数据所对应的节点映射到对应的区间。第一生成单元722
用于从节点数据表中提取每个节点对应的父节点数据,并统计父节点数据与子节点数据之
间的一一对应情况以生成条件概率表,其中,父节点数据与子节点数据均为经过区间划分
后的数据。第二生成单元723用于根据网络拓扑图、每个节点对应的区间分界点以及条件概
率表生成第一贝叶斯网络。
作为一种示例,该划分单元721将节点数据表中的每个数据进行区间划分的具体
实现过程可如下:确定节点数据表中每个数据的类型;当每个数据的类型为常数时,指定每
个数据对应的区间为第一目标区间;当每个数据的类型不为常数时,指定每个数据对应的
区间为第二目标区间。其中,在本发明的实施例中,第一目标区间为(0,1);第二目标区间的
范围覆盖整个实数区间。
作为一种示例,该第一生成单元722统计父节点数据与子节点数据之间的一一对
应情况以生成条件概率表的具体实现过程可如下:S1,将父节点对应的第i个区间作为前提
条件,其中,i为正整数,且0<i≤父节点对应的区间的总个数;S2,统计子节点在每个区间上
的数据出现次数总和作为分子集;S3,将子节点在所有区间上的数据出现次数总和进行累
加作为分母;S4,将分子集中的每个分子与分母进行相除,以得到子节点在父节点对应的第
i个区间情况下的条件概率;S5,令i=i+1,并重复执行步骤S1-S5,直至i为父节点对应的区
间的总个数;S6,将子节点在父节点的每个区间情况下的条件概率进行统计以生成条件概
率表。
第二获取模块730可用于获取目标节点的限定条件。
推理分析模块740可用于根据目标节点的限定条件以及第一贝叶斯网络进行推理
分析,以得到第一贝叶斯网络中每个节点的区间置信度,并输出每个节点中置信度最大的
区间。
进一步地,在本发明的一个实施例中,如图9所示,该基于贝叶斯网络推理的预测
分析装置还可包括:判断模块750、设置模块760和第二生成模块770。
其中,判断模块750可用于在推理分析模块740根据目标节点的限定条件以及第一
贝叶斯网络进行推理分析之前,判断第一贝叶斯网络是否满足预设条件,其中,预设条件包
括第一贝叶斯网络中存在孤立节点,和/或,第一贝叶斯网络的个数为多个。
设置模块760可用于在判断模块750判断第一贝叶斯网络中存在孤立节点,和/或,
第一贝叶斯网络的个数为多个时,设置虚拟根节点。其中,该虚拟根节点的取值为常数。
第二生成模块770可用于将虚拟根节点与第一贝叶斯网络进行联接以生成第二贝
叶斯网络。
其中,在本发明的实施例中,推理分析模块740具体用于:根据目标节点的限定条
件以及第二贝叶斯网络进行推理分析,以得到第二贝叶斯网络中每个节点的区间置信度。
作为一种示例,如图10所示,该第二生成模块770可包括确定单元771和生成单元
772。其中,确定单元771用于确定第一贝叶斯网络中所有入度为零的节点。生成单元772用
于将所有入度为零的节点对应的父节点统一设定为虚拟根节点,以得到第二贝叶斯网络。
根据本发明实施例的基于贝叶斯网络推理的预测分析装置,可通过第一获取模块
从自动化运维系统的数据库中获取自动化运维数据,其中,自动化运维数据包括节点关系
表和节点数据表,第一生成模块根据节点关系表生成网络拓扑图,并根据网络拓扑图和节
点数据表进行样本文件的统计分析,以生成第一贝叶斯网络,以便在实际应用中,第二获取
模块获取目标节点的限定条件,推理分析模块根据目标节点的限定条件以及第一贝叶斯网
络进行推理分析,以得到第一贝叶斯网络中每个节点的区间置信度,并输出每个节点中置
信度最大的区间,以方便用户决策。即通过将贝叶斯网络推理应用于自动化运维领域的预
测,属于独创性成果,扩展了自动化运维系统的预测功能,即对于任意给定的网络拓扑结构
及节点数据集,能够自动学习生成条件概率表,得到贝叶斯网络,并根据贝叶斯网络得出的
推理结果,返回所有节点的取值概率,方便用户决策,基于贝叶斯网络推理进行预测分析,
保证了预测结果的可靠性,且可提供有效建议,并可规避风险带来的损失。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能
理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第
一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”
的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示
例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任
一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技
术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结
合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括
一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部
分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺
序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明
的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用
于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供
指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执
行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设
备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传
输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装
置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电
连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器
(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存
储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的
介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其
他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述
实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件
或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下
列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路
的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场
可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步
骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介
质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模
块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如
果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机
可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描
述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限
制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变
型。