大数据环境下的分布式跨维度异常数据检测方法与流程

文档序号:12063495阅读:461来源:国知局
大数据环境下的分布式跨维度异常数据检测方法与流程

本发明涉及大数据处理技术领域,且特别涉及一种大数据环境下的分布式跨维度异常数据检测方法。



背景技术:

随着大数据分析和数据挖掘技术的不断发展,数据的体量正变得越来越大,在这大量的数据中,异常数据的数量也随着数据体量的增大而增多,异常数据不同于数据集中的常规数据,其特性偏离常规数据,使得数据分析方法会因为这些数据的存在而使分析结果存在较明显的误差。传统的数据挖掘活动前,数据是经过精心挑选的,保证的数据的完整性和一致性。但大数据环境下的海量数据,无法进行人工的挑选,因此异常数据检测就有十分重要的作用。同时,异常数据,也有其价值,如在信用卡欺骗、网络入侵检测、灾害预警、故障诊断、图像处理分析等领域都是很有价值的数据依据。

现有的异常数据检测技术主要有集中式异常数据点检测和分布式异常数据点检测两种。其中集中式异常数据点检测技术属于传统的数据挖掘领域的技术,主要有基于统计的数据集概率分布或模型来筛出严重偏离分布或模型的数据点的检测算法,基于距离的将无足够多相邻数据点的数据点看作异常数据的异常数据点检测算法,基于一定范围内数据点个数及各数据点间的距离来判断异常数据点的数据密度方法,以及基于序列异常的偏差挖掘算法。但这些算法存在可移植性差,对局部数据的异常数据点无能为力,参数设置繁琐,人为因素影响较大和无法应用于多维数据集的缺点和问题。而现有的分布式异常数据点检测技术对异构分布式并行计算环境的适配均存在一定程度的问题,很大程度上存在数据切分不合理,数据分配不倒塌,磁盘I/O和网络I/O较高,开销过大的不足。



技术实现要素:

本发明为了克服现有技术的不足,提供一种大数据环境下的分布式跨维度异常数据检测方法。

为了实现上述目的,本发明提供一种大数据环境下的分布式跨维度异常数据检测方法,包括:

数据切分,基于输入数据集的维度对输入数据集进行切分,形成多个数据桶;

根据每一维度上切分出来的数据桶形成非平衡二叉编码树;

基于非平衡二叉编码树将切分出来的多个数据桶分配到各运算节点上;

在各个运算节点上计算执行每个数据点的相对离群量;

筛选出相对离群量大于或等于设定阈值的数据点,形成异常点集合。

于本发明一实施例中,数据切分的方法包括:

获取待切分的数据桶或输入数据集在某一维度上的中值;

以该中值对待切分的数据桶或输入数据集沿所述某一维度进行切分,形成两个子数据桶;

当形成的子数据桶中数据点的数量大于或等于平均运算节点数量时,对形成的子数据桶在另一维度上进行再次切分,直到形成的子数据桶中数据点的数量小于平均运算节点数量。

于本发明一实施例中,基于非平衡二叉编码树将切分出来的多个数据桶分配到各运算节点上的方法包括:

以分布式计算环境中运算节点集合Mset为输入,对切分后的数据桶集合Bset进行降序排列得到

取中前COUNT(Mnode)个数据桶分别分配给Mset中的每一个节点,COUNT(Mnode)为分布式计算环境中运算节点的数量;

计算运算节点集合Mset中的每一个节点现已分配的数据桶中所有数据点dpoint的数量的均值,记为初始化空结点集合Mtmp,将运算节点集合Mset中所有分配到数据点dpoint的数量小于的节点加入Mtmp

对空结点集合Mtmp中的节点按其包含的数据点dpoint的数量升序排列,得到确定与未被分配的数据桶biunalloc邻接的数据桶,将未被分配的数据桶biunalloc分配给和它邻接的数据桶最多的节点mi。于本发明一实施例中,确定一个数据桶的邻接数据桶的方法为:

