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

文档序号:9597881阅读:554来源:国知局
基于归并聚类的并行化频繁概率子图搜索方法
【技术领域】
[0001] 本发明涉及一种基于归并聚类的并行化频繁概率子图挖掘方法,用于实现大规模 概率网络中频繁概率子图的快速挖掘与识别,属于计算机数据挖掘技术领域。
【背景技术】
[0002] 随着信息及互联网技术的不断涌现,产生了大量的网络数据,如社交网络、生物网 络等,这些网络均可以用图模型来表示。如何高效地实现图数据集上的数据挖掘,已经成为 数据挖掘研究领域的热点问题之一。在实际应用中,很多图数据是以概率的形式存在的。例 如,在生物信息学领域,研究得到的生物网络数据通常带有不可避免的实验误差或噪声数 据;同时,生物进化过程本身也是一种动态变化的过程。在社会网络中,人与人的关系往往 存在一定的不确定性。因此,在这些以图模型描述的数据对象中,节点和边的属性值通常在 一定值域内满足某种概率分布,边的存在通过概率进行表达。因为图的不确定性的广泛存 在,所以针对概率图集的数据挖掘方法研究具有十分重要的意义。但总的来说,目前这方面 的研究工作还比较少。
[0003] 在图论领域,传统的频繁模式挖掘多是在确定图数据上进行的,主要的方法包括 gSpan、Gaston、FFSM、FSG和AGM等。为了减少冗余的子图,研究人员提出基于SPIN算法来 识别极大频繁子图。此外,研究人员还提出了发现闭合频繁子图模式的CloseGraph算法。 然而,目前已有的许多非概率图频繁模式发现算法,都很难应用到概率图频繁子图的识别 中。在不确定数据挖掘领域,与概率图频繁子图识别相关的算法也比较少。虽然在概率频 繁项集识别方面,已有研究人员提出基于概率数据流识别频繁项的随机算法、裁剪方法和 U-Apriori算法,以及针对裁剪方法的改进算法等。但是,这些针对概率频繁项集识别的方 法也很难扩展到概率图上。
[0004] 针对上述问题,基于电路模拟的概率子图挖掘方法具有一定优势。但是,该方法的 处理过程较为复杂,尤其在处理对称图时,该方法会产生多种可能的映射序列,从而需退化 成枚举顶点映射序列再进行邻接矩阵匹配的计算,效率愈加低下。此外,当采用该方法对大 量概率子图进行搜索时,如何高效地进行聚类是影响该方法执行效率的关键,而传统方法 往往采用简单层次聚类进行频繁子图挖掘。但在简单层次聚类过程中,通常需首先选取所 有子图类中距离最小的两个子图进行合并,再更新所有子图之间的距离,每次聚类只能减 小一类,因而其时空复杂度高达ο(Π3),这显然不适合用来处理规模较大的图数据。综上,现 有概率子图搜索方法在处理大规模概率图数据时存在很大不足。因此,亟需针对大规模概 率图数据,设计一种能够充分利用概率图特性的频繁概率子图挖掘方法。

【发明内容】

