基于归并聚类的并行化频繁概率子图搜索方法_2

文档序号:9597881阅读:来源:国知局
遗 漏地识别出所有给定节点大小的概率子图。采用基于Spark并行框架的实现结构,将得 到的概率子图存储到HDFS文件系统,然后将所有概率子图文件加载到弹性分布式数据集 (Resilient Distributed Datasets,RDD),以便后续处理。
[0033] 步骤2,计算概率子图的节点电压序列。首先将概率子图的邻接矩阵转换成对应的 伴随电路,然后添加一个参考节点,通过节点电压法对整个伴随电路施加全激励,得到节点 电压序列。其过程如图1所示。
[0034] 考虑一个具有4个节点Vl、v2, ^和v 4的概率子图g (图1-A),其对应的邻接矩阵 如图1-B所示,首先将概率图g的每一条边均用其概率p(即p e (〇,1))的倒数l/p表示 电阻值(图1-C);接着,增加一个参考节点v5,将新增的节点与原图中每个节点之间增加一 个阻值为1/2的电阻,即电导为2,得到概率子图g的伴随电路N ;然后,以新增节点v5为参 考节点,对伴随电路N施加全激励(即在节点v5与其他任意节点之间施加相同的电流源I s, 电流值均选为1A,在v5与其余4个节点之间电流都是从节点v 5指向其余节点,如图1-D所 示);最后,根据U/R= 1(其中R= 1/P)得出概率子图g的节点电压序列U。
[0035] 步骤3,归并聚类阶段。采用基于Spark框架的实现结构,对每个Spark计算节点 中的概率子图均进行归并聚类计算,得到若干概率子图同构类,直到每个Spark计算节点 均收敛(即聚类个数不再变化),再将结果汇总,并对汇总的概率子图同构类再进行一次归 并聚类,其过程如图2所示。
[0036] 在上述过程中的归并聚类过程如图3中所示,包括如下子步骤:
[0037] 1)聚类初始化:假设共有η个概率子图构成概率子图集G = {gl,g2,…,gn},则先 让其中每个概率子图自成一类,它们作为η个聚类树的η个叶子节点,而概率子图的标号集 Rg= {1,2,…,η},并设置阈值参数ε和Θ。
[0038] 2)归并聚类:假设聚类总数L,而flag用来标识归并聚类过程中是否有聚合操作, 其初始值为〇 ;对于从i = 1到i = L/2的概率子图,计算&和g i^是否同构(采用比较 间隔步长为L/2,每层聚类后将打乱当前的图类序列,以避免在每层聚类时,由于两两比较 的类别没有发生变化而产生聚类的效果较差的情况)。具体步骤和计算公式如下:
[0039] (a)首先根据两个概率子图&、^4/2的节点电压序列U和U',求出两个概率子图 的距离矩阵D,具体计算公式如下。例如,求矩阵A和矩阵B的距离矩阵DAB,其计算公式如 下:
[0041] (b)再利用匈牙利算法处理距离矩阵D,得出概率子图^和g 1+U2的节点映射关系 〈map,map^ >,同时计算出两个节点序列s和V的错配置VMval,其计算公式如下:
[0043] (c)接着根据映射关系〈map, map ' >调整两个概率子图gp gi+l72的邻 接矩阵d和0-,然后计算调整后d和0-之间的错配置PMval,其计算公式如下:
?其中vjP 分别表示在邻接矩阵d和d'中,位于第i行、第j 列的元素。
[0044] (d)设置同构标志iso的初值为0,根据上述计算结果进行判断,若VMval〈 ε且 PMval〈 Θ,则将同构标志iS0置为1,将两概率子图聚成一类。同时修改概率子图集Rg,修 改flag为1。
[0045] 3)重新计算聚类总数L,若flag为1则回到步骤2)继续计算,直到flag不再为 1时停止归并聚类,并汇总各个Spark计算节点归并聚类的结果,然后进行一次归并聚类。
[0046] 步骤4,概率子图频繁度计算。在通过归并聚类得到概率图集后,计算每个概率子 图同构类中的子图数量sum,并利用初始概率子图集的子图数量n,判断sum/n与预设的频 繁度f之间的关系,若sum/n>f则判定其为频繁概率子图。
[0047] 最后应说明的是:本发明还可有其他多种实施方式,在不背离本发明精神及其实 质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,这些相应 的改变和变形都应属于本发明所附的权利要求的保护范围。
【主权项】
1. 一种基于归并聚类的并行化频繁概率子图搜索方法,其特征在于,包括以下步骤: 步骤1 :预处理概率子图;首先将待处理的概率网络(概率图),进行概率子图划分,得 到指定节点个数的概率子图集,然后将这些概率子图对应的邻接矩阵存储为HDFS文件,并 将所有概率子图集加载到弹性分布式数据集(ResilientDistributedDatasets,RDD); 步骤2 :对每个Spark计算节点中的概率子图,将其邻接矩阵转换成对应的伴随电路, 通过添加一个参考节点,并根据节点电压法,得到概率子图的节点电压序列; 步骤3 :对每个Spark计算节点中的概率子图均进行归并聚类计算,得到若干概率子图 同构类,直到每个计算节点均收敛,将结果汇总,对汇总的概率子图同构类再进行一次归并 聚类; 步骤4:计算每个概率子图同构类的概率子图数量,得出频率,进而得到频繁概率子 图。2. 根据权利要求1所述的基于归并聚类的并行化频繁概率子图搜索方法,其特征在 于:在预处理概率子图阶段,从输入的概率网络(概率图)中不重复、不遗漏地识别出所有 具有给定节点个数的概率子图,采用基于Spark框架的实现结构,将得到的概率子图存储 到HDFS文件系统,然后将所有子图加载到RDD。3. 根据权利要求1所述的基于归并聚类的并行化频繁概率子图搜索方法,其特征在 于:在将所有概率子图的邻接矩阵转换为伴随电路求节点电压序列时,首先将概率子图的 邻接矩阵转换成对应的伴随电路,然后添加一个参考节点,通过节点电压法对整个伴随电 路施加全激励得到节点电压序列;具体步骤为: 1) 针对输入的概率子图g,假设有k个节点Vl、v2、…、vk,将概率图g的每一条边均用 其概率P的倒数Ι/p表示电阻值(即当边概率值趋于0时,该段电路断开,表示该段电路对 整个节点电压影响很小),Pe(〇, 1); 2) 增加一个参考节点vk+1,并在新增的节点与原图中每个节点之间增加一个电阻值为 1/2的电阻,得到概率子图g的伴随电路N; 3) 以新增节点vk+1为参考节点,对伴随电路N施加全激励,S卩在节点vk+1与其他任意节 点之间施加相同的电流源Is,电流值均选为1A,在vk+1与其余k个节点之间的电流均从节点 vk+i指向其余节点; 4) 根据U/R=I得出概率子图g的节点电压序列U,其中R= 1/P。4. 根据权利要求1所述的基于归并聚类的并行化频繁概率子图搜索方法,其特征在 于:采用基于Spark框架的实现结构,对每个Spark计算节点中的概率子图均进行归并聚类 计算,得到若干概率子图同构类,直到每个计算节点均收敛,再将各计算节点的结果汇总, 对汇总的概率子图同构类再进行一次归并聚类,归并聚类的具体步骤为: 1) 聚类初始化:假设共有η个概率子图构成概率子图集G= {gl,g2,…,gn},则先让其 中每个概率子图自成一类,它们作为η个聚类树的η个叶子节点,而概率子图的标号集Rg = {1,2,…,n},并设置阈值参数ε和Θ; 2) 归并聚类:假设聚类总数L,而flag用来标识归并聚类过程中是否有聚合操作,其初 始值为〇 ;对于从i= 1到i=L/2的概率子图,计算&和gi^是否同构,采用比较间隔步 长为L/2,每层聚类后将打乱当前的图类序列,以避免在每层聚类时,由于两两比较的类别 没有发生变化而产生聚类的效果较差的情况;具体步骤为: (a) 首先根据两个概率子图&41+^的节点电压序列U和U',利用欧式距离求出两个 概率子图的距离矩阵D; (b) 再利用匈牙利算法处理距离矩阵D,得出概率子图gJPg1+U2的节点映射关系,同时 计算出两概率子图节点电压序列的错配值VMval; (C)接着根据节点映射关系调整两个概率子图gpgpw的邻接矩阵d和d',然后计算 调整后d和d'之间的错配值PMval; (d)根据上述计算结果进行判断,若VMval〈ε且PMval〈Θ,则将两概率子图聚成一类。 同时修改概率子图集Rg,修改flag为1 ; 3)重新计算聚类总数L,若flag为1则回到步骤2)继续计算,直到flag不再为1时 停止归并聚类,并汇总各个Spark计算节点的聚类结果,然后再进行一次归并聚类。5.根据权利要求1所述的基于归并聚类的并行化频繁概率子图搜索方法,其特征在 于:通过统计每个概率子图同构类中子图数量sum,并利用初始概率子图集的子图数量n, 判断sum/n与预设的频繁度f之间的关系,若sum/n>f,则判定其是否为频繁概率子图。
【专利摘要】本发明公开了一种基于归并聚类的并行化频繁概率子图搜索方法。本发明针对现有频繁子图搜索方法中时空消耗大、无法满足大数据环境要求等问题,首先采用节点电压法将概率子图映射为电路拓扑进行处理;然后利用归并聚类对概率子图进行聚类,有效降低时间开销;最后基于Spark框架对方法进行实现,进一步提升计算速度及可扩展性。
【IPC分类】G06F17/30
【公开号】CN105354243
【申请号】CN201510666545
【发明人】杨鹏, 顾梁, 王春艳
【申请人】东南大学
【公开日】2016年2月24日
【申请日】2015年10月15日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1