一种异常检测的方法以及装置与流程

文档序号:25214321发布日期:2021-05-28 14:11阅读:44来源:国知局
一种异常检测的方法以及装置与流程

本说明书涉及计算机技术领域,尤其涉及一种异常检测的方法以及装置。



背景技术:

随着互联网技术的飞速发展,互联网业务的增长,导致业务数据量的大大增加,因此产生的异常数据也越来越多。

目前,针对产生的异常数据,系统通常采用人工发现,对历史数据定时检测等方式进行。在对处理结果实时性要求较高的情况时,往往导致异常数据发现的时间较长等问题,而在无法及时的发现异常数据的情况下,可能会导致用户的利益受到损害,给用户的业务处理带来不便。

因此,如何能够如何实时的检测出异常数据,则是一个亟待解决的问题。



技术实现要素:

本说明书提供一种异常检测的方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。

本说明书采用下述技术方案:

本说明书提供了一种异常检测的方法,包括:

获取用户在当前业务周期的业务数据;

针对预先训练的每个异常检测模型,根据该异常检测模型中包含的各节点对应的数据区间,对所述业务数据进行分类,以确定所述业务数据所落入的数据区间对应的节点,作为目标节点,其中,该异常检测模型中包含有一个根节点和多个叶子节点,该异常检测模型中包含的一个根节点以及多个叶子节点构成该异常检测模型对应的树结构;

确定所述目标节点在该异常检测模型对应的树结构中的位置信息,作为所述业务数据在该异常检测模型中所对应的位置信息;

根据所述业务数据在每个异常检测模型中所对应的位置信息,对所述业务数据进行异常检测。

可选地,根据所述业务数据在每个异常检测模型中所对应的位置信息,对所述业务数据进行异常检测,具体包括:

针对每个异常检测模型,根据所述业务数据在该异常检测模型中所对应的位置信息,确定所述业务数据在该异常检测模型中对应的异常表征值,其中,若所述目标节点距离该异常检测模型对应的树结构包含的根节点越近,所述业务数据在该异常检测模型中对应的异常表征值越高,若所述目标节点距离该异常检测模型对应的树结构包含的根节点越远,所述业务数据在该异常检测模型中对应的异常表征值越低;

根据所述业务数据在每个异常检测模型中对应的异常表征值,对所述业务数据进行异常检测。

可选地,预先训练每个异常检测模型,具体包括:

获取训练样本集以及验证集,所述训练样本集是通过获取到的各用户在各历史业务周期的业务数据构建出的;

针对每个异常检测模型,将所述训练样本集中包含的至少部分训练样本进行划分,以构建出该异常检测模型对应的树结构,构建出的该异常检测模型对应的树结构中包含有构建出的多个节点,以及每个节点对应的数据区间;

针对所述验证集中包含的每个验证样本,通过构建出的每个异常检测模型所对应的树结构,对该验证样本进行分类,得到该验证样本对应的异常检测结果;

根据所述验证集中包含的每个验证样本对应的异常检测结果,以及所述验证集中包含的异常样本,对每个异常检测模型对应的树结构进行调整,以对每个异常检测模型进行训练。

可选地,所述方法还包括:

获取到的各用户在所述当前业务周期的业务数据,作为补充业务数据;

根据所述补充业务数据,调整所述每个异常检测模型对应的训练样本集,得到调整后训练样本集;

通过所述调整后训练样本集,对所述每个异常检测模型进行调整,得到每个调整后异常检测模型;

通过所述每个调整后异常检测模型,对获取到的用户在下一业务周期的业务数据进行异常检测。

可选地,根据所述补充业务数据,调整所述每个异常检测模型对应的训练样本集,得到调整后训练样本集,具体包括:

从所述训练样本集中确定出距离所述当前业务周期的时间长度最远的历史业务周期,作为目标历史业务周期;

通过将所述目标历史业务周期对应的业务数据从所述训练样本集中删除,以及将所述补充业务数据添加在所述训练样本集中,调整所述训练样本集。

可选地,通过所述调整后训练样本集,对所述每个异常检测模型进行调整,得到每个调整后异常检测模型,具体包括:

针对每个异常检测模型,从该异常检测模型对应的树结构中,确定在对该异常检测模型进行训练时,通过所述目标历史业务周期对应的业务数据所构建出的节点,作为待删除节点;

