一种大数据流中的基于最近邻的时间敏感性异常检测方法与流程

文档序号:17893280发布日期:2019-06-13 15:49阅读:183来源:国知局
一种大数据流中的基于最近邻的时间敏感性异常检测方法与流程

本发明属于大数据流、异常检测技术领域,具体涉及一种对时间敏感的异常检测方法。



背景技术:

数据流中的异常检测是欺诈检测、计算机网络安全、医疗和公共卫生异常检测等几个领域的重要任务。异常检测的目标是检测数据中行为或者分布与其他数据差异很大的数据,即离群点。例如在肝部肿瘤检测中,一旦血液中的甲胎蛋白含量大大超过正常值,那么该患者有极大的可能患有肝癌。异常检测帮助发现数据中这种不符合期望行为的异常数据。

数据流是一种特殊数据模型,它往往是无限、高速、多维、动态变化的。数据流的新特性给异常检测带来了一些必须考虑的问题,例如如何存储无限的规模庞大的数据,如何使得数据处理速度与数据流速相匹配,如何处理动态更新的高维数据并且从中获取关键信息。由于异常定义的固有模糊性,例如如何定义常规行为,异常与常规行为不一致程度等,异常检测仍然不是一个容易的问题。考虑到数据流的新特性,异常检测问题变得更加复杂

异常检测分为监督的和无监督的检测。监督异常检测利用机器学习算法(例如分类)对标记为异常/非异常的数据集进行检测。然而由于缺少关于异常与否的标签信息,监督场景在实际应用中很少发生。因此无监督的异常检测更为常见,它不需要任何标签信息。数据流中的无监督异常检测可以大致分为三类:1)基于统计,2)基于聚类和3)基于最近邻。在基于统计的方法中,目标是学习数据集的正常情况下的统计模型。此后,不符合该模型的数据被标记异常。然而,这种需要关于数据集的基础分布的先验知识,对于随时间动态变化的数据流是不可用的。聚类数据流近年来已成为一个有趣的话题,并引起了许多研究人员的关注并且可以用于数据流中的异常检测。这种方法假定异常数据被分到具有少量数据或低密度的簇中,或者根据数据点到其最近的簇质心的距离来检测。基于聚类的算法需要足够长的学习过程才能得到较为准确的聚类结果。基于最近邻的方法通常基于其自身行为与其近邻的行为之间的差异来定义点的离群程度。给定数据集d和阈值k(k>0),如果数据o在d中有少于k个邻居,则o为离群点。这种方法易于实现,但是无法检测分布偏离正常情况的异常。目前流行的基于最近邻的算法有exact-storm、abstractc、thresh_leap、mcod和approx-strom,这五种方法的核心是给定邻居之间的最大距离r,计算滑动窗口内数据的距离从而计算邻居数量。



技术实现要素:

本发明的目的是提出一种大数据流中的基于最近邻的时间敏感性异常检测方法,为一种改进的基于近邻的异常检测方法(nearestneighborsbasedtimesensitiveanomalydetection,nn-ts),能够快速寻找大数据流中的各数据的邻居,降低计算开销,无需单独为每个数据保存其邻居信息,节省空间占用,提高更新效率,基于时间敏感性能够快速判断数据分布是否异常以及异常发生的时间范围。

为实现上述目的,本发明采用的技术方案如下:

一种大数据流中的基于最近邻的时间敏感性异常检测方法,其步骤包括:

根据大数据流中数据的维度确定数组参数k和l和阈值参数α和β,创建一个l行2k列的二维数组dw_w,数组的每一项是一个确定波窗口,初始化生成kl个随机向量wij,用于构建算法中的l个哈希函数;

对到来的大数据流中的数据,利用上述哈希函数将数据哈希到哈希表即2kl个确定波窗口内,每个哈希函数对应一行;

计算对应确定波窗口的计数估计c,进而计算上述算法开始至当前的计数估计的平均值μ,如果c<αμ,则判定为数据异常;

估计确定波窗口多个随机时间区间的计数c1,c2,…,cw,得到方差δ,进而计算上述算法开始至当前的所有确定波窗口方差的平均值δ',如果δ>βδ',则判定为数据异常。

进一步地,所述哈希函数采用签名随机投影技术,初始化随机生成的随机向量wij~n(0,1),i∈[1,l],j∈[1,k]。

进一步地,所述l个哈希函数为hi(x)=[hi1(x);hi2(x);…;hik(x)],i∈[1,l]。

其中sign()为随机投影签名函数,