获取每一个数据桶在非平衡二叉编码树中的编码;

根据获取到的编码计算每一个数据桶在每一维度上的十进制值;

将每一维度上的十进制值进行组合形成这个数据桶的坐标;

根据每个数据桶的坐标确定其邻接数据桶。

于本发明一实施例中,在各个运算节点上计算执行每个数据点的相对离群量的具体步骤为:

在各个运算节点上计算执行每个数据点的离群度;

根据离群度计算数据点的局部离群量;

根据数据点的局部离群量计算执行每个数据点的相对离群量。

于本发明一实施例中,采用以下公式计算执行每个数据点的离群度

其中,和分别为维度l上第i个数据点和第j个数据点,COUNT(dpoint)为参与运算的数据点的总数。

于本发明一实施例中,采用以下公式计算数据点的局部离群量:

其中,为数据点的局部离群量。

于本发明一实施例中,采用以下公式计算执行每个数据点的相对离群量:

其中,为执行每个数据点的相对离群量。

综上所述本发明提供的大数据环境下的分布式跨维度异常数据检测方法,提出一种高效的数据切分算法,并结合编码方式将数据的分配过程进行优化,减少系统开销,加速集群的运算,从而保证了异常点检测过程在分布式并行计算环境中的高效进行,对于解决大数据环境下的海量数据中的异常数据检测这样的复杂问题具有较好的效果。

为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。

附图说明

图1所示为本发明一实施例提供的大数据环境下的分布式跨维度异常数据检测方法的流图。

图2所示为本发明一实施例提供的大数据环境下的分布式跨维度异常数据检测方法中给出的非平衡二叉编码树的结构图。

图3所示为确定一个数据桶的邻接数据桶的方法图。

具体实施方式

如图1所示,本实施例提供的大数据环境下的分布式跨维度异常数据检测方法包括:数据切分,基于输入数据集的维度对输入数据集进行切分,形成多个数据桶(步骤S1)。根据每一维度上切分出来的数据桶形成非平衡二叉编码树(步骤S2)。基于非平衡二叉编码树将切分出来的多个数据桶分配到各运算节点上(步骤S3)。在各个运算节点上计算执行每个数据点的相对离群量(步骤S4)。筛选出相对离群量大于或等于设定阈值的数据点,形成异常点集合(步骤S5)。

该方法始于步骤S1,在对高维度大数据的处理中为保证分布式环境下的运算效率,需要对输入的数据集进行切分。于本实施例中,基于输入数据集的维度对输入数据集进行切分,形成bcount个数据桶(Bucket),Bucket集合为Bset={b1,b2,…,bbcount},在Bucket集合中各个Bucket内的数据点dpoint的个数不等,其中

具体的切分方法为,首先对输入的数据集进行切分,接着对切分出来的子数据桶再进行切分,数据集和数据桶的切分方法相同,以下以Bucket b在第l维度上的切分为例进行说明。

首先,获取Bucket b在第l维度上的中值

接着,以该中值对Bucket b沿第l维度进行切分,形成两个子Bucket,分别为bleft和bright

判断bleft中的数据点的数量是否大于或等于平均运算节点数量,当bleft中的数据点的数量大于或等于平均运算节点数量时,对bleft在另一维度上再次采用上述方法进行切分,直到形成的子Bucket上的数据点的数量小于平均运算节点数量。同样的,采用相同的方法对bright进行切分。中值和平均运算节点数量AVGdpoint分别采用以下公式计算:

其中,和分别为Bucket b在第l维度上的上下界,COUNTdpoint(bleft)为bleft中数据点的数量,COUNTdpoint(bright)为bright中数据点的数量,为输入数据集中数据点的数量,COUNT(Mnode)为分布式计算环境中运算节点的数量,l∈L,L为维度数量。

