基于时间序列的业务指标异常检测方法、装置和电子设备
技术领域
本说明书涉及计算机软件技术领域,尤其涉及一种基于时间序列的业务指标异常检测方法、装置和电子设备。
背景技术
随着业务的快速发展,开放运营平台可以提供多种智能分析的能力,例如:异常检测,用于监控、分析业务指标的异常波动情况。现在,异常检测可应用于小程序搜索、应用推荐等核心场景中,为这些网络产品的运营提供较为可靠的数据支撑。
当前,主要基于业务指标的时间序列对应的残差序列对业务指标进行异常检测。然而,由于某些核心业务指标的数值在不同阶段的量级差别较大,直接使用残差序列中残差值对业务指标进行异常检测,会收缩当前残差序列的样本空间统计值,导致异常检测可靠性不高。
发明内容
本说明书实施例的目的是提供一种基于时间序列的业务指标异常检测方法、装置和电子设备,用以有效提升异常检测准确度。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种基于时间序列的业务指标异常检测方法,包括:
确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列;
基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段;
基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
第二方面,提出了一种基于时间序列的业务指标异常检测装置,包括:
确定模块,确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列;
归一化模块,基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段;
检测模块,基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列;
基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段;
基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列;
基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段;
基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
由本说明书实施例提供的以上技术方案可见,基于预设的时间滑动窗口对残差序列中残差值进行归一化处理,从而,将绝对残差值转换为相对残差值,可以自适应不同业务发展阶段下不同的业务体量,避免由于量级差别较大而收缩整个残差序列的统计值的情况,提升统计准确性,进而,有效提升异常检测准确度。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书的一个实施例提供的基于时间序列的业务指标异常检测方法步骤示意图;
图2是本说明书的一个实施例提供的基于中位数移动策略对时间序列中异常数据进行平滑预处理的原理示意图;
图3是本说明书的再一个实施例提供的基于时间序列的业务指标异常检测方法步骤示意图;
图4a-图4b分别是本说明书的一个实施例提供的用户对支付宝的访问量曲线图;
图5是本说明书的一个实施例提供的电子设备的结构示意图;
图6是本说明书的一个实施例提供的基于时间序列的业务指标异常检测装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
首先,对本说明书实施例可能会涉及的一些专用术语进行解释。
-时间序列:将同一统计指标在不同时间上的数值,按其发生的时间先后顺序排列而成的数列。
-残差:指实际观察值与估计值(拟合值)之间的差。
-异常检测:是发现与大部分对象不同的对象,其实就是发现离群点的过程。异常检测有时也称偏差检测。其中,本说明书中主要以离群检测算法(Extreme StudentizedDeviate,ESD)检测为例介绍针对业务指标的异常检测。
-ESD异常检测:是一种检测离群值的方法,主要用于检验服从近似正态分布的一个单变量数据集中的一个或多个离群值。
实施例一
参照图1所示,为本说明书实施例提供的基于时间序列的业务指标异常检测方法步骤示意图,该异常检测方法的执行主体可以是具备计算处理功能的电子设备,例如,电脑、智能手机、智能穿戴设备等智能终端,以及各类服务器等。所述异常检测方法可以包括以下步骤:
步骤102:确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列。
应理解,本说明书实施例中所涉及的业务指标可以是各类业务中所涵盖的指标类型,例如,针对网站、APP等网络运营产品而言,其业务指标可以包括:用户访问量、用户下载量、用户访问时长、小程序搜索量等。本说明书并不对业务指标的类型进行限定。
残差序列可以是基于目标业务指标对应的时间序列,进行实际值与估计值之差排列而成的数列,该残差序列可以用于对目标业务指标进行异常检测分析。
步骤104:基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段。
区别于现有技术方案,在本说明书实施例中,基于至少一个预设的时间滑动窗口,从残差序列中获取相对应的残差序列段,其中,每个残差序列段与相应的预设的时间滑动窗口所表征的时间段对应。这样处理,实质上是通过至少一个预设的时间滑动窗口,将残差序列划分为了不同的残差序列段。然后,分别对每个残差序列段中残差值进行归一化处理,得到至少一个相对残差序列段。
应理解,所述预设的时间滑动窗口,可以是根据业务访问时段确定的,例如,重点关注的时段或是业务指标比较重要的时段,再如,白天和晚上的业务访问量差距较大,可以设置第一预设的时间滑动窗口对应白天工作时段,以及,第二预设的时间滑动窗口对应晚上非工作时段。
优选地,所述预设的时间滑动窗口可以是根据所述残差序列中目标业务指标体量的量级确定。
例如,针对业务指标中体量较大的时间序列,其前期业务指标体量的量级可能仅0.1万,而中期业务指标体量的量级飙升至百万,后期业务指标体量的量级回落至0.1万。这样,考虑到针对某些业务指标的残差序列(此时残差序列中残差值为绝对残差值),其业务指标在整个样本空间(即残差序列)中,不同时期的业务指标体量的量级差别可能较大,若仍以整个样本空间进行残差分析,会收缩整个样本空间的统计值(例如:均值、方差、中位数等)。因此,为了避免由于业务指标体量的量级差别较大而影响残差序列的统计值,预设的时间滑动窗口可以根据目标业务指标体量的量级进行划分,从而,减少收缩样本空间统计值的情况,使得后续在相应预设的时间滑动窗口进行归一化处理更为合理。
进一步,所述预设的时间滑动窗口所表征的时间段对应的残差序列段中残差值收敛在预设量级区间。
仍延续上述例子,假设中期是指14:00-18:00时间段,而这一时间段的目标业务指标的量级均在百万,那么,可以设定第一预设的时间滑动窗口对应14:00-18:00时间段,相应地,这一时间段对应的残差序列段中残差值收敛在百万量级区间,例如[100,999]万这一量级区间。应理解,这里的收敛并不代表该残差序列段中所有残差值都位于这一量级区间,只是说明绝大部分的残差值都位于该量级区间,而有非常少的残差值可能偏离该量级区间。
在本说明书实施例中,在对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理时,一种可实现的方式可以包括:
根据所述残差序列段中残差值确定表征归一化至所述预设的时间滑动窗口所表征的时间段内的标准值;
将所述残差序列段中残差分别与所述标准值作商,得到对应所述残差序列段的相对残差序列段。
其中,所述标准值至少包括:所述残差序列段的均值、中位值、绝对中位差中的任一种。
举例说明,以标准值为均值为例,假设残差序列段中有M个残差值,分别为N1、N2、N3……、NM。对这M个残差值取均值(N1+N2+N3……+NM)/M,定义该均值为N,那么,相对残差序列段中M个相对残差值分别为:N1/N、N2/N、N3/N……、NM/N。从而,使用相对残差值来替代残差序列中的绝对残差值,减小由于量级差距大而收缩残差序列的统计值,提升统计准确度。
其实,本说明书实施例中,在对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理时,所采用的归一化方案并不限于上述方式,还可以采用现有的其它归一化手段将残差值转换为0-1之间的数值,本说明书并不对此进行限定。
步骤106:基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
应理解,在对目标业务指标进行异常检测时,可根据该目标业务指标对应的时间序列(或残差序列)的体量来决定是基于一个或多个相对残差序列段来进行异常检测。
一种可实现的方式,可以基于多个预设的时间滑动窗口,将残差序列划分为多个残差序列段,并分别对每个残差序列段进行归一化处理,得到多个相对残差序列段。在该步骤106中,可以将这多个相对残差序列段的相对残差值作为一个相对残差序列,并基于该相对残差序列对目标业务指标进行异常检测。该实现方式可以适用于体量不同的业务指标统计方案,由于相对残差值的数量较多,因此可以保证统计准确性。
另一种可实现的方式,当目标业务指标对应的残差序列的体量较大时,例如,一年的用户访问量,那么,可以基于多个预设的时间滑动窗口,或者,基于希望检测的时间段设置相应数量的预设的时间滑动窗口,将残差序列划分为多个残差序列段,并分别对每个残差序列段进行归一化处理,得到多个相对残差序列段。在该步骤106中,可以基于其中一个预设的时间滑动窗口(假设对应的时间段为10月和11月)对应的残差序列段,对目标业务指标进行异常检测。该实现方式可以适用于体量较大的业务指标统计方案,一般不适用于体量较小的业务指标统计方案。
可选地,步骤106在基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测时,可具体执行为:
确定所述至少一个相对残差序列段的统计值,其中,所述统计值至少包括:中位值和/或绝对中位差;
根据所述至少一个相对残差序列段的统计值对所述目标业务指标进行异常检测。
在本说明书实施例中,对目标业务指标进行异常检测一般使用ESD异常检测方法,即根据得到的相对残差序列或是相对残差序列段,分析得到该目标业务指标的相对残差值的正态分布,然后,根据正态分布情况,计算对应该正态分布的统计值,例如,中位值、绝对中位差、均值、方差等。然后,根据统计值来分析偏离该正态分布的异常值,以检测目标业务指标的时间序列中是否有异常值。
通过本说明书实施例技术方案,基于预设的时间滑动窗口对残差序列中残差值进行归一化处理,从而,将绝对残差值转换为相对残差值,可以自适应不同业务发展阶段下不同的业务体量,避免由于量级差别较大而收缩整个残差序列的统计值的情况,提升统计准确性,进而,提升异常检测准确度。
可选地,在本说明书实施例中,步骤102在确定目标业务指标对应的残差序列时,可具体执行为:
获取目标业务指标对应的时间序列;
基于所述时间序列以及自回归滑动平均(Autoregressive moving averagemodel,ARMA)模型,确定与所述时间序列匹配的残差序列。
具体实现时,可以获取目标业务指标在不同时间的数值按时间先后顺序排列而成的时间序列。然后,采用ARMA模型,对该时间序列进行分析,拟合历史数据,确定与该时间序列匹配的残差序列。其实,除了使用ARMA模型对时间序列进行分析以实现异常检测外,还可以使用其它算法模型,例如以鲁棒局部加权回归作为平滑方法的时间序列分解方法(Seasonal and Trend decomposition using Loess,STL)模型,本说明书并不对此进行限定。
进一步,在获取目标业务指标对应的时间序列之后,确定与所述时间序列匹配的残差序列之前,所述方法还包括:对所述时间序列进行预处理操作。
其中,所述预处理操作至少包括:
对所述时间序列中异常数据进行平滑预处理;或者,
对所述时间序列进行平稳性预处理;或者,
对所述时间序列中异常数据进行平滑预处理,并对平滑预处理后的时间序列进行平稳性预处理;或者,
对所述时间序列进行平稳性预处理,并对平稳性预处理后的时间序列中异常数据进行平滑预处理。
相应地,步骤102在基于所述时间序列以及自回归滑动平均ARMA模型,确定与所述时间序列匹配的残差序列时,可具体执行为:
基于预处理操作得到的时间序列以及所述ARMA模型,确定与所述时间序列匹配的残差序列。
应理解,在本说明书实施例中,ARMA模型是一种较为成熟的模型,在具体使用该ARMA模型进行学习时,可以设定Max(p)、Max(q),使用模型选择方法,例如赤池信息准则(Akaike Information Criterion,AIC)或贝叶斯信息准则(Bayesian InformationCriterion,BIC),循环寻找最优的方式确定最佳p、q值,并使用均方误差MSE指标评估模型优劣,以确定最佳ARMA模型。之后,根据学习后的ARMA模型,得到与时间序列对应的预测序列(拟合值),然后与时间序列的真实值(实际观察值)进行比对,得到残差序列;或是,根据学习后的ARMA模型,得到与预处理操作得到的时间序列对应的预测序列(拟合值),然后与预处理操作得到的时间序列的真实值(实际观察值)进行比对,得到残差序列。
其实,在本说明书实施例中,对所述时间序列中异常数据进行平滑预处理,可以有多种实现方式,例如:平均数移动策略、方差移动策略以及中位数移动策略等。
本说明书中可以基于中位数移动策略对时间序列中异常数据进行平滑预处理,包括:
第一步,确定所述时间序列中相距异常数据预设范围的数据集合;
第二步,采用中位数移动策略,对所述数据集合执行至少一层中位数计算;其中,除第一层中位数以外,其它层所涉及的中位数均由上一层确定的中位数所构成的数集确定。
第三步,将最终得到的中位数替换所述异常数据,得到平滑预处理后的时间序列。
其实现原理可结合图2中的示例说明,确定时间序列中异常数据为x(n),取相距x(n)三个数值的第一数据集合M1,即取x(n)前3个数值和后3个数值;该第一数据集合中有7个数值,分别为x(n-3)、x(n-2)、x(n-1)、x(n)、x(n+1)、x(n+2)、x(n+3),计算该第一数据集合M1的中位数,假设为x(n-1)。其实,以上可以理解为是第一层中位数处理,然后,为了提升平滑程度,还可以执行第二层中位数处理,具体可以取x(n-3)前7个数值作为第二数据集合M2,取x(n-3)前14个数值中除第二数据集合M2外的数值作为第三数据集合M3,取x(n-3)前21个数值中除第二数据集合M2、第三数据集合M3外的数值作为第四数据集合M4,同理,取x(n+3)后7个数值作为第五数据集合M5,取x(n+3)后14个数值中除第五数据集合M5外的数值作为第六数据集合M6,取x(n+3)后21个数值中除第五数据集合M5、第六数据集合M6外的数值作为第七数据集合M7。分别确定每个数据集合中的中位数,从而,得到7个数据集合的中位数,之后,从这7个中位数所构成的数集中,确定中位数(假设为第七数据集合M7对应的中位数)来替换异常数据,从而,实现对时间序列的平滑预处理,提升后续拟合的有效性。
需要说明的是,上述例子中执行了两层中位数计算,其实,为了提升平滑效果,得到更准确的平滑时间序列,还可以执行更多层的中位数计算,本说明书并不对此进行限定。
应理解,在本说明书中,一个时间序列中可以存在一个或多个异常数据,因此,可以多次执行该平滑预处理操作,以消除时间序列中所有的异常数据。
同理,在本说明书实施例中,对所述时间序列进行平稳性预处理,也可以有多种实现方式,例如:单位根检验ADF方法等。
本说明书中可以基于ADF方法对时间序列进行平稳性预处理,具体可以包括以下步骤:
第一步,采用单位根检验ADF方法,确定所述时间序列的单位根。
第二步,根据所述单位根的检验结果,对所述时间序列执行至少一次差分操作,其中,每一次差分操作之后,进行一次单位根的验证,以决定是否再次执行下一次差分操作,若仍存在单位根,则基于上一次差分结果,再次对时间序列进行差分操作,直至消除单位根为止。
第三步,在消除所述时间序列的单位根后,得到平滑预处理后的时间序列。
针对平稳的时间序列,一般不存在单位根,而针对非平稳的时间序列,若确定出其存在单位根,则可以对该时间序列执行一次差分操作,之后,在此确定时间序列是否仍存在单位根,若存在,则继续对该时间序列执行二次差分操作,直至消除单位根,得到平稳的时间序列。在本说明书实施例中,对时间序列执行差分操作以消除单位根,可参照现有的方案实现,并不对此进行限定。
下面以目标业务指标为用户访问量为例,对本说明书所涉及的基于时间序列的业务指标异常检测方案进行详述。
参照图3所示,该异常检测方案可以包括以下步骤:
步骤302:获取用户访问量对应的时间序列S1。
该获取方式可以参照上述步骤102的方案实现,在此不做赘述。
步骤304:对所述时间序列S1中异常数据进行平滑预处理,得到时间序列S2。
具体地,该步骤304可以参照上述方案中,采用中位数移动策略来实现对时间序列S1中异常数据的平滑预处理。
步骤306:对所述时间序列S2进行平稳性预处理,得到时间序列S3。
具体地,该步骤306可以参照上述方案中,采用ADF检验方法来实现对时间序列S2的平稳预处理。
步骤308:基于时间序列S3以及ARMA模型,确定与时间序列S3匹配的残差序列S4。
步骤310:从残差序列S4中获取与预设的时间滑动窗口所表征的时间段对应的残差序列段sn。
例如,参照图4a所示,用户对支付宝的访问量曲线图,该图中示出一个月的用户访问量,在体量不大的情况下,量级差别却很大,当月上旬的用户访问量在万级,而中旬的用户访问量在1000万左右,下旬的用户访问量回落至万级。此时,可以设置三个预设的时间滑动窗口,其中,第一预设的时间滑动窗口对应当月第1天-第9天这一时间段,第二预设的时间滑动窗口对应当月第10天-第22天这一时间段,第三预设的时间滑动窗口对应当月第23天-第30天这一时间段。进而,可以分别从残差序列S4中获取残差序列段s1、s2、s3。
再如,参照图4b所示,用户对支付宝的访问量曲线图,该图中示出一年的用户访问量,在体量较大的情况下,量级差别也比较大,当年年初的用户访问量在万级,而年中的用户访问量在1000万左右,年尾的用户访问量回落至万级。此时,可以设置三个预设的时间滑动窗口,其中,第一预设的时间滑动窗口对应当年1月-3月这一时间段,第二预设的时间滑动窗口对应当年4月-10月这一时间段,第三预设的时间滑动窗口对应当年11月-12月这一时间段。进而,可以分别从残差序列S4中获取残差序列段s1、s2、s3。
步骤312:在时间段对残差序列段sn中残差值进行归一化处理,得到对应残差序列段sn的相对残差序列段sn’。
基于上述步骤310确定的残差序列段sn,可以使用各个残差序列段内残差值与其均值作商的方式,将残差序列段转换为相对残差序列段。例如,将S4中残差序列段s1、s2、s3分别转换为相对残差序列段s1’、s2’、s3’。
步骤314:基于至少一个相对残差序列段sn’对用户访问量进行异常检测。
该步骤中使用相对残差值对用户访问量进行异常检测,从而,将绝对残差值转换为相对残差值,可以自适应不同业务发展阶段下不同的业务体量,避免由于量级差别较大而收缩整个残差序列的统计值的情况,提升统计准确性,进而,提升异常检测准确度。
在执行步骤314时,可以根据用户访问量的体量大小灵活选择相对残差序列段来对用户访问量进行异常检测。
例如,基于图4a提供的用户访问量的体量,可以将相对残差序列段s1’、s2’、s3’作为一个相对残差序列整体,来对用户访问量进行异常检测,这样,可以保证足够的数值统计,能够提升统计准确性。
再如,基于图4b提供的用户访问量的体量,可以根据测试需求,基于任一预设的滑动时间窗口对应的相对残差序列段来对用户访问量进行异常检测,例如,基于相对残差序列段s2’对年中(4月-10月这一时间段)的用户访问量进行异常检测。这样,可以在保证足够数量的数值统计的情况下,有针对性的选择检测范围,使得异常检测方案更加灵活。
实施例二
图5是本说明书的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列;
基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段;
基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
上述如本说明书图1-图4所示实施例揭示的基于时间序列的业务指标异常检测装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1-图4的方法,并实现基于时间序列的业务指标异常检测装置在图1-图4所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
通过本说明书实施例技术方案,基于预设的时间滑动窗口对残差序列中残差值进行归一化处理,从而,将绝对残差值转换为相对残差值,可以自适应不同业务发展阶段下不同的业务体量,避免由于量级差别较大而收缩整个残差序列的统计值的情况,提升统计准确性,进而,提升异常检测准确度。
实施例三
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列;
基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段;
基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
通过本说明书实施例技术方案,基于预设的时间滑动窗口对残差序列中残差值进行归一化处理,从而,将绝对残差值转换为相对残差值,可以自适应不同业务发展阶段下不同的业务体量,避免由于量级差别较大而收缩整个残差序列的统计值的情况,提升统计准确性,进而,提升异常检测准确度。
实施例四
图6为本说明书的一个实施例提供的基于时间序列的业务指标异常检测装置600的结构示意图。请参考图6,在一种软件实施方式中,辅助用户成为目标类用户的装置600可包括:
确定模块602,确定目标业务指标对应的残差序列,其中,所述残差序列是基于时间序列排列而成的数列;
归一化模块604,基于至少一个预设的时间滑动窗口,对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理,得到至少一个相对残差序列段,其中,所述残差序列段是所述残差序列中,与所述预设时间滑动窗口所表征的时间段对应的残差序列段;
检测模块606,基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测。
通过本说明书实施例技术方案,基于预设的时间滑动窗口对残差序列中残差值进行归一化处理,从而,将绝对残差值转换为相对残差值,可以自适应不同业务发展阶段下不同的业务体量,避免由于量级差别较大而收缩整个残差序列的统计值的情况,提升统计准确性,进而,提升异常检测准确度。
可选地,作为一个实施例,所述预设的时间滑动窗口是根据所述残差序列中目标业务指标不同体量的量级确定。
在本说明书实施例的一种具体实现方式中,所述预设的时间滑动窗口所表征的时间段对应的残差序列段中残差值收敛在预设量级区间。
在本说明书实施例的一种具体实现方式中,所述归一化模块604在对预设的时间滑动窗口对应的残差序列段中的残差值进行归一化处理时,可具体用于:
根据所述残差序列段中残差值确定表征归一化至所述预设的时间滑动窗口所表征的时间段内的标准值;
将所述残差序列段中残差分别与所述标准值作商,得到对应所述残差序列段的相对残差序列段。
可选地,作为一个实施例,所述标准值至少包括:所述残差序列段的均值、中位值、绝对中位差中的任一种。
在本说明书实施例的一种具体实现方式中,所述确定模块602在确定目标业务指标对应的残差序列时,可具体用于:
获取目标业务指标对应的时间序列;
基于所述时间序列以及自回归滑动平均ARMA模型,确定与所述时间序列匹配的残差序列。
在本说明书实施例的一种具体实现方式中,所述基于时间序列的业务指标异常检测装置600还包括:
预处理模块,用于在确定模块602获取目标业务指标对应的时间序列之后,对所述时间序列进行预处理操作;其中,所述预处理操作至少包括:对所述时间序列中异常数据进行平滑预处理;和/或,对所述时间序列进行平稳性预处理。
相应地,所述确定模块602在基于所述时间序列以及自回归滑动平均ARMA模型,确定与所述时间序列匹配的残差序列时,可具体用于:
基于预处理操作得到的时间序列以及所述ARMA模型,确定与所述时间序列匹配的残差序列。
在本说明书实施例的一种具体实现方式中,所述预处理模块在对所述时间序列中异常数据进行平滑预处理时,可具体用于:
确定所述时间序列中相距异常数据预设范围的数据集合;
采用中位数移动策略,对所述数据集合执行至少一层中位数计算;
将最终得到的中位数替换所述异常数据,得到平滑预处理后的时间序列。
在本说明书实施例的一种具体实现方式中,所述预处理模块在对所述时间序列进行平稳性预处理时,可具体用于:
采用单位根检验ADF方法,确定所述时间序列的单位根;
根据所述单位根的检验结果,对所述时间序列执行至少一次差分操作;
在消除所述时间序列的单位根后,得到平滑预处理后的时间序列。
在本说明书实施例的一种具体实现方式中,所述检测模块606在基于所述至少一个相对残差序列段对所述目标业务指标进行异常检测时,可具体用于:
确定所述至少一个相对残差序列段的统计值,其中,所述统计值至少包括:中位值和/或绝对中位差;
根据所述至少一个相对残差序列段的统计值对所述目标业务指标进行异常检测。
应理解,本说明书实施例的基于时间序列的业务指标异常检测装置还可执行图1-图4的方法,并实现图1-图4所示实施例的功能,在此不再赘述。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。