进一步地,利用所述哈希函数将数据哈希到确定波窗口内的方法为:每个哈希函数对应哈希表的一行即2k个确定波窗口,经过l次哈希即k×l次随机投影签名计算得到l个k位二进制哈希结果,每一个行对应位置的确定波窗口dw_w[i][hi(x)]插入数据。

进一步地,所述计数估计

进一步地,所述计数估计的平均值n是已经处理的大数据流中的数据数目。

进一步地,所述所有确定波窗口方差的平均值n是已经处理的大数据流中的数据数目。

一种大数据流中的基于最近邻的时间敏感性异常检测系统,包括存储器和处理器,所述存储器存储计算机程序,所述程序被配置为由所述处理器执行,所述程序包括用于执行上述方法中各步骤的指令。

一种存储计算机程序的计算机可读存储介质,所述计算机程序包括指令,所述指令当由服务器的处理器执行时使得所述服务器执行上述方法中的各个步骤。

本方法的核心是一个以lsh(localitysensitivehashing)抽样视图为基础的统计估计器。滑动窗口使用确定波模型,这种窗口模型十分适合增量式计算,更新代价小,效率极高。本方法中进一步估计确定波窗口内多个随机时间区间的计数和方差以监测数据在不同时间区间的分布。算法中,当数据邻居数量低于阈值或者窗口内该数据的分布方差超过阈值,数据被判定为异常。

本发明提出的方法(以下简称nn-ts方法)具有以下的优点及效果:

1、时间效率高。利用lsh算法寻找邻居,避免了大量的距离计算,大幅度降低了基于近邻的异常检测算法中的计算开销,大幅度提升了了异常检测的速度。

2、空间效率和更新效率高。利用lsh算法寻找数据的邻居,同一个窗口内的数据互为邻居,不在同一个窗口的数据不是邻居,无需单独为每个数据保存其邻居信息,节省了空间。哈希过后的添加和删除操作都是确定波窗口操作,对其他窗口的数据没有影响,大大削减了数据更新开销。

3、算法具有时间敏感特性。估计滑动窗口多个时间区间的计数,通过计算方差判断数据的分布是否异常,并根据时间区间定位异常发生的时间范围。

4、本发明是一种无监督的算法,因此不需要对样本进行标注,也无需进行模型训练。易于部署和降低开发成本。

附图说明

图1是实施例中的nn-ts方法数据结构图。

图2是实施例中的nn-ts方法流程图。

图3a-3b是分别针对shuttle和tao数据的各算法处理时间曲线图。

图4a-4b是分别针对shuttle和tao数据的各算法空间占用曲线图。

图5a-5b是分别针对shuttle和tao数据的各算法召回率曲线图。

具体实施方式

为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。

在举实施例之前,先对数据流中的离群点进行定义如下:

定义1.数据流中的离群点:给定数据流ds、当前窗口w、ds中的一个数据xt以及两个阈值参数α和β;nn()和v()分别是邻居计算和方差计算函数。如果或者那么xt是一个离群点,否则是正常数据。

本发明技术方案原理如下:

1.依据基于最近邻的异常检测原理,利用lsh算法寻找大数据流中数据的邻居。相似性很大的数据称之为邻居,正常数据之间通常具有很高的相似性,而与异常数据相似性很低。利用lsh算法,将相似度高的数据放到相同的组,相似度低的数据放到不同的组。最终,考察每组数据的数量,数据量少的组中数据被判定为异常数据。在静态数据集中,每个组保存从算法开始所有放入的点。然而在大数据流环境下的数据是无限的并且持续动态变化的,用滑动窗口来实现分组,每个组不需要保存从算法开始所有放入的数据点,而是仅维护一个滑动窗口的数据,异常识别在滑动窗口范围内实施。

2.利用确定波模型的特点,将滑动窗口细化分为多个时间段,计算每个时间段的计数并得到方差。数据分布异常时方差会高出平均值很多,依据方差来检测分布的异常并及时发出警报。

现通过一实施例具体结合图1、图2对本发明nn-ts方法做详细说明如下。

1.初始化:

根据lsh算法的超参数k和l,创建一个l行2k列的二维数组dw_w,数组的每一项用一个确定波窗口模型实现,代表一个组。准备好算法所需要的哈希函数。本发明中的lsh哈希函数采用签名随机投影技术,初始化随机生成kl个随机向量wij~n(0,1),i∈[0,l),j∈[0,k)备用。

2.异常检测过程