将所述待删除节点从该异常检测模型对应的树结构中删除,并将所述待删除节点对应的父节点的另外一个子节点,作为所述待删除节点对应的父节点,得到该异常检测模型对应的待调整树结构;

通过所述调整后训练样本集,对该异常检测模型对应的待调整树结构进行调整,得到该异常检测模型对应的调整后异常检测模型。

可选地,通过所述调整后训练样本集,对该异常检测模型对应的待调整树结构进行调整,得到该异常检测模型对应的调整后异常检测模型,具体包括:

针对所述待调整树结构中包含的每个节点,若该节点未连接有子节点,且确定所述补充业务数据中包含的至少两个业务数据落入到该节点对应的数据区间内,按照落入到该节点对应的数据区间内的业务数据,对该节点对应的数据区间进行划分,以得到该节点对应的新增子节点;

根据所述待调整树结构中包含的每个节点对应的新增子节点,对该异常检测模型对应的待调整树结构进行调整,得到该异常检测模型对应的调整后异常检测模型。

可选地,按照落入到该节点对应的数据区间内的业务数据,对该节点对应的数据区间进行划分,以得到该节点对应的新增子节点,具体包括:

判断该节点在所述待调整树结构中处的位置是否满足预设条件;

若是,按照落入到该节点对应的数据区间内的业务数据,对该节点对应的数据区间进行划分,以得到该节点对应的新增子节点,否则,不对该节点对应的数据区间进行划分。

本说明书提供了一种异常检测的装置,包括:

获取模块,用于获取用户在当前业务周期的业务数据;

分类模块,用于针对预先训练的每个异常检测模型,根据该异常检测模型中包含的各节点对应的数据区间,对所述业务数据进行分类,以确定所述业务数据所落入的数据区间对应的节点,作为目标节点,其中,该异常检测模型中包含有一个根节点和多个叶子节点,该异常检测模型中包含的一个根节点以及多个叶子节点构成该异常检测模型对应的树结构;

确定模块,用于确定所述目标节点在该异常检测模型对应的树结构中的位置信息,作为所述业务数据在该异常检测模型中所对应的位置信息;

检测模块,用于根据所述业务数据在每个异常检测模型中所对应的位置信息,对所述业务数据进行异常检测。

本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述异常检测的方法。

本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述异常检测的方法。

本说明书采用的上述至少一个技术方案能够达到以下有益效果:

在本说明书提供的异常检测的方法中,获取用户在当前业务周期的业务数据,并针对预先训练的每个异常检测模型,根据该异常检测模型中包含的各节点对应的数据区间,对业务数据进行分类,以确定业务数据所落入的数据区间对应的节点,作为目标节点,其中,该异常检测模型中包含有一个根节点和多个叶子节点,该异常检测模型中包含的一个根节点以及多个叶子节点构成该异常检测模型对应的树结构。而后,确定目标节点在该异常检测模型对应的树结构中的位置信息,作为业务数据在该异常检测模型中所对应的位置信息。最后,根据业务数据在每个异常检测模型中所对应的位置信息,对业务数据进行异常检测。

从上述方法中可以看出,本方法可以基于用户在当前业务周期的业务数据,实时的对业务数据进行异常检测,并根据业务数据对应的目标节点在异常检测模型对应的树结构中的位置信息快速的确定该业务数据是否异常,相比于现有技术中仅仅通过对历史数据的定时处理来说,可以提高对用户在当前业务周期的业务数据异常检测的速度,从而保证了用户的业务处理效率,给用户的实时业务处理带来了一定的便利。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为本说明书实施例提供的异常检测的方法的流程示意图;

图2a为本说明书实施例提供的树结构中删除节点的示意图;

图2b为本说明书实施例提供的树结构中增加节点的示意图;

图3为本说明书实施例提供的异常检测的装置的结构示意图;

图4为本说明书实施例提供的电子设备的结构示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

在现有技术中,往往需要先接收业务数据,产生数据集,再对数据集中的业务数据进行异常数据的检测,这种方法受限于定时产生数据集的时间,不能实时的对业务数据进行异常检测,可能导致无法及时的发现异常数据,从而导致用户的利益受到损害,给用户的业务处理带来不便。