[0005] 发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于归并聚类的 并行化频繁概率子图搜索方法,该方法能够在保证计算精度的基础上,有效解决采用简单 层次聚类处理大规模概率图数据的时空复杂度过高的问题。
[0006] 技术方案:一种基于归并聚类的并行化频繁概率子图搜索方法,与已有方法不同 的是,首先,该方法在对节点电压序列的计算时,添加一个参考节点,并在原图中每个节点 与此参考节点之间添加一条带权边,对此参考节点施加全激励,从而使原来需要求解2η个 η-1阶的线性代数方程组,变成求解2个η阶的线性方程组(η为图的顶点数),可以使效率 大大提高;然后,利用归并聚类处理大部分概率子图,加速聚类过程,大大降低计算的时空 开销;最后,为适应日益增长的数据量及并行化环境的需求,本发明还建立了基于Spark并 行框架的实现结构,进一步提高了该方法的性能和可扩展性。
[0007] 具体可分为四个步骤:步骤1预处理概率子图,首先对输入的概率网络(概率图) 进行概率子图划分,得到指定节点个数的概率子图集,将概率子图对应的邻接矩阵存储为 HDFS文件,然后加载到弹性分布式数据集(Resilient Distributed Datasets, RDD);步骤 2对每个Spark计算节点中的概率子图,将其邻接矩阵转换成对应的伴随电路,再根据节点 电压法,得到节点电压序列;步骤3对每个Spark计算节点中的概率子图均进行归并聚类计 算,得到若干概率子图同构类,直到每个Spark计算节点均收敛,再将结果汇总,并对汇总 的概率子图同构类再进行一次归并聚类;步骤4计算每个概率子图同构类的子图数量,得 出频率,进而得到频繁概率子图。
[0008] 在预处理概率子图阶段,从输入的概率网络(概率图)中不重复、不遗漏地识别出 所有具有给定节点个数的概率子图,采用基于Spark框架的实现结构,将得到的概率子图 存储到HDFS文件系统,然后将所有子图加载到RDD。
[0009] 在将所有概率子图的邻接矩阵转换为伴随电路求节点电压序列时,首先将概率子 图的邻接矩阵转换成对应的伴随电路,然后添加一个参考节点,通过节点电压法对整个伴 随电路施加全激励得到节点电压序列。具体步骤为:
[0010] 1)针对输入的概率子图g(假设有k个节点Vp v2、…、vk),将概率图g的每一条 边均用其概率P(即P e (0,1))的倒数l/p表示电阻值(即当边概率值趋于〇时,该段电 路断开,表示该段电路对整个节点电压影响很小)。
[0011] 2)增加一个参考节点vk+1,并在新增的节点与原图中每个节点之间增加一个电阻 值为1/2的电阻,得到概率子图g的伴随电路N。
[0012] 3)以新增节点vk+1为参考节点,对伴随电路N施加全激励(即在节点v k+1与其他 任意节点之间施加相同的电流源Is,电流值均选为1A,在vk+1与其余k个节点之间的电流均 从节点vk+1指向其余节点)。
[0013] 4)根据U/R = I (其中R = 1/P)得出概率子图g的节点电压序列U。
[0014] 采用基于Spark框架的实现结构,对每个Spark计算节点中的概率子图均进行归 并聚类计算,得到若干概率子图同构类,直到每个计算节点均收敛,再将各计算节点的结果 汇总,对汇总的概率子图同构类再进行一次归并聚类,归并聚类的具体步骤为:
[0015] 1)聚类初始化:假设共有η个概率子图构成概率子图集G = {gl,g2,…,gn},则先 让其中每个概率子图自成一类,它们作为η个聚类树的η个叶子节点,而概率子图的标号集 Rg= {1,2,…,η},并设置阈值参数ε和Θ。
[0016] 2)归并聚类:假设聚类总数L,而flag用来标识归并聚类过程中是否有聚合操作, 其初始值为〇 ;对于从i = 1到i = L/2的概率子图,计算&和g i^是否同构(采用比较 间隔步长为L/2,每层聚类后将打乱当前的图类序列,以避免在每层聚类时,由于两两比较 的类别没有发生变化而产生聚类的效果较差的情况)。具体步骤为:
[0017] (a)首先根据两个概率子图&、&</2的节点电压序列U和U',利用欧式距离求出 两个概率子图的距离矩阵D。
[0018] (b)再利用匈牙利算法处理距离矩阵D,得出概率子图gjPg1+U2的节点映射关系, 同时计算出两概率子图节点电压序列的错配值VMval。
[0019] (c)接着根据节点映射关系调整两个概率子图的邻接矩阵d和d',然后 计算调整后d和cT之间的错配值PMval。
[0020] (d)根据上述计算结果进行判断,若VMval〈 ε且PMval〈 Θ,则将两概率子图聚成 一类。同时修改概率子图集Rg,修改flag为1。
[0021] 3)重新计算聚类总数L,若flag为1则回到步骤2)继续计算,直到flag不再为 1时停止归并聚类,并汇总各个Spark计算节点的聚类结果,然后再进行一次归并聚类。
[0022] 通过统计每个概率子图同构类中子图数量sum,并利用初始概率子图集的子图数 量n,判断sum/n与预设的频繁度f之间的关系,若sum/n>f,则判定其是否为频繁概率子 图。
[0023] 有益效果:本发明与现有技术相比,具有以下优点:
[0024] 1.将概率子图的拓扑结构转换为对应的伴随电路,避免了采用传统可能世界模型 (possible world model)的枚举策略,并且通过增加一个参考节点,极大缩短计算时间。
[0025] 2.利用归并聚类方法,解决传统的简单层次聚类中任意两个概率子图两两判定方 法复杂度过高的问题。在保证聚类准确度的同时,有效降低了时空复杂度。
[0026] 3.建立了基于Spark并行框架的实现结构,进一步提高频繁概率子图搜索方法的 执行速度,并增加了方法的可扩展能力,使之能够适应大数据环境的应用需求。
【附图说明】
[0027] 图1为本发明实施例中概率子图g转换成对应伴随电路N的过程图;
[0028] 图2为本发明实施例的基于Spark框架的并行化方案图;
[0029] 图3为本发明实施例的归并聚类流程图。
【具体实施方式】
[0030] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明 而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价 形式的修改均落于本申请所附权利要求所限定的范围。
[0031] 本发明具体实施时包括以下几个阶段:
[0032] 步骤1,对概率子图进行预处理。从输入的概率网络(概率图)中不重复、不
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1