当数据切分出来后执行步骤S2、根据每一维度上切分出来的Bucket形成非平衡二叉编码树。本实施例以二维的数据集切分所形成的非平衡二叉编码树为例进行说明,对于三维以上的数据集采用相同的切分方法来形成非平衡二叉编码树。在图2中,根结点代表输入数据集,其编码记为O;对输入数据集进行切分后形成位于左右两边的两个子Bucket,对子Bucket继续进行切分,每一次的切分都会产生bleft和bright,bleft的编码为CODEleft=CODEparent+"0",CODEparent为父Bucket的节点编码;bright的编码为CODEright=CODEparent+"1",CODEparent为父Bucket的节点编码。根据父Bucket和子Bucket之间的关系,形成如图2所示的非平衡二叉编码树。

当形成非平衡二叉编码树后,执行步骤S3,基于非平衡二叉编码树将切分出来的多个数据桶分配到各运算节点上。具体的方法包括:

首先,以分布式计算环境中运算节点集合Mset为输入,对切分后的数据桶集合Bset进行降序排列得到

接着,取中前COUNT(Mnode)个数据桶分别分配给运算节点集合Mset中的每一个节点,COUNT(Mnode)为分布式计算环境中运算节点的数量。

进一步的,计算运算节点集合Mset中的每一个节点现已分配的数据桶中所有数据点dpoint的数量的均值,记为初始化空结点集合Mtmp,将运算节点集合Mset中所有分配到数据点dpoint的数量小于的节点加入空结点集合Mtmp

最后,对空结点集合Mtmp中的节点按其包含的数据点dpoint的数量升序排列,得到确定与未被分配的数据桶biunalloc邻接的数据桶,将未被分配的数据桶biunalloc分配给和它邻接的数据桶最多的结点mi。在该步骤中,采用以下方法来确定未被分配的数据桶biunalloc的邻接数据桶:

获取每一个数据桶在非平衡二叉编码树中的编码。以Bucket bs为例进行说明,在图2中Bucket bs的编码为1001,对应非平衡二叉编码树可得其第0维为编码为1和0,合起来为二进制10,对应十进制为2,其第1维的编码为0和1,合起来为二进制01,对应的十进制表示为1,因此Bucket bs的坐标为(2,1)。以同样的方法计算每一个Bucket的坐标,最后根据每个Bucket的坐标确定与其邻接的Bucket。在图2中,在0维度方向上与Bucket bs邻接的Bucket的坐标为(1,1)和(3,1);在1维度方向上与Bucket bs邻接的Bucket的坐标为(2,2)和(2,0)。

当步骤S3完成后执行步骤S4,在各个运算节点上计算执行每个数据点的相对离群量。具体的计算方法为:

首先,在各个运算节点上计算执行每个数据点的离群度具体的计算公式为:

其中,和分别为维度l上第i个数据点和第j个数据点,COUNT(dpoint)为参与运算的数据点的总数。

接着,根据离群度计算数据点的局部离群量具体计算公式为:

最后,根据数据点的局部离群量计算执行每个数据点的相对离群量具体的计算公式为:

在得到相对离群量,执行步骤S5、筛选出相对离群量大于或等于设定阈值η的数据点,形成异常点集合。常η取值在[0.8,1]之间能取得较好的结果。

综上所述本发明提供的大数据环境下的分布式跨维度异常数据检测方法,提出一种高效的数据切分算法,并结合编码方式将数据的分配过程进行优化,减少系统开销,加速集群的运算,从而保证了异常点检测过程在分布式并行计算环境中的高效进行,对于解决大数据环境下的海量数据中的异常数据检测这样的复杂问题具有较好的效果。

虽然本发明已由较佳实施例揭露如上,然而并非用以限定本发明,任何熟知此技艺者,在不脱离本发明的精神和范围内,可作些许的更动与润饰,因此本发明的保护范围当视权利要求书所要求保护的范围为准。

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