为了解决以上问题,本说明书提供了一种异常检测的方法,服务器获取用户在当前业务周期的业务数据,针对预先训练的每个异常检测模型,根据该异常检测模型中包含的各节点对应的数据区间,对所述业务数据进行分类,以确定所述业务数据所落入的数据区间对应的节点,作为目标节点。而后,确定目标节点在该异常检测模型对应的树结构中的位置信息,作为业务数据在该异常检测模型中所对应的位置信息。最后,根据业务数据在每个异常检测模型中所对应的位置信息,对业务数据进行异常检测。

可以看出,相比于现有技术,本方案能够获取用户在当前业务周期的业务数据,实时确定该业务数据是否异常,提高了异常检测模型异常检测的速度,从而保证了用户的业务处理效率,给用户的实时业务处理带来了一定的便利。

图1为本说明书实施例提供的异常检测的方法的流程示意图,具体包括以下步骤:

s100:获取用户在当前业务周期的业务数据。

本说明书提供的异常检测的执行主体可以是诸如服务器、由多台电脑构成的设备集群等终端设备。为了便于描述,下面将仅以服务器为执行主体,对本说明书提供的异常检测的方法进行说明。

在本说明书实施例中,服务器可以获取用户在当前业务周期的业务数据,这里提到的当前业务周期的业务数据可以是指用户在当前时间段内进行业务操作所产生的业务数据。而当前业务周期对应的时间长度可以是根据业务的实际需求设定的,例如,对于实时性要求较高的业务,当前业务周期可以是指当天,而对于实时性要求较低的业务,当前业务周期可以是指当前周、当月等。

上述业务数据可以是指用户执行的业务中所涉及的数据,如在支付业务中,业务数据可以是指用户支付的订单金额。当然,业务数据也可以是指用户在业务执行过程中所产生的一些相关数据,如,用户在一段时间内重复执行同一业务的次数等等。业务数据的具体形式可以根据实际的业务需求而定,本说明书不对业务数据的具体形式进行限定。

s102:针对预先训练的每个异常检测模型,根据该异常检测模型中包含的各节点对应的数据区间,对所述业务数据进行分类,以确定所述业务数据所落入的数据区间对应的节点,作为目标节点,其中,该异常检测模型中包含有一个根节点和多个叶子节点,该异常检测模型中包含的一个根节点以及多个叶子节点构成该异常检测模型对应的树结构。

在本说明书实施例中,服务器可以使用多个预先训练的异常检测模型,对接收到的业务数据进行检测,即,服务器可以分别通过每个异常检测模型,对该业务数据进行分类,得到相应的分类结果,进而在后续通过汇总各异常检测模型的分类结果,来判断该业务数据是否为异常数据。

对于每个异常检测模型来说,该异常检测模型可以对应一个树结构,该树结构中包含有一个根节点和多个叶子节点,每个节点都对应一个数据区间。服务器在对该业务数据进行检测时,可以确定出该业务数据在该树结构中所落入的数据区间对应的节点,即目标节点,进而在后续过程中,基于目标节点在该树结构中的位置信息,来对该业务数据进行异常检测。

其中,一项业务的业务数据大多数情况下都是正常数据居多,异常数据则相对较少。并且,异常数据所落入的数据范围,与正常数据所落入的数据范围相比有明显的区别。因此,对于众多的正常数据来说,势必需要进行多次的分类,才可能会将这些正常数据逐一分开,但是对于异常数据来说,往往只需要执行较少次数的分类,即可将异常数据从众多的正常数据中分离。

所以,对于业务数据是异常数据的情况来说,利用异常检测模型对应的树结构对该业务数据进行分类,大概率只需要少量的次数即可完成分类,那么,该业务数据大概率也将会落入到距离根节点较近的叶子节点所对应的数据区间中,而对于业务数据是正常数据的情况来说,利用异常检测模型对应的树结构对该业务数据进行分类,大概率需要进行多次分类,才会确定出该业务数据最终所落入的数据区间,相应的,该业务数据也将大概率落入到距离根节点较远的叶子节点所对应的数据区间中。这样一来,服务器在后续过程中,即可根据业务数据所落入的数据区间对应的目标节点在树结构中的位置信息,来判断该业务数据是否为异常数据。

