一种时间序列中异常点检测方法及装置
技术领域
本申请涉及数据处理技术领域,特别涉及一种时间序列中异常点检测方法及装置。
背景技术
近几年,基于互联网平台的各种产品为用户提供了多种便捷的服务,如购物,理财,保险等。对于各个互联网产品来说,保障用户的账户和操作安全是让用户放心和信任的前提。因此,目前各个互联网产品的信息安全部门可以通过海量的历史数据分析,将风控业务经验转化为防控策略和智能模型,构建庞大而复杂的安全防护体系,以保障用户的账号安全。然而,互联网安全领域时刻进行着攻击和防护,不法份子会不断改变攻击方式和手段,试图突破安全防护。因而,安全防护体系的构建需要随着风险形势的变化而快速做出响应,甚至提前防范,这就要求信息安全部门频繁地对最新的风险形势进行刻画和监控,以便及时响应异常情况的发生。
在进行安全监控的过程中,可以对安全业务指标进行实时监控,当业务指标发生异常时,及时告知相关人员进行跟进和处理。传统的监控方式是对每一个业务指标,通过人工经验配置规则,在业务指标发生异常波动时进行告警。然而,安全业务指标往往包含成千上万条指标,随着策略及其关注指标的不断增加,需要配置的规则越来越多,监控方式变得异常复杂,难以管理和运维。并且,基于历史经验的人工配置规则,无法灵活地响应风险形势的变化,以及进行自适应地调整,因此,会带来相当多的误报警(虚警率高),准确率较低。相关人员在接收到过多的误报警之后,会降低对安全指标业务监控方式的信任和耐心,当真正发生指标异常的时候,却容易忽视而错过最佳的处理时机。
发明内容
本申请实施例的目的在于提供一种业务处理异常检测方法及装置,可以及时处理异常状况,避免用户获取到异常服务。
本申请实施例提供的一种业务处理异常检测方法及装置具体是这样实现的:
一种时间序列中异常点检测方法,所述方法包括:
获取业务指标时间序列中的离散点;
对包含所述离散点的时间子序列进行聚类预测,确定所述离散点的第一预测结果;
利用时序分解方法从所述离散点的指标值中分解出误差值,并根据所述误差值确定所述离散点的第二预测结果;
根据所述第一预测结果和所述第二预测结果,确定所述离散点的异常预测结果。
一种时间序列中异常点检测装置,所述装置包括:
离散点获取单元,用于获取业务指标时间序列中的离散点;
聚类预测单元,用于对包含所述离散点的时间子序列进行聚类预测,确定所述离散点的第一预测结果;
时序分解单元,用于利用时序分解方法从所述离散点的指标值中分解出误差值,并根据所述误差值确定所述离散点的第二预测结果;
异常预测单元,用于根据所述第一预测结果和所述第二预测结果,确定所述离散点的异常预测结果。
一种时间序列中异常点检测装置,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
获取业务指标时间序列中的离散点;
对包含所述离散点的时间子序列进行聚类预测,确定所述离散点的第一预测结果;
利用时序分解方法从所述离散点的指标值中分解出误差值,并根据所述误差值确定所述离散点的第二预测结果;
根据所述第一预测结果和所述第二预测结果,确定所述离散点的异常预测结果。
本申请提供的时间序列中异常点检测方法及装置,可以分别通过聚类预测和时序分解两种方式对离散点进行异常预测。其中,聚类预测方式可以克服单点估计的不稳定性,避免将单个噪声点误判成异常点的情况发生,对于结构性异常的预测更加稳健;时序分解方式可以有效消除周期性很强的时间序列中趋势性和周期性的影响,得到基于误差的平稳序列,从而易于提取出异常点。将上述两种方式融合之后判断离散点是否异常,可以增加异常点识别的准确率,相对于现有技术中利用基线检测的方式,可以大大减少异常点误报警的情况发生。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的时间序列中异常点检测方法的一种实施例的流程示意图;
图2是本申请提供的训练预设统计窗口宽度方法的一种实施例的方法流程示意图;
图3是本申请提供的异常初步判断方法的一种实施例的方法流程图;
图4是本申请提供的对离散点聚类预测方法的一种实施例的方法流程图;
图5是本申请提供的对离散点时序分解预测方法的一种实施例的方法流程图;
图6是本申请提供的时间序列中异常点检测装置的一种实施例的模块结构示意图;
图7是本申请提供的时间序列中异常点检测装置的另一种实施例的模块结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面首先对本申请的技术方案的技术环境进行说明。
业务安全指标数据是一种随时间变化而波动的时间序列,如每分钟的用户活跃数等。通过分析时间序列可以发现,时间序列往往存在一定的趋势性和周期性,同时在一定范围内具有正常的波动。而时间序列中的异常点,和正常的数据分布在统计上存在较为明显的差异。通过统计分析历史时间序列和当前时间序列,可以发现异常点的特征和分布,进而进行异常点的检测和识别。
为了检测时间序列中的异常点,学术界和工业界做出了大量的研究和尝试。一种常用且简便的方案是,假设业务指标数据满足正态分布,以分钟级指标数据为例,即假设业务指标在历史上每天相同时间点的数据服从高斯分布,则可以通过统计历史数据的分布,求出高斯分布的对应参数(如均值和方差)。根据统计学中高斯分布的3-sigma准则,指标值大于(均值+3×方差)的概率很低,对于指标值大于(均值+3×方差)的离散点基本可以判定为异常点,这类方法常称为基线检测方法。
对于风控业务指标的异常检测,基于简单高斯分布的基线检测方法往往存在较多的异常误报。Yahoo开源的时序异常检测项目EGADS(Extendible Generic AnomalyDetection System),该项目的框架主要包含时间序列构造模块和异常检测模块。给定一段时间的离散值(构成一个序列),时间序列模块会学习这段序列的特征,并试图重新构建一个和原序列尽量接近的序列。结果和原序列一同送入异常检测模块,基于不同的算法(规则,阈值,聚类等),异常点会被标记出来。EGADS的优点是异常检测模块集成了多种不同的异常检测算法,最后通过多数表决的方法,确定最终的检测结果,具有简单的集成学习思想。
通过大量的数据分析和测试,发现目前业务指标的异常检测主要面临以下三点困难:
(1)不同的业务指标的数值分布动态范围差异较大,有些业务指标单位时间内均值在100以上,有些在10以下。对于数量级较小的业务指标的数值分布,均值和方差波动较大,简单的高斯分布无法很好的刻画这样的数值分布,会使得异常检测算法存在较多的误报;
(2)由于风险形势的变化和迁移,风控业务指标变化较快,伴有一定的趋势性和周期性,多数不满足平稳性序列分布条件;
(3)业务指标的异常类型也有所差异,时序异常点的类型可以分为单点异常、结构性异常和群体异常,单一的检测方法往往很难适用不同类型的异常点的检测。
基于类似于上文描述的实际技术需求,本申请提供的技术方案可以利用已有的业务处理数据,针对各个业务场景进行模拟检测,并将模拟检测结果与实际结果进行对比,若两者不相同,则确定针对该业务场景的处理发生异常。
下面结合附图对本申请所述的时间序列中异常点检测方法进行详细的说明。图1是本申请提供的时间序列中异常点检测方法的一种实施例的方法流程示意图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的时间序列中异常点检测过程中,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
具体的本申请提供的一种时间序列中异常点检测方法的一种实施例如图1所示,所述方法可以包括:
S101:获取业务指标时间序列中的离散点。
本实施例中,所述业务指标可以包括互联网平台上的各种数据指标,所述业务指标例如可以包括用户活跃量、产品交易量、交易总额等数据指标。在实际业务指标统计过程中,可以按照每分钟、每5分钟、每10分钟等时间间隔进行数据统计,并产生业务指标的时间序列,则所述时间序列中可以包括多个离散点,每个离散点可以表示某一时刻的业务指标值,例如当业务指标为用户活跃量时,其中的一个离散点为2017年6月20日10:00的用户活跃量为1亿4000万。
在本申请的一个实施例中,所述业务指标时间序列可以被设置为按照下述方式获取:
按照预设统计窗口获取所述业务指标时间序列,其中,所述预设统计窗口的宽度被设置为根据所述业务指标的历史时间序列进行训练得到。
本实施例中,可以按照预设统计窗口获取所述业务指标时间序列。在实际情况中,部分业务指标的动态范围较大,其均值和方差波动较大,对估计统计参数具有较大的影响。另一方面,当业务指标的数值量级较小时,往往对业务影响不明显,因此,需要加宽对此类业务指标的统计窗口,例如从原来的每分钟统计一次变成每10分钟统计一次。基于此,对于不同的业务指标,可以设置不同宽度的统计窗口。在本申请的一个实施例中,所述预设统计窗口的宽度可以根据所述业务指标的历史时间序列进行训练得到。具体地,如图2所示,在一个实施例中,所述根据所述业务指标的历史时间序列进行训练得到所述预设统计窗口的宽度可以包括:
S201:设置初始窗口,并按照所述初始窗口获取所述业务指标的历史时间序列;
S203:判断所述历史时间序列中预设百分比离散点的指标值是否大于预设指标值;
S205:若判断结果为否,则增大所述初始窗口的宽度,直至所述初始窗口内的时间序列中所述预设百分比离散点的指标值大于所述预设指标值,并将当前的初始窗口的宽度作为统计窗口的宽度。
本实施例中,首先可以设置初始窗口,并按照所述初始窗口获取所述业务指标的历史时间序列。然后,可以获取所述历史时间序列中的离散点的指标值,并判断所述历史时间序列中预设百分比离散点的指标值是否大于预设指标值。如果判断结果为否,则调整所述初始窗口的宽度,直至所述初始窗口内的时间序列中所述预设百分比离散点的指标值大于所述预设指标值,并将当前的初始窗口的宽度作为统计窗口的宽度。在一个典型的示例中,所述预设百分比可以根据业务经验设置为75%,若所述历史时间序列中75%的离散点的指标值大于预设指标值时,则可以确定所述历史时间序列的数据波动较大,对业务影响具有显著性;否则,可以确定所述历史时间序列的数据波动较小,不满足业务影响的显著性要求。当所述历史时间序列不满足显著性要求时,可以增大所述初始窗口的宽度,直至所述历史时间序列中75%的离散点的指标值大于预设指标值。需要说明的是,所述预设指标值的大小可以根据实际业务需求进行设置,具体的数值可以根据历史数据统计得到。
利用上述实施例方法,可以获取窗口宽度与所述业务指标的数量级相匹配的统计窗口,这样,可以使得用于训练的历史时间序列的数据波动较大,具有显著的业务影响力。
S103:对包含所述离散点的时间子序列进行聚类预测,确定所述离散点的第一预测结果。
本实施例中,可以利用聚类预测方法判定所述离散点是否是异常点。在利用聚类预测方法进行判定之前,还可以首先对所述离散点的异常状况进行初步判断,在本申请的一个实施例中,可以利用上述基线检测方法进行初步判断,具体地,如图3所示,所述对包含所述离散点的时间子序列进行聚类预测可以包括:
S301:获取根据所述业务指标的历史时间序列训练得到的预设均值和预设方差;
S303:判断所述离散点的指标值是否大于(预设均值+3×预设方差);
S305:若判断结果为是,则对包含所述离散点的时间子序列进行聚类预测。
一般地,可以认为时序序列中离散点的指标值服从高斯分布,则可以利用3-segma准则进行异常判断,即当离散点的指标值大于(均值+3×方差)时,则可以确定该离散点为异常点。本实施例中,在利用3-segma准则对所述离散点进行异常判断时,所述均值和方差可以利用历史时间序列训练得到,并生成所述预设均值和所述预设方差。上述基线检测方法满足较为严格的统计分布要求,对异常点召回率较高,基本不会漏检的情况。但是,一些正常的系统噪声导致的数据扰动也有可能会被误判为异常点。因此,本申请实施例中还需要对被判定为异常点的离散点进行进一步的异常判定,以保证该离散点不是被误判成异常点。
本实施例中,可以对已经被初步判定为异常点的离散点进行聚类预测,具体地,如图4所示,所述对包含所述离散点的时间子序列进行聚类预测,确定所述离散点的第一预测结果可以包括:
S401:获取包含所述离散点的预设窗口内的时间子序列;
S403:分别计算所述时间子序列距与多个预设类别的聚类中心的距离,其中,所述多个预设类别包括根据对所述业务指标的历史时间序列聚类分析得到的类别;
S405:判断所述距离中的最小距离是否大于预设距离阈值;
S407:若判断结果为是,则确定所述离散点为异常点。
在进行上述初步异常判定过程中,可能因为正常的数据扰动将离散点误检为异常点,例如在一些情况下,该异常点可能只是一个单点噪声,而在初步异常判定过程中,可能会将该单点噪声误检为异常点。本实施例中,可以联合所述离散点前后窗口内的数据,通过判断一个窗口的数据分布是否发生异常,从而来判断所述离散点是否发生异常。在一个具体的实施方式中,可以对所述业务指标的历史时间序列进行聚类分析,得到所述历史时间序列中的多个聚类。然后,通过判断包含所述离散点的时间子序列是否属于上述多个聚类中的一种,若判断结果为否,则可以确定该离散点为异常点。
在对所述业务指标的历史时间序列进行聚类分析时,可以设置一定的窗口获取所述历史时间序列中的离散点数据。若设置窗口长度为W(即一个窗口内有W个离散点),则可以生成长度为W的向量,此时可以将窗口内的离散点数据分布看成一个多维随机变量,并假设满足多维高斯分布。本实施例中,可以将历史时间序列按照一定步长和窗口大小划分成多个时间子序列,考虑到不同时间子序列的分布具有差异性,本实施例中,可以采用混合高斯模型建模,即某个多维随机变量(即时间子序列)可以由多个高斯分布线性叠加得到,统计学理论中,通过混合高斯模型可以逼近实际中任意形式的随机分布。例如,K-means是混合高斯模型的一种,其基本思想是假设历史时间序列分布有K个聚类中心,以某种距离(如欧氏距离)为相似性度量,通过迭代方法,可以将时间子序列划分到距离最相近的中心点的类别中。
需要说明的是,在对所述历史时间序列进行聚类分析之前,还可以对所述历史时间序列进行初步异常检测,检测出其中的异常点,并滤除所述异常点,以保证所述历史时间序列的正常性,降低异常点对训练过程的干扰。具体地,可以利用上述初步异常判定的方式检测所述历史时间序列的异常点。
在一个示例中,可以将一段历史时间序列按照指定步长step(如step=30)和窗口大小W(如W=60)切分成多个长度为W的时间子序列,并以所述多个时间子序列作为训练样本进行K-means聚类。以分钟级的指标数据为例,在一天24小时内,假设可以聚为12类,则可以设置初始聚类中心个数为K=12,经过迭代收敛后,得到训练样本的K个聚类中心。然后,分别计算各个训练样本到其聚类中心的欧式距离,并统计所有训练样本对应的欧式距离的均值和方差。最后,存储K个聚类中心参数以及所述均值、所述方差。
本实施例中,在对所述离散点进行聚类预测时,可以获取包含所述离散点的时间子序列。在一个实施例中,当所述离散点为实时数据时,可以获取预设窗口内以所述离散点为终点的时间子序列。在另一个实施例中,当所述离散点为非实时数据时,可以设置预设窗口内以离散点为中点的时间子序列。需要说明的是,所述预设窗口的宽度可以与对历史时间序列训练时的窗口宽度一致,例如窗口宽度均为W。本实施例中,在确定所述时间子序列之后,可以分别计算所述时间子序列与多个预设类别的聚类中心的距离,其中,所述多个预设类别包括根据对所述历史时间序列聚类分析得到的类别,例如上述12个聚类。
本实施例中,在对历史时间序列进行训练的过程中,若多个训练样本的欧式距离满足高斯分布,则根据3-segma准则,当所述时间子序列和所述预设类别聚类中心的距离中的最小距离大于(均值+3×方差)时,则可以确定该时间子序列不属于所述预设类别中的任何一种,即所述时间子序列存在异常,进而确定所述时间子序列对应的离散点为异常点。因此,本实施例中的所述预设距离阈值可以设置为(均值+3×方差),所述均值和方差可以分别为所述训练样本的均值和方差。
本实施例中,可以联合所述离散点前后窗口内的时间序列进行聚类预测,防止所述在初步异常判定过程中将单点噪声误判成异常点,克服单点的不稳定性导致异常误判的现象。
S105:利用时序分解方法从所述离散点的指标值中分解出误差值,并根据所述误差值确定所述离散点的第二预测结果。
本实施例中,在风控指标存在对抗的过程中,业务指标的数据往往具有一定的趋势性和周期性,此时,业务指标的数据分布不再满足平稳序列的假设,基于统计分布假设的模型(如上述初步异常判定算法和聚类算法)不能很好的刻画此类变化。因此,本实施例中另一方面还可以通过时序分解法对所述离散点进行预测。在时序分解法中,可以将时间序列中的离散点分解成趋势值、周期值和误差值三部分,将趋势值和周期值去除之后,可以得到离散点的误差值,本实施例中,可以通过所述误差值判断所述离散点的平稳性。
下面非限制性地以STL(Seasonal and Trend decomposition using Loess)分解法举例说明,利用STL分解法对所述业务指标的历史时间序列进行时序分解。STL分解法是一种兼具通用性和鲁棒性的时序分解算法,可以处理任何类型的季节变动因素(不仅仅是季度或月份),且在算法过程中通过对时间序列进行局部加权回归平滑(Locally WeightedScatter plot Smoothing,LOESS)和低通滤波处理,对异常点更加鲁棒。STL分解法主要由内外两层循环迭代实现,假设时间序列由趋势项、周期项和误差项叠加得到:
Y=T+S+R
其中,Y为历史时间序列,T为趋势项,S为周期项,R为误差项。在一些情况下,对于加法模式不满足的时间序列,可以用乘法模式刻画,然后利用对数变换将乘法模式转换为加法模式进行处理。STL分解法的循环迭代如下述步骤:
1)设置趋势项的初始值:T(k)=0;
2)从历史时间序列中去除趋势项:Y–T(k);
3)历史时间序列平滑:使用LOESS平滑方法,选取延展窗口l和平滑参数,获得平滑后的历史时间序列C(k+l);
4)低通滤波:对C(k+l)进行三次滑动平均和一次LOESS平滑,得到滤波后的序列L(k+l);
5)去除趋势项:S(k+l)=C(k+l)–L(k+l);
6)去除周期项:Y–S(k+l);
7)对序列Y–S(k+l)做LOESS过程平滑,得到T(k+l);
8)判断T(k+l)是否收敛,如果未收敛,返回步骤2),继续循环迭代;否则,进行9);
9)获得历史时间序列分解的各项:S=S(k+l),T=T(k+l),R=Y–S–T。
通过分解去除所述历史时间序列的趋势项和周期项后,可以认为剩余的误差项满足高斯分布,则可以统计所述误差项的均值和方差。最后,还可以存储根据所述历史时间序列训练得到的趋势值和周期值,以及根据误差项统计得到的均值和方差。
本实施例中,在利用时序分解法对所述离散点进行时序分解时,具体地,如图5所示,所述利用时序分解方法从所述离散点中分解出误差值,并根据所述误差值确定所述离散点的第二预测结果可以包括:
S501:从所述离散点的指标值中提取趋势值、周期值和误差值,其中,所述趋势值和所述周期值包括根据对所述业务指标的历史时间序列进行训练得到的值;
S503:判断所述误差值是否大于预设误差阈值;
S505:若判断结果为是,则确定所述离散点为异常点。
本实施例中,可以从所述离散点的指标值中提取出误差值,具体地,可以从所述离散点的指标值中减去趋势值和周期值,其中,所述周期值和所述趋势值可以包括上述根据所述历史时间序列训练得到的值。然后,可以判断所述误差值是否大于预设误差阈值,若大于,则确定所述离散点为异常值。在此,同样可以基于依据3-sigma准则进行异常点的判定。即当所述误差值大于(均值+3×方差)时,可以确定所述离散点为异常点,其中,所述均值和所述误差可以为根据历史时间序列的误差项统计得到的均值和方差。在其他实施例中,由于受历史时间序列的长度限制,分解后的趋势项会有一定的残留,因此在根据误差值做判定时,可以N-sigma中准则进行异常点判定,其中N可以根据实际情况进行选择,如3,2,4,6,10等等。
S107:根据所述第一预测结果和所述第二预测结果,确定所述离散点的异常预测结果。
本实施例中,根据聚类预测方式得到对所述离散点的第一预测结果,根据时序分解方式得到对所述离散点的第二预测结果。在本实施例中,只有当两种方式都确定所述离散点为异常点时,才可以确定该离散点为异常点。
在实际应用场景中,对异常点的检测往往存在时间漂移,即在t1时刻发生的异常很可能在(t1+Δt)时刻监测出来,例如上午10:00发生的异常可以在10:05检测得到。本实施例中,由于利用了两种检测方式对所述异常点进行异常检测,存在两者都存在时间漂移,且两者漂移的时间数值不相同的情况。在本申请的一个实施例中,可以设置漂移窗口,允许通过上述两种方式检测出来的异常点具有一定的时间漂移,若两个异常点均在所述漂移窗口之内,则可以确定所述离散点为异常点。具体地,所述根据所述第一预测结果和所述第二预测结果,确定所述离散点的异常预测结果可以包括:
SS1:设置漂移窗口;
SS2:若所述第一预测结果和所述第二预测结果中均包括异常点,且所述异常点均位于所述漂移窗口内,则确定所述异常预测结果为所述离散点为异常点。
本申请提供的时间序列中异常点检测方法,可以分别通过聚类预测和时序分解两种方式对离散点进行异常预测。其中,聚类预测方式可以克服单点估计的不稳定性,避免将单个噪声点误判成异常点的情况发生,对于结构性异常的预测更加稳健;时序分解方式可以有效消除周期性很强的时间序列中趋势性和周期性的影响,得到基于误差的平稳序列,从而易于提取出异常点。将上述两种方式融合之后判断离散点是否异常,可以增加异常点识别的准确率,相对于现有技术中利用基线检测的方式,可以大大减少异常点误报警的情况发生。
本申请另一方面还提供一种时间序列中异常点检测装置,图6是本申请提供的时间序列中异常点检测装置的一种实施例的模块结构示意图,如图6所示,所述装置60可以包括:
离散点获取单元61,用于获取业务指标时间序列中的离散点;
聚类预测单元63,用于对包含所述离散点的时间子序列进行聚类预测,确定所述离散点的第一预测结果;
时序分解单元65,用于利用时序分解方法从所述离散点的指标值中分解出误差值,并根据所述误差值确定所述离散点的第二预测结果;
异常预测单元67,用于根据所述第一预测结果和所述第二预测结果,确定所述离散点的异常预测结果。
可选的,在本申请的一个实施例中,所述聚类预测单元63可以包括:
子序列获取单元,用于获取包含所述离散点的预设窗口内的时间子序列;
距离确定单元,用于计算所述时间子序列距离预设类别的聚类中心的距离,其中,所述预设类别包括根据对所述业务指标的历史时间序列聚类分析得到的类别;
距离判断单元,用于判断所述距离是否大于预设距离阈值。
第一异常点确定单元,用于若判断结果为是,则确定所述离散点为异常点。
可选的,在本申请的一个实施例中,所述时序分解单元65可以包括:
误差值提取单元,用于从所述离散点的指标值中提取趋势值、周期值和误差值,其中,所述趋势值和所述周期值包括根据对所述业务指标的历史时间序列进行训练得到的值;
误差值判断单元,用于判断所述误差值是否大于预设误差阈值;
第二异常点确定单元,用于若判断结果为是,则确定所述离散点为异常点。
可选的,在本申请的一个实施例中,所述业务指标时间序列可以被设置为按照下述方式获取:
按照预设统计窗口获取所述业务指标时间序列,其中,所述预设统计窗口的宽度被设置为根据所述业务指标的历史时间序列进行训练得到。
可选的,在本申请的一个实施例中,所述根据所述业务指标的历史时间序列进行训练得到所述预设统计窗口的宽度可以包括:
设置初始窗口,并按照所述初始窗口获取所述业务指标的历史时间序列;
判断所述历史时间序列中预设百分比离散点的指标值是否大于预设指标值;
若判断结果为否,则增大所述初始窗口的宽度,直至所述初始窗口内的时间序列中所述预设百分比离散点的指标值大于所述预设指标值,并将当前的初始窗口的宽度作为统计窗口的宽度。
可选的,在本申请的一个实施例中,所述预设指标值可以根据所述业务指标确定得到。
可选的,在本申请的一个实施例中,所述聚类预测单元63可以包括:
历史参数获取单元,用于获取根据所述业务指标的历史时间序列训练得到的预设均值和预设方差;
指标值判断单元,用于判断所述离散点的指标值是否大于(预设均值+3×预设方差);
聚类预测子单元,用于若判断结果为是,则对包含所述离散点的时间子序列进行聚类预测。
可选的,在本申请的一个实施例中,所述异常预测单元67可以包括:
漂移窗口设置单元,用于设置漂移窗口;
第三异常点确定单元,用于若所述第一预测结果和所述第二预测结果中均包括异常点,且所述异常点均位于所述漂移窗口内,则确定所述异常预测结果为所述离散点为异常点。
本申请另一方面还提供一种时间序列中异常点检测装置,图7是本申请提供的时间序列中异常点检测装置的一种实施例的模块结构示意图,如图7所示,所述装置70可以包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时可以实现:
获取业务指标时间序列中的离散点;
对包含所述离散点的时间子序列进行聚类预测,确定所述离散点的第一预测结果;
利用时序分解方法从所述离散点的指标值中分解出误差值,并根据所述误差值确定所述离散点的第二预测结果;
根据所述第一预测结果和所述第二预测结果,确定所述离散点的异常预测结果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上客户端或服务器时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。