哈希函数定义如下:hi(x)=[hi1(x);hi2(x);…;hik(x)],i∈[1,l],其中

签名函数sign()定义如下:

k次哈希生成l个k位二进制哈希结果hi(x)=[hi1(x);hij(x);…;hik(x)],对应位置的确定波窗口dw_w[i][hi(x)]更新。

1)计算对应确定波窗口的计数估计进而计算算法开始至今计数估计的平均值如果c<αμ,则报告异常。

2)计算窗口内每个划分时间段的计数c1,c2,…,cw,从而得到他们的方差δ。然后计算算法开始至今所有窗口方差的平均值如果δ>βδ′,则报告异常。

实验数据与结论:

本发明基于时间效率,空间效率和召回率三个指标测试算法性能,并验证了算法的时间敏感特性,具有评估全面、描述全面的特点。下面通过进一步的实验分析例证本发明nn-ts方法的优势。本发明nn-ts方法在两个真实数据集shuttle、kdd-cup99http上运行以验证其性能。作为对比,本文算法和已有的五种经典的算法在相同条件下实验。

1)时间效率对比测试

本发明的一个主要性能指标是时间效率,为了验证算法的时间效率,与五种经典算法进行了时间的对比测试,测试数据集使用两个真实数据集,测试的结果在图3a-3b中列出,本发明nn-ts方法速度相对其他算法提升了两个数据集。

实验过程中,根据数据集的大小设置窗口宽度的变化进行对比实验,随着窗口宽度逐渐增加,各个算法的平均处理时间逐渐增加,这是由于每个窗口中要处理的数据点数量增多。本发明在两个数据集上均用时最少,因为在基于近邻的异常检测算法中大部分的时间花费在计算数据点之间的距离。在数据更新时,与新到达数据和超时数据相关的距离都要重新计算,时间开销巨大。nn-ts方法利用固定数量的哈希函数来为数据寻找邻居,其计算复杂度远小于距离计算,此外算法在更新数据时无需重新计算,只需要涉及数据的组内更新,大大减少了时间消耗。

2)空间效率测试

本发明的另一个主要性能指标是空间效率,与五种经典算法进行了空间的对比测试,测试数据集使用两个真实数据集,测试的结果在图4a-4b中列出,本发明nn-ts方法空间效率明显高于同类算法。随着w的增大,由于每个算法在当前窗口中存储更多数据点,因此内存需求不同数据集而增加。其他的五种算法存储邻居信息的方式不同导致空间占用不用,但都高于本发明所需要的内存空间。因为本发明nn-ts算法中的二维数组中的每个项目(即每个确定波窗口)都是一个邻域,处于数组中同一个窗口的数据互为邻居,不需要为每个数据额外存储邻居信息。因此,与其他方法相比,nn-ts消耗的内存要少得多。

3)召回率测试

与本发明nn-ts方法做对比的五种算法,除了approx-storm采用了近似估计邻居数量的方法外,其他四种方法都在异常检测过程中计算了每个数据准确的邻居数量,它们仅在邻居搜索方式和存储方式方面不同,因此它们会得到几乎相同的异常检测结果。approx-storm过程中使用了两个近似值以减少每个窗口中存储的数据点的数量和邻居的空间。绘制了nn-ts,mcod和approx-storm的召回率来进行比较,参见图5a-5b,可以看到approx-storm的召回率最低。尽管本发明nn-ts方法中的确定波计数也是近似值,但模型保证误差在∈内,并且算法并使用l个计数的平均值作为最终计数,从而使nn-ts获得更好的结果。mcod计算邻居的准确数量,在shuttle数据集上提供了最高的召回率。

与shuttle数据集上的结果不同,tao数据集nn-ts算法获得了最佳的异常检测结果。这是因为tao数据集中的部分异常数据在一段时间内出现较集中。在这种情况下,由于频率较高,邻居的数量超过了阈值而无法被基于最近邻的异常检测方法检测出来。nn-ts将滑动窗口划分为若干时间段,并计算其计数的方差用以监测计数分布。因此在tao数据集上,nn-ts得到了最高的召回率,也证明了本发明时间敏感特性在数据流异常检测中起到了重要的作用。

本发明从时间、空间、召回率三个角度对本发明nn-ts方法的性能进行了严格的测试,实验表明本发明nn-ts方法与其他算法相比算法简洁,便于实现,具有较高的时间和空间效率,并且能够察觉其他的基于最近邻检测方法不能检测出的异常,具有较高的性能。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

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