在本说明书实施例中,服务器在接收到一个业务数据后,即可根据预先训练出的每个异常检测模型,对该业务数据进行异常检测。当然,若是业务数据的数据量过大,为了保证服务器的运行负载不至过大,保证业务的正常执行,服务器也可以按照一定的比例,从获取到的业务数据中进行抽样检测。其中,服务器对用户的业务数据进行抽样的方式可以有多种,例如,水塘抽样算法、随机欠采样和过采样等等,本说明书不对采用的具体方式进行限定。

对于上述提到的异常检测模型来说,需要进行预先训练,具体的,服务器获取训练样本集以及验证集,训练样本集是通过获取到的各用户在各历史业务周期的业务数据构建出的,而验证集可以是异常检测模型在训练过程中使用的训练样本集,也可以是预先设定的专门用于验证的验证集。

在实际应用中,由于各用户在各历史业务周期的业务数据众多,所以,在对每个异常检测模型进行训练时,不可能将各用户在各历史业务周期的所有业务数据作为训练样本,对这些异常检测模型进行训练。因此,需要从各历史业务周期的业务数据中选取部分业务数据作为训练样本进行模型训练。其中,该选取部分业务数据的方法可以是有多种,无放回的抽样方法,即,从各历史业务周期的所有业务数据中抽取出一部分业务数据,作为一个异常检测模型的训练样本,然后再从剩余的业务数据中抽取出一部分业务数据,作为下一个异常检测模型的训练样本,以此类推。当然,也可以是有放回的抽样方法,即,从各历史业务周期的所有业务数据中随机抽取出一部分业务数据,作为一个异常检测模型的训练样本,然后将抽取出的这些业务数据再放回到所有的业务数据中,再随机抽取出一部分业务数据,作为下一个异常检测模型的训练样本,以此类推,本说明书不对具体的方式进行限定。

在本说明书实施例中,服务器针对每个异常检测模型,将训练样本集中包含的至少部分训练样本进行划分,以构建出该异常检测模型对应的树结构,构建出的该异常检测模型对应的树结构中包含有构建出的多个节点,以及每个节点对应的数据区间。

具体的,针对每个异常检测模型来说,服务器需要先根据该异常检测模型对应的训练样本集所包含的训练样本,确定出这些训练样本所对应的一个总体数据区间,该总体数据区间所对应的节点即为根节点。然后选择一个随机值,该总体数据区间进行分割,得到两个子数据区间,而这两个子数据区间对应的节点,即为与根节点直接相连的两个叶子节点,进一步地,针对每个子数据区间,服务器可以再选取一个随机值,将该子数据区间进行分割,进而得到在以该子数据区间对应的节点为父节点的情况下,两个子节点对应的数据区间,以此类推。服务器最终可以得到有多个叶子节点和一个根节点构成的树结构,该树结构中的每个节点均对应一个数据区间。

服务器在构建该异常检测模型对应的树结构时,可以将所有训练样本均完全分开作为目标,构建出该树结构。而需要说明的是,由于训练样本集中包含的训练样本过多,所以,若是要以将所有训练样本均完全分离为目标构建出该异常检测模型对应的树结构,则很可能会导致最终得到的树结构所包含的节点数过多,也即,树结构的深度过大,这很可能会影响后续实际应用中的异常检测效率。并且,从上述内容可以看出,对异常数据起到有效检测作用的是树结构中距离根节点较近的叶子节点。所以,这也要求树结构的深度并不一定要过大,只需要保证树结构能够将异常数据区分出即可。

基于此,在本说明书实施例中,可以预先对树结构的深度进行限定,即,可以设置一个设定树结构深度,所以,在通过训练样本集中的训练样本构建该异常检测模型对应的树结构时,若是确定该树结构的深度已经到达了设置的设定树结构深度,则可以停止对距离根节点最远的叶子节点(即到达设定树结构深度的叶子节点)所对应的数据区间进行继续分割。

在本说明书实施例中,服务器通过上述方式构建出各异常检测模型对应的树结构后,可以使用验证集,对各异常检测模型进行检验。具体的,服务器可以针对验证集中包含的每个验证样本,通过构建出的每个异常检测模型所对应的树结构,对该验证样本进行分类,得到该验证样本对应的异常检测结果,该异常检测结果是指验证样本最终落入的数据区间所对应的节点在树结构中位置信息,即在树结构中所处的深度。而后,服务器可以根据验证集中包含的每个验证样本对应的异常检测结果,以及验证集中包含的异常样本,对每个异常检测模型对应的树结构进行调整,以对每个异常检测模型进行训练。

