一种分布式函数依赖关系挖掘方法与流程

文档序号:17548492发布日期:2019-04-30 18:02阅读:388来源:国知局
一种分布式函数依赖关系挖掘方法与流程

本发明涉及传统的函数依赖关系挖掘算法和分布式并行置信度计算领域,具体为一种分布式函数依赖关系挖掘方法。



背景技术:

规则发现是数据挖掘中的一项重要任务,关系数据库中,函数依赖发现在知识发现,数据库语义分析、数据质量评估以及数据库设计等领域有着广泛的应用,从数据中挖掘属性之间的函数依赖关系有着十分重要的意义。

许多学者也针对集中式环境下关系数据中函数依赖关系的挖掘进行了相关研究,并且提出了多种函数依赖挖掘算法,但是现有的函数依赖挖掘算法主要还是针对于小规模、集中式分布的数据,而针对于分布式环境下进行函数依赖挖掘算法研究的还比较少。

在大数据背景下数据有着4v特征,即数据量巨大、数据类型繁多、数据更新速度快和价值密度低等特点。这些特点使得传统的函数依赖挖掘算法很难适应大数据环境。面对大数据的挑战,有人提出了将所有数据传输到单个节点进行函数依赖挖掘的方法,但是该方法无法高效地利用计算资源,也不能进行计算和存储水平的扩展。因此,如何设计一个面向大规模数据的、高效的函数依赖挖掘算法成为了分布式并行计算方法设计的挑战。



技术实现要素:

针对现有技术中的上述不足,本发明提供一种分布式函数依赖关系挖掘方法,帮助企业发现分布在各个节点上的公共规则,为企业决策提供基础。

为实现以上技术目的,本发明的技术方案是:一种分布式函数依赖关系挖掘方法,包括以下步骤:

(1)对分布式环境下每个节点的原始数据进行函数依赖挖掘,得到相应的函数依赖候选集;

(2)根据步骤(1)中的结果,对其进行初步剪枝,得到新的函数依赖候选集;

(3)针对步骤(2)中的结果,根据候选函数依赖的左部特征对其进行分组,每一组内的候选函数依赖的lhs部分拥有公共的属性,不同的分组的lhs部分的公共属性不同;

(4)每次选取一个属性作为lhs公共属性,根据步骤(3)的分组方法对分布式的数据进行重分布;

(5)每次经过步骤(4)重分布后,通过并行计算当前组内候选函数依赖置信度进行检测,挖掘出不符合条件的函数依赖关系;

(6)根据步骤(5)发现的不符合条件的函数依赖,采用步骤(2)中的剪枝方法,对候选函数依赖进行更深层次的剪枝,得到所有的函数依赖。

作为优选,所述步骤(1)中,分布式环境下不同数据记录分布在不同的节点之上,首先对每个节点的原始数据进行函数依赖挖掘,挖掘出满足单个节点的局部函数依赖关系。

作为优选,所述步骤(2)中,对比分析出步骤(1)结果中不是所有单个节点同时满足的函数依赖,对步骤(1)中挖掘出来的候选函数依赖进行剪枝,删除不符合条件的函数依赖关系。

作为优选,所属步骤(4)中,根据关系r中的属性集中包含的n个属性,每次选取一个属性作为lhs公共属性,对数据进行重分布。

作为优选,:所述步骤(5)中,对于各个节点分组后的候选函数依赖集,采用置信度的计算方法并行检测出不符合条件的函数依赖关系,并广播通知其余节点。

作为优选,所述步骤(6)根据检测出来的不符合条件的函数依赖关系,采用剪枝方法删除相关不符合条件的函数依赖,得到所有的函数依赖。

以上描述可以看出,本发明具备以下优点:本发明的分布式函数依赖关系挖掘方法能够在分布式环境下高效的进行函数依赖关系挖掘。本发明的实施将分布式函数依赖关系挖掘问题分解为上述步骤,利用搜索和剪枝策略提高了函数依赖挖掘的效率,同时,利用分组和并行置信度计算的方法解决了一定的关于数据迁移量和负载均衡的问题,提高了分布式函数依赖关系挖掘的效率和准确性。

附图说明

图1为本发明的智能制造中分布式函数依赖挖掘方法的总体流程图。

图2为本发明实施例中候选函数依赖组合图。

图3为本发明实施例中候选函数依赖搜索空间剪枝图。

