[发明专利]一种基于MapReduce的大规模贝叶斯网并行推理方法有效
申请号: | 201310709499.9 | 申请日: | 2013-12-21 |
公开(公告)号: | CN103744878B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 岳昆;徐娟;方启宇;张骥先;田凯琳;刘惟一 | 申请(专利权)人: | 云南大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 昆明慧翔专利事务所53112 | 代理人: | 程韵波 |
地址: | 650091 云南省*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 mapreduce 大规模 贝叶斯网 并行 推理 方法 | ||
1.一种基于MapReduce的大规模贝叶斯网并行推理方法,其特征在于:按以下步骤完成:
(1) 大规模贝叶斯网的分布式存储
一个贝叶斯网是一个有向无环图,表示为G=(V, E),其中:V={A1, …, An}为节点的集合,n为G中节点的个数;E为有向边的集合;每个节点Ai(1≤i≤n)有一张条件概率参数表,简记为CPT,描述了Ai的父亲节点集Pa(Ai)对Ai的影响,包含Ai不同取值的条件概率P(ai|Pa(ai)),Pa(ai)为Pa(Ai)的值,为了能高效地进行大规模贝叶斯网的概率推理,首先将贝叶斯网存储到磁盘上,即保存以下两类信息:贝叶斯网中节点间的父子关系,以及各节点的条件概率参数表;
对于运行在Hadoop分布式文件系统HDFS之上的分布式数据库HBase,可通过Hadoop主节点(NameNode)来操作HBase,贝叶斯网的存储,就是将上述两类信息按照HBase的格式分布式地存储到Hadoop平台中的各数据节点(DataNode)上;
分别针对G中的每个节点Ai,将Ai、Pa(Ai)及Ai的条件概率参数表以<key, value>形式、作为一行存储到HBase的表TBN中,其中:Ai为行标识;key表示为“列族名=列族成员”形式,Ai Pa(Ai)为列族名,aiPa(ai)为列族成员;value为P(ai|Pa(ai)),对于每个节点Ai,基于MapReduce,使用Map函数并行地读取Ai的条件概率参数表中的每一个P(ai|Pa(ai))值,并存储为TBN中逻辑形式为(Ai || Ai Pa(Ai)=aiPa(ai) || P(ai|Pa(ai)))的一行,“||”为行标识、key和value的逻辑分隔符,从而,可通过Hadoop主节点来访问HBase,进而支持贝叶斯网的推理;
(2) 贝叶斯网的并行推理
以后验概率计算为典型代表的概率计算,是贝叶斯网推理的几类任务,其本质是查找各节点的条件概率参数表、并利用贝叶斯网中的条件独立性来简化联合概率分布的计算,贝叶斯网G之上的后验概率计算,就是计算给定证据节点值情形下查询节点值的概率,表示为P(Q=q|E=e),其中:E和Q分别为证据节点和查询节点,E∈V,Q∈V,E∩Q=φ;e和q分别为E和Q的值,
首先,分解概率推理任务,
根据 ,将推理任务转换为P(Q=q, E=e)和
P(E=e)这两个边缘概率分布的计算,P(Q=q, E=e)是针对q和e、以及不在Q和E中的那些隐节点(即V-Q-E)的所有可能取值组合情形下的联合概率分布之和,又根据G中的条件独立性将每个联合概率分布转换为一系列条件概率分布的乘积,通过查询HBase得到条件概率分布;P(E=e)是针对e、以及不在E中的那些隐节点(即V-E)的所有可能取值组合情形下的联合概率分布之和,
将q和e、以及V-Q-E中节点所有可能取值的组合,以文件形式存储到HDFS,记为TJDP,每个组合为一行;
接着,基于MapReduce查询HBase,并计算相关联合概率分布,
使用Map函数并行地查询TBN中的每一行r,依次考虑TJDP中的所有行,结果以<key, value>的形式写入HDFS的文件FJDP中,其中:key为TJDP中包含r的列族成员的行,value为r的value(即G中的某一条件概率值);使用Reduce函数对文件FJDP中的<key, value>对按key分组,并将各组具有相同key的所有value相乘,从而得到针对q和e、以及V-Q-E中节点各可能取值组合情形下的联合概率分布,
然后,计算边缘概率分布,得到后验概率分布,
根据P(Q=q, E=e)和P(E=e)所涉及证据节点值、查询节点值、及隐节点值的组合,将Reduce函数得到的结果加起来,从而得到边缘概率分布P(Q=q, E=e)和P(E=e),最终得到所需的后验概率分布,完成概率推理任务。
2.根据权利要求1所述的一种基于MapReduce的大规模贝叶斯网并行推理方法,其特征在于:所述方法是指“信用卡欺诈检测”的贝叶斯网推理方法,按以下步骤完成:
(1) 贝叶斯网的分布式存储
针对存储“信用卡欺诈检测”贝叶斯网的TBN中的节点F、G、J、A、S,使用Map函数并行地读取节点的条件概率参数表中的每一个值,并将其以<key, value>形式存储到TBN中,对于F,若有P(F=f1)=0.1和P(F=f2)=0.9,则存储到HBase数据库TBN表中的行以F作为行标识,列族为(F=f1 || 0.1)和(F=f2 || 0.9),
(2) 分解概率推理任务
若已知证据节点值(A=a4, J=j1),查询节点值F=f1,推理任务为:计算P(F=f1|A=a4, J=j1),由于,因此将该推理任务转换为P(F=f1, A=a4, J=j1)和P(A=a4, J=j1)这两个边缘概率分布的计算,对于P(F=f1, A=a4, J=j1)来说,G和S为隐节点,该边缘概率分布就是F=f1、A=a4、J=j1、以及G和S不同取值组合情形下的联合概率分布之和;对于P(A=a4, J=j1)来说,F、G和S为隐节点,该边缘概率分布就是A=a4、J=j1、以及F、G和S不同取值组合情形下的联合概率分布之和,将这些可能值的组合存储到文件TJDP中;
(3) 基于MapReduce查询HBase,并计算相关联合概率分布
使用Map函数并行地查询TBN中的每一行,并与TJDP中的所有行依次进行比较,对于TBN中的第一行,取出行标识为F的列族成员f1,可知TJDP中包含f1的行有a4 j1 f1 g1 s1、a4 j1 f1 g1 s2、a4 j1 f1 g2 s1和a4 j1 f1 g2 s2,因此将这些分别作为key,将TBN中当前行的概率值0.1作为value,以<key, value>形式将<a4 j1 f1 g1 s1, 0.1>、< a4 j1 f1 g1 s2, 0.1>、 <a4 j1 f1 g2 s1, 0.1>和<a4 j1 f1 g2 s2, 0.1>存储到FJDP中,以同样的方法,对于表1中的其他行,将相应的<key, value>存储到FJDP中,
使用Reduce函数对文件FJDP中key相同的value相乘,从而得到
P(a4 j1 f1 g1 s1)=0.0009,P(a4 j1 f1 g1 s2)=0.0013,P(a4 j1 f1 g2 s1)=0.0036,
P(a4 j1 f1 g2 s2)=0.0052,P(a4 j1 f2 g1 s1)=0.00036,P(a4 j1 f2 g1 s2)=0.00036,
P(a4 j1 f2 g2 s1)=0.03564,P(a4 j1 f2 g2 s2)=0.06237;
(4) 计算边缘概率分布,得到后验概率分布
根据P(F=f1, A=a4, J=j1)和P(A=a4, J=j1)所涉及证据节点值、查询节点值、及隐节点值的组合,将以上Reduce函数得到的结果加起来,得到
最终得到所需的后验概率分布
从而完成概率推理任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云南大学,未经云南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310709499.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种树脂过滤机
- 下一篇:一种用于链板带式真空物料过滤机的水平真空槽