其中,服务器可以根据每个验证样本对应的异常检测结果是否满足验证样本对应的实际结果,对每个异常检测模型对应的树结构进行调整。当然,服务器也可以根据验证集中检验出的验证样本中的异常样本的比例,与验证集中异常样本所占的实际比例是否相符,来对每个异常检测模型对应的树结构进行调整,直到训练的异常检测模型满足实际的需求。

从上述训练过程中可以看出,所谓的训练实际上包括两个部分,一是使用样本训练集构建出每个异常检测模型对应的树结构,二是通过验证集,对树结构进行调整。树结构的调整主要涉及对树结构中各节点分布情况的调整,以及对每个节点对应的数据区间进行调整。其中,树结构的调整过程,也可以视作是重新构建树结构的过程,即,若是通过验证集确定出当前针对每个异常检测模型所构建出的树结构不符合验证集所对应的检测目标,则可以重新通过获取到的各用户在各历史业务周期的业务数据,构建出每个异常检测模型对应的训练样本集,进而通过构建出的训练样本集,对每个异常检测模型对应的树结构进行重新构建,直至重新构建出的每个异常检测模型对应的树结构能够符合验证集所对应的检测目标为止。

s104:确定所述目标节点在该异常检测模型对应的树结构中的位置信息,作为所述业务数据在该异常检测模型中所对应的位置信息。

s106:根据所述业务数据在每个异常检测模型中所对应的位置信息,对所述业务数据进行异常检测。

在本说明书实施例中,服务器确定目标节点在该异常检测模型对应的树结构中的位置信息,作为业务数据在该异常检测模型中所对应的位置信息,并根据业务数据在每个异常检测模型中所对应的位置信息,对所述业务数据进行异常检测,这里提到的位置信息可以是指该目标节点在该异常检测模型对应的树结构中所处的深度。

进一步地,服务器针对每个异常检测模型,可以根据业务数据在该异常检测模型中所对应的位置信息,确定业务数据在该异常检测模型中对应的异常表征值。其中,若目标节点距离该异常检测模型对应的树结构包含的根节点越近,则业务数据在该异常检测模型中对应的异常表征值越高,相应的,该业务数据为异常数据的可能性越高,若目标节点距离该异常检测模型对应的树结构包含的根节点越远,则业务数据在该异常检测模型中对应的异常表征值越低,相应的,该业务数据为异常数据的可能性也越低。

需要说明的是,上述每个异常检测模型对应的树结构中,划分出的各节点对应的数据区间带有一定的随机性,所以,对于一个异常数据来说,该异常数据可能在一些异常检测模型对应的树结构中所处的节点距离根节点较近,在另一些异常检测模型对应的树结构中所处的节点距离根节点较远。但是,相比于正常数据来说,在所有异常检测模型对应的树结构中,异常数据所处的节点距离根节点总体上都是相对较近的。

因此,服务器在确定出该业务数据在每个异常检测模型中对应异常表征值后,可以确定出该业务数据在每个异常检测模型中对应的平均异常表征值,并通过该平均异常表征值,对该业务数据进行检测。其中,若确定出该平均异常表征值不低于设定阈值,则可以确定该业务数据为异常数据,若是确定该平均异常表征值低于设定阈值,则可以确定该业务数据为正常数据。

当然,服务器也可以采用其他的方式,来对该业务数据进行检测。例如,服务器在确定出该业务数据在每个异常检测模型中对应异常表征值后,可以确定出高于设定阈值的异常表征值的数量,若是该数量超过设定数量,则可以确定出该业务数据为异常数据,否则确定出该业务数据为正常数据。其他方式在此就不一一举例说明了。

需要说明的是,为了保证异常检测的准确性,在本说明书实施例中,服务器可以将获取到的各用户在当前业务周期的业务数据,作为补充业务数据,并将补充业务数据加入到训练样本集中。也就是说,服务器不断的获取新的实时的业务数据,并将该业务数据作为补充业务数据,将补充业务数据添加在训练样本集中,调整每个异常检测模型对应的训练样本集,得到调整后训练样本集。

在实际应用中,业务可能会发生不断的迭代更新,相应的,业务对应的业务数据也可以会发生一定的变化,而为了能够保证每个异常检测模型能够适应业务的不断变化,可以将上述补充业务数据加入到训练样本集中的同时,从训练样本集中确定出距离当前业务周期的时间长度最远的历史业务周期,作为目标历史业务周期,进而将目标历史业务周期对应的业务数据从训练样本集中删除,以此来调整训练样本集。