图4为本发明实施例中根据第一个属性a对候选函数依赖集进行分组得到的候选函数依赖分组图。

具体实施方式

下面结合本发明给定的附图和具体示例,进一步阐述本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,基于本发明的实施例,本领域普通技术人员在没有创造性劳动的前提下所获得的所有其他实施例。都属于本发明的保护范围。

如图1所示,本发明一中分布式函数依赖关系挖掘方法与系统的实施具体包括如下步骤:

(1)对分布式环境下每个节点的原始数据进行函数依赖挖掘,得到相应的函数依赖候选集;

(2)根据步骤(1)中的结果,对其进行初步剪枝,得到新的函数依赖候选集;

(3)针对步骤(2)中的结果,根据候选函数依赖的左部特征对其进行分组,每一组内的候选函数依赖的lhs部分拥有公共的属性,不同的分组的lhs部分的公共属性不同;

(4)每次选取一个属性作为lhs公共属性,根据步骤(3)的分组方法对分布式的数据进行重分布;

(5)为了提高函数依赖挖掘的准确性,每次经过步骤(4)重分布后,通过并行计算当前组内候选函数依赖置信度进行检测,挖掘出不符合条件的函数依赖关系;

(6)根据步骤(5)发现的不符合条件的函数依赖,采用步骤(2)中的剪枝方法,对候选函数依赖进行更深层次的剪枝,得到所有的函数依赖。

步骤(1)中对分布在各个节点的原始数据函数依赖关系挖掘采用的是传统的函数依赖挖掘算法。其中,该算法的实施包括候选函数依赖的搜索和剪枝。如图2所示,本实施例中包含{a,b,c,d}四个属性,首先通过逐层搜索的方法挖掘出所有的非平凡函数依赖,在本实施例中经过第一层搜索挖掘出4个候选函数依赖,分别为abc→d、abd→c、acd→b、bcd→a,经过第二、三层搜索分别挖掘出12个候选函数依赖,详细候选函数依赖集如图2所示。在搜索过程中,如果出现函数依赖不成立的情况,则可以根据阿姆斯特朗公理的自反律和传递律的得出的剪枝方法对与之相关的lhs部分包含较少的属性的候选函数依赖进行剪枝,该剪枝方法为:如果候选函数依赖x→a不成立,则必然有y→a不成立,其中这里假定abc→d不成立,根据剪枝方法可知,可剪枝的候选函数依赖包括:ab→d、ac→d、bc→d、a→d、b→d、c→d,具体剪枝效果如图3所示,虚线部分表示该实施例中被剪掉的候选函数依赖。

步骤(2)中对函数依赖候选集进行剪枝,先对比分析各个节点挖掘出来的函数依赖关系,找出不是所有节点都满足的局部候选函数依赖关系,并在各个节点做出相应的剪枝,得到经过剪枝后的函数依赖候选集。其剪枝方法与步骤(1)中的剪枝方法一致。

步骤(3)和步骤(4)对候选函数依赖进行划分,如图4所示,为以属性a为例进行分组得到的候选函数依赖分组图,根据图示加粗线的部分可知,以a属性为公共属性的候选函数依赖个数为12个,分别是:abc→d、abd→c、acd→b、ab→c、ab→d、ac→b、ac→d、ad→b、ad→c、、a→b、a→c、a→d,同理可知,以b、c、d属性为公共属性的候选函数依赖个数分别为8个、5个和3个。结合步骤(1)中的搜索策略的得到的候选函数依赖个数计算可知,在该是实施例中,第一次重分布可以对12个即约1/2的候选函数依赖进行验证,第二次重分布可以对约3/4的候选函数依赖进行验证,第三次重分布可以对约7/8的候选函数依赖进行验证,经过第四次重分布,该实施例已全部验证完毕。

步骤(5)根据步骤(4)的分组情况,通过并行计算组内的候选函数依赖的置信度来检测函数依赖的准确性,其中,置信度计算标准形式为:一个函数依赖φ:x→y的置信度con(φ)标准形式为其中公式中∏x(i)表示属性x在数据库实例i上的投影,cx(x)表示属性x的取值x在i上的元组数。

步骤(6)根据步骤(5)检测出来的不符合条件的函数依赖关系,广播通知各个节点,采用步骤(1)中的剪枝方法对候选函数依赖进行剪枝,得到最终的函数依赖关系。

以上对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。总而言之如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1