其中,目标历史业务周期对应的业务数据可以认为是与当前的业务契合程度相对较低的业务数据。而通过这种方式所得到的调整训练样本集对每个异常检测模型进行调整,一是可以保证每个调整后异常检测模型能够与当前的业务相契合,二是能够在一定程度上保证每个调整后异常检测模型对应的树结构对异常数据的适应范围不会增大,从而可以有效的保证异常检测的准确性。

服务器通过调整后训练样本集,对每个异常检测模型对应的树结构中的节点进行删除或增加。如图2a所示。

图2a为本说明书实施例提供的树结构中删除节点的示意图。

在本说明书实施例中,服务器针对每个异常检测模型,从该异常检测模型对应的树结构中,确定在对该异常检测模型进行训练时,通过目标历史业务周期对应的业务数据所构建出的节点,作为待删除节点,如图2a中的x节点。而后,服务器可以将x节点删除,并将b节点替换为c节点。

需要说明的是,位于树结构中最大深度的节点可能会对应一个数据区间,而目标历史业务周期对应的业务数据可能只是该数据区间中的一个,对于这种情况来说,服务器也可以不删除该业务数据所对应节点,即,树结构不发生变化。

在本说明书实施例中,服务器通过调整后训练样本集,对该异常检测模型对应的待调整树结构进行调整,得到该异常检测模型对应的调整后异常检测模型。其中,在调整异常检测模型的过程中,可能会涉及到树结构中节点的增加,如图2b所示。

图2b为本说明书实施例提供的树结构中增加节点的示意图。

在本说明书实施例中,服务器针对待调整树结构中包含的每个节点,若该节点未连接有子节点(图中的b节点),且确定补充业务数据中包含的至少两个业务数据落入到该节点对应的数据区间内,按照落入到该节点对应的数据区间内的业务数据,对该节点对应的数据区间进行划分,以得到该节点对应的新增子节点(图中的c节点和图中的x节点),进而根据待调整树结构中包含的每个节点对应的新增子节点,对该异常检测模型对应的待调整树结构进行调整,得到该异常检测模型对应的调整后异常检测模型。相应的,服务器可以通过每个调整后异常检测模型,对获取到的用户在下一业务周期的业务数据进行异常检测。

需要指出的是,在实际应用中,服务器在删除训练样本的过程中可能出现树结构中所有的节点都被删除的情况,在该情况下,服务器可以根据调整后训练样本集重新构建树结构。

其中,服务器判断该节点在待调整树结构中处的位置是否满足预设条件,该预设条件是指该节点在待调整树结构中处的位置是否未达到设定树结构深度,若是,按照落入到该节点对应的数据区间内的业务数据,对该节点对应的数据区间进行划分,以得到该节点对应的新增子节点,否则,不对该节点对应的数据区间进行划分。

从上述过程中可以看出,服务器可以基于用户在当前业务周期的业务数据,实时的对业务数据进行异常检测,还可以将补充业务数据加入到训练样本集中的同时,删除与当前的业务契合程度相对较低的目标历史业务周期对应的业务数据,通过所得到的调整训练样本集对每个异常检测模型进行调整,一是可以保证每个调整后异常检测模型能够与当前的业务相契合,二是能够在一定程度上保证每个调整后异常检测模型对应的树结构对异常数据的适应范围不会增大,从而可以有效的保证异常检测的准确性,服务器可以设置一个设定树结构深度,若是确定该树结构的深度已经到达了设置的设定树结构深度,则可以停止对到达设定树结构深度的叶子节点所对应的数据区间进行继续分割,以此加快异常检测模型的计算效率,从而保证了用户的业务处理效率,给用户的实时业务处理带来了一定的便利。

以上为本说明书的一个或多个实施例提供的异常检测的方法,基于同样的思路,本说明书还提供了相应的异常检测的装置,如图3所示。

图3为本说明书实施例提供的异常检测的装置的结构示意图,具体包括:

获取模块300,用于获取用户在当前业务周期的业务数据;

分类模块302,用于针对预先训练的每个异常检测模型,根据该异常检测模型中包含的各节点对应的数据区间,对所述业务数据进行分类,以确定所述业务数据所落入的数据区间对应的节点,作为目标节点,其中,该异常检测模型中包含有一个根节点和多个叶子节点,该异常检测模型中包含的一个根节点以及多个叶子节点构成该异常检测模型对应的树结构;

确定模块304,用于确定所述目标节点在该异常检测模型对应的树结构中的位置信息,作为所述业务数据在该异常检测模型中所对应的位置信息;

检测模块306,用于根据所述业务数据在每个异常检测模型中所对应的位置信息,对所述业务数据进行异常检测。

可选地,所述检测模块306具体用于,针对每个异常检测模型,根据所述业务数据在该异常检测模型中所对应的位置信息,确定所述业务数据在该异常检测模型中对应的异常表征值,其中,若所述目标节点距离该异常检测模型对应的树结构包含的根节点越近,所述业务数据在该异常检测模型中对应的异常表征值越高,若所述目标节点距离该异常检测模型对应的树结构包含的根节点越远,所述业务数据在该异常检测模型中对应的异常表征值越低,根据所述业务数据在每个异常检测模型中对应的异常表征值,对所述业务数据进行异常检测。

可选地,所述分类模块302具体用于,获取训练样本集以及验证集,所述训练样本集是通过获取到的各用户在各历史业务周期的业务数据构建出的,针对每个异常检测模型,将所述训练样本集中包含的至少部分训练样本进行划分,以构建出该异常检测模型对应的树结构,构建出的该异常检测模型对应的树结构中包含有构建出的多个节点,以及每个节点对应的数据区间,针对所述验证集中包含的每个验证样本,通过构建出的每个异常检测模型所对应的树结构,对该验证样本进行分类,得到该验证样本对应的异常检测结果,根据所述验证集中包含的每个验证样本对应的异常检测结果,以及所述验证集中包含的异常样本,对每个异常检测模型对应的树结构进行调整,以对每个异常检测模型进行训练。

可选地,所述检测模块306具体用于,获取到的各用户在所述当前业务周期的业务数据,作为补充业务数据,根据所述补充业务数据,调整所述每个异常检测模型对应的训练样本集,得到调整后训练样本集,通过所述调整后训练样本集,对所述每个异常检测模型进行调整,得到每个调整后异常检测模型,通过所述每个调整后异常检测模型,对获取到的用户在下一业务周期的业务数据进行异常检测。

可选地,所述检测模块306具体用于,从所述训练样本集中确定出距离所述当前业务周期的时间长度最远的历史业务周期,作为目标历史业务周期,通过将所述目标历史业务周期对应的业务数据从所述训练样本集中删除,以及将所述补充业务数据添加在所述训练样本集中,调整所述训练样本集。

可选地,所述检测模块306具体用于,针对每个异常检测模型,从该异常检测模型对应的树结构中,确定在对该异常检测模型进行训练时,通过所述目标历史业务周期对应的业务数据所构建出的节点,作为待删除节点,将所述待删除节点从该异常检测模型对应的树结构中删除,并将所述待删除节点对应的父节点的另外一个子节点,作为所述待删除节点对应的父节点,得到该异常检测模型对应的待调整树结构,通过所述调整后训练样本集,对该异常检测模型对应的待调整树结构进行调整,得到该异常检测模型对应的调整后异常检测模型。

可选地,所述检测模块306具体用于,针对所述待调整树结构中包含的每个节点,若该节点未连接有子节点,且确定所述补充业务数据中包含的至少两个业务数据落入到该节点对应的数据区间内,按照落入到该节点对应的数据区间内的业务数据,对该节点对应的数据区间进行划分,以得到该节点对应的新增子节点,根据所述待调整树结构中包含的每个节点对应的新增子节点,对该异常检测模型对应的待调整树结构进行调整,得到该异常检测模型对应的调整后异常检测模型。

可选地,所述检测模块306具体用于,判断该节点在所述待调整树结构中处的位置是否满足预设条件,若是,按照落入到该节点对应的数据区间内的业务数据,对该节点对应的数据区间进行划分,以得到该节点对应的新增子节点,否则,不对该节点对应的数据区间进行划分。

本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的异常检测的方法。

本说明书还提供了图4所示的电子设备的结构示意图。如图4所述,在硬件层面,该异常检测的方法的设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的异常检测的方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

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