本发明涉及数据监控技术领域,具体涉及一种定位毛刺异常点的方法、装置及计算设备。
背景技术:
监控系统在对业务数据的监控中应用较广,监控系统通过对业务监控项进行数据采样,可对采样数据进行分析,判断出业务是否发生故障,从而在业务故障时输出告警;监控系统如用于监控部门网管业务的部门网管业务监控告警系统等;监控系统所采样的数据中常会存在毛刺异常点,毛刺异常点为采样数据中出现脱离总体数据趋势的采样点,但毛刺异常点持续时间较短,并不是由于业务故障引起的,因此在采样到毛刺异常点时,并不能认定业务故障而输出告警;可见,为保证监控系统的正常运行,从所采样的数据中定位出毛刺异常点,显得尤为重要。
目前毛刺异常点的定位方式主要有基于小波分析法的毛刺异常点定位、采用固定长度滑动窗口检测毛刺异常点等;在基于小波分析法定位毛刺异常点时,小波系数比较难控制,且算法需要依赖于ARMA(自回归滑动平均模型)、GARCH(广义自回归条件异方差模型)等经济学模型,这使得毛刺异常点的定位算法难度和复杂度均较大,并不适用于在监控系统中进行毛刺异常点的定位;采用固定长度滑动窗口检测毛刺异常点时,需要依赖适用于分段线性模型的FKD(Kernel Fisher Discriminant)算法,而监控系统中绝大部分的业务的采样数据都不是分段线性模型,这使得采用固定长度滑动窗口检测毛刺异常点的方式,在监控系统的适用受到限制。
可以看出,目前毛刺异常点的定位方式并无法很好的适用于监控系统,因此提供一种新的能够在监控系统中定位毛刺异常点的方法,以在监控系统中实现毛刺异常点的定位,成为本领域技术人员需要考虑的问题。
技术实现要素:
有鉴于此,本发明实施例提供一种定位毛刺异常点的方法、装置及计算设备,以在监控系统中实现毛刺异常点的定位。
为实现上述目的,本发明实施例提供如下技术方案:
一种定位毛刺异常点的方法,包括:
确定采样点序列,所述采样点序列具有多个采样点及各采样点的采样值;
根据所述采样点序列的采样值确定对应的绝对差分序列;
根据所述绝对差分序列确定整体差分置信区间;
将采样点序列输入滑动窗口,由滑动窗口从首个扫描点开始逐个扫描采样点,以根据采样点的绝对差分确定绝对差分不在所述整体差分置信区间内的突变判断点;
判断滑动窗口扫描的当前采样点的采样值,是否在突变判断局部置信区间内,所述突变判断局部置信区间根据突变判断点前或前后的第一数量个点的采样值确定;
若当前采样点的采样值不在所述突变判断局部置信区间内,则确定当前采样点为突变点;
滑动窗口继续扫描采样点,根据突变点的差分正负,确定采样值回落到异常判断局部置信区间内的第一个回落点,所述异常判断局部置信区间根据突变判断点前或前后的第二数量个点的采样值确定;
如果突变点至所述第一回落点之间的采样点个数不大于预置数量条件,则确定突变点至所述第一个回落点前的点是毛刺异常点。
本发明实施例还提供一种定位毛刺异常点的装置,包括:
采样点序列确定模块,用于确定采样点序列,所述采样点序列具有多个采样点及各采样点的采样值;
绝对差分序列确定模块,用于根据所述采样点序列的采样值确定对应的绝对差分序列;
整体差分置信区间确定模块,用于根据所述绝对差分序列确定整体差分置信区间;
突变判断点确定模块,用于将采样点序列输入滑动窗口,由滑动窗口从首个扫描点开始逐个扫描采样点,以根据采样点的绝对差分确定绝对差分不在所述整体差分置信区间内的突变判断点;
突变点判断模块,用于判断滑动窗口扫描的当前采样点的采样值,是否在突变判断局部置信区间内,所述突变判断局部置信区间根据突变判断点前或前后的第一数量个点的采样值确定;
突变点确定模块,用于若当前采样点的采样值不在所述突变判断局部置信区间内,则确定当前采样点为突变点;
回落点确定模块,用于滑动窗口继续扫描采样点,根据突变点的差分正负,确定采样值回落到异常判断局部置信区间内的第一个回落点,所述异常判断局部置信区间根据突变判断点前或前后的第二数量个点的采样值确定;
毛刺异常点确定模块,用于如果突变点至所述第一回落点之间的采样点个数不大于预置数量条件,则确定突变点至所述第一个回落点前的点是毛刺异常点。
本发明实施例还提供一种计算设备,包括上述所述的定位毛刺异常点的装置。
基于上述技术方案,本发明实施例提供的定位毛刺异常点的方法,通过确定采样点序列的绝对差分序列,整体差分置信区间;通过滑动窗口动态的扫描采样点,根据整体差分置信区间和突变判断局部置信区间,可先从局部搜索出可能存在毛刺异常的局部毛刺异常区间(突变点所在区间),进而再通过异常判断局部置信区间定位出整个采样序列中的所有毛刺异常时间区间,实现对采样点序列中的毛刺异常点的定位。本发明实施例提供的定位毛刺异常点的方法,可基于监控系统提供的采样点序列分析定位出毛刺异常点,不需引入其他定位毛刺异常点的模型,由直接对采样点序列的处理,定位出毛刺异常点,方法的限制条件较少,可实现在监控系统中的适用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的定位毛刺异常点的方法的流程图;
图2为本发明实施例提供的确定绝对差分为上一绝对差分的至少m0倍的突变判断点c的方法流程图;
图3为本发明实施例提供的突变判断局部置信区间的确定方法的流程图;
图4为本发明实施例提供的回落点e的确定方法的流程图;
图5为本发明实施例提供的定位毛刺异常点的方法的另一流程图;
图6为本发明实施例提供的突变判断局部置信区间的确定方法的另一流程图;
图7为本发明实施例提供的确定回落点e的方法的另一流程图;
图8为本发明实施例提供的定位毛刺异常点的方法的再一流程图;
图9为本发明实施例提供的定位毛刺异常点的装置的结构框图;
图10为本发明实施例提供的计算设备的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的定位毛刺异常点的方法的流程图,该方法可应用于具有数据处理能力的计算设备,该计算设备可以为监控系统所在的服务器,也可以是与监控系统所在的服务器能够进行数据交互的其他服务器或终端设备;
参照图1,本发明实施例提供的定位毛刺异常点的方法可以包括如下步骤:
步骤S100、确定采样点序列,所述采样点序列具有多个采样点及各采样点的采样值;
监控系统可在一个采样时间点采样到一个采样点(采样数据),采样点 的采样状况以采样值表示,通过分析采样值可确定业务的故障情况,从而在业务故障时,发出告警;在监控系统得到由多个采样点构成的序列后,本发明实施例可确定出采样点序列(多个采样点按照采样时间排序组成的序列);
采样点序列中的各个采样点对应有采样值;采样点以i表示,i=1,2…,n,采样点的采样值以x(i)表示;
可选的,在监控系统中由于业务故障,机器故障等原因,会导致某些采样时间点的采样数据无法正常上报,从而导致数据缺失;因此本发明实施例可从监控系统原始提供的采样数据中,查找缺失数据的约定符号,确定出未上报的采样时间点(未上报采样数据的采样时间点);从而在原始的采样点序列中,通过向前移动平均的方法,对未上报的采样时间点所对应的采样值进行补充,从而确定出采样点序列;所确定的采样点序列具有完整的采样时间点所对应的采样值,包含未上报的采样时间点所对应的采样值,和上报的采样时间点所对应的采样值。
步骤S110、根据所述采样点序列的采样值确定对应的绝对差分序列{Δi};
可选的,可根据公式{Δi}={Δi|Δi=|x(i+1)-x(i)|}计算采样点序列对应的绝对差分序列{Δi};公式中,Δi表示绝对差分,各采样点对应的绝对差分组成绝对差分序列{Δi};而采样点i+1的绝对差分Δi,由i+1的采样值x(i+1)减去上一采样点的采样值x(i)后,取绝对值得到;采样点i+1的绝对差分为Δi。
步骤S120、根据所述绝对差分序列{Δi}确定整体差分置信区间;
可选的,整体差分置信区间表示绝对差分序列的总体正常区间;整体差分置信区间,可根据绝对差分序列{Δi}的均值miuabs与n倍标准差doutaabsn组成的区间确定;可选的,n可取2、3等,相应的可计算2倍标准差doutaabs2,或3倍标准差doutaabs3等。
步骤S130、将采样点序列输入滑动窗口,由滑动窗口从首个扫描点开始逐个扫描采样点,以根据采样点的绝对差分确定绝对差分Δc-1不在所述整体差分置信区间内的突变判断点c,c∈i;
突变判断点c为用于判断采样点序列中的突变点的点(突变点表示采样点相比其前面的采样点发生很大变化的点,比如突然变大或突然变小的点);
可选的,确定突变判断点c有两种方式:
第一种方式、突变判断点c的绝对差分Δc-1为上一绝对差分Δc-2的至少m0 倍,m0为突变倍数阈值;或者,突变判断点c的绝对差分Δc-1不在整体差分置信区间内(适用于监控系统所监控的业务数据为平缓变化的场景,如网络流量、用户请求量等带有趋势性的平缓变化的监控场景);
第二种方式、突变判断点c的绝对差分Δc-1不在所述整体差分置信区间内,且突变判断点c的采样值大于所述采样点序列的采样值均值m0d(适用于监控系统所监控的业务数据为比率数据的场景,如采样数据保持在一定的波动范围之内,且变化带有类似于正弦曲线的周期性质)。
步骤S140、判断滑动窗口扫描的当前采样点i+1的采样值x(i+1),是否在突变判断局部置信区间内,所述突变判断局部置信区间根据突变判断点c前或前后的第一数量个点的采样值确定;
可选的,本发明实施例可根据突变判断点c前或前后的M1个(第一数量个)点的均值及标准差(3倍标准差等),形成突变判断局部置信区间;突变判断点c前的M1个点的均值及标准差,可根据变判断点c前的M1个点的采样值确定;突变判断点c前后的M1个点的均值及标准差,可根据变判断点c前后的M1个点的采样值确定;
具体的,突变判断点c前的M1个点的均值及标准差可以为,突变判断点c前的所有点的均值及标准差,也可以是突变判断点c前的n0个点(n0为预置的毛刺点数阈值)的均值及标准差;突变判断点c前后的M1个点的均值及标准差可以为,突变判断点c前后各n0个采样点的均值及标准差等;具体M1的选取可以根据突变判断点是否在滑动窗口首位、当前滑动窗口的长度而定;
值得注意的是,采用突变判断点c前或前后的第一数量个点的均值及标准差形成突变判断局部置信区间,仅为一种可选形式;本发明实施例也可采用蒙特卡洛(Monte Carlo)方法确定突变判断局部置信区间,蒙特卡洛方法作为获得置信区间估计值分布的一种方法,可对置信区间的所有估计值样本进行排序,则置信区间下限:可以为排序后设定下限百分位的值,置信区间上限可以为排序后设定上限百分位的值;设定下限百分位和设定上限百分位可根据置信区间所要求的样本介于置信区间下限和置信区间上限的概率设定。
步骤S150、若当前采样点i+1的采样值x(i+1)不在所述突变判断局部置信区间内,则确定当前采样点为突变点;
可选的,若当前采样点i+1的值x(i+1)在所述突变判断局部置信区间内, 则可确定当前采样点不为突变点,滑动窗口可扫描下一个采样点。
步骤S160、滑动窗口继续扫描采样点,根据突变点的差分正负,确定采样值回落到异常判断局部置信区间内的第一个回落点e,所述异常判断局部置信区间根据突变判断点c前或前后的第二数量个点的采样值确定;
可选的,本发明实施例可根据突变判断点c前或前后的第二数量个点的均值及标准差,形成所述异常判断局部置信区间;突变判断点c前的第二数量个点的均值及标准差,可根据突变判断点c前的第二数量个点的采样值确定;突变判断点c前后的第二数量个点的均值及标准差,可根据突变判断点c前后的第二数量个点的采样值确定;
具体的,突变判断点c前的第二数量个点的均值及标准差可以为,突变判断点c前的n0个点的均值及标准差;突变判断点c前后的第二数量个点的均值及标准差形可以为,突变判断点c前后各n0个采样点等;具体第二数量的选取可以根据突变判断点是否在滑动窗口首位、当前滑动窗口的长度而定;第二数量和第一数量可能不等。
显然,本发明实施例也可根据蒙特卡洛方法确定异常判断局部置信区间。
步骤S170、如果突变点至回落点e之间的采样点个数不大于预置数量条件,则确定突变点至回落点e前的点是毛刺异常点。
可选的,本发明实施例可设置n0(毛刺点数阈值),置信水平α等;若突变点至回落点e之间的采样点个数不大于n0,或不大于αn0c,则确定突变点至回落点e前的点是毛刺异常点;n0c为滑动窗口的首个扫描点至突变点的长度;
可选的,由于回落点e已回落,因此属于毛刺异常点的突变点至回落点e前的点,包含突变点但不包含回落点e。
本发明实施例提供的定位毛刺异常点的方法,通过确定采样点序列的绝对差分序列,整体差分置信区间;通过滑动窗口动态的扫描采样点,根据整体差分置信区间和突变判断局部置信区间,可先从局部搜索出可能存在毛刺异常的局部毛刺异常区间(突变点所在区间),进而再通过异常判断局部置信区间定位出整个采样序列中的所有毛刺异常时间区间,实现对采样点序列中的毛刺异常点的定位。本发明实施例提供的定位毛刺异常点的方法,可基于监控系统提供的采样点序列分析定位出毛刺异常点,不需引入其他定位毛刺异常点的模型,由直接对采样点序列的处理,定位出毛刺异常点,方法的 限制条件较少,可实现在监控系统中的适用。
可选的,本发明实施例提供的定位毛刺异常点的方法可适用于监控系统所监控的业务数据为平缓变化的场景,也可适用于监控系统所监控的业务数据为比率数据的场景;在这两个场景下,进行毛刺异常点的定位原理与图1所示类似,但在具体实行时可存在一些区别;下面将就这两个场景下的具体毛刺异常点的定位过程进行介绍。
可选的,本发明实施例提供的定位毛刺异常点的方法,可适用于监控系统所监控的业务数据为平缓变化的场景;
可选的,整体差分置信区间可以由绝对差分序列{Δi}的均值miuabs与n倍标准差doutaabsn确定(n可取2或3等,相应的可以是2倍标准差doutaabs2,或3倍标准差doutaabs3等);具体的,本发明实施例在确定绝对差分序列{Δi}后,可计算绝对差分序列{Δi}的均值miuabs与n倍标准差doutaabs,n从而根据miuabs与doutaabsn组成所述整体差分置信区间;可选的,整体差分置信区间用[miuabs-doutaabsn,miuabs+doutaabsn]表示。
可选的,在图1所示方法的基础上,本发明实施例还可根据采样点序列对应的绝对差分序列{Δi}计算突变倍数阈值m0,突变倍数阈值表示业务正常情况下,最大能接受的采样点突变程度(采样点突变程度是指采样点的值与前面的采样点的值相比的变化程度);
具体的,本发明实施例可在确定绝对差分序列{Δi}后,去掉绝对差分序列{Δi}中的最大值和0值,计算去掉最大值和0值的绝对差分序列{Δi}的平均值,从而得到突变倍数阈值,突变倍数阈值可以m0表示;
基于此,图1所示步骤S130中确定突变判断点c的方式可以为:确定绝对差分Δc-1为上一绝对差分Δc-2的至少m0倍,或者,绝对差分Δc-1不在所述整体差分置信区间内的突变判断点c;
突变判断点c为用于判断采样点序列中的突变点的点,在本发明实施例中,一个点可认为是采样点序列中的一个采样点;突变判断点c满足下述两个条件:
点c的绝对差分Δc-1为上一绝对差分Δc-2的至少m0倍;或者,突变判断点c的绝对差分不在整体差分置信区间内;
可选的,图2示出了本发明实施例提供的确定绝对差分Δc为上一绝对差分Δc-1的至少m0倍的突变判断点c的方法流程图,参照图2,该方法可以包括:
步骤S200、如果上一绝对差分Δc-2不为0,则将绝对差分Δc-1除以Δc-2,若得到不小于m0的结果,则确定点c为突变判断点;
步骤S210、如果上一绝对差分Δc-2为0,则确定点c前n0个点的绝对差分均值将点c的绝对差分Δc-1除以若得到不小于m0的结果,则确定点c为突变判断点;其中,n0为预置的毛刺异常点数阈值;
步骤S220、如果上一绝对差分Δc-2为0,且也为0,则确定所述滑动窗口的首个扫描点至点c的绝对差分均值将点c的绝对差分Δc-1除以若得到不小于m0的结果,则点c为突变判断点;其中t0为滑动窗口的首个扫描点;
步骤S230、如果上一绝对差分Δc-2为0,为0,且也为0,则比较点c的绝对差分Δc-1与m0,如果Δc-1大于m0,则确定点c为突变判断点。
可选的,图2所示步骤为4种不同分支情况的处理,步骤S210~步骤230间可以没有明显顺序。
可选的,本发明实施例可通过滑动窗口逐个扫描采样点;滑动窗口每扫描一个采样点,则滑动窗口自增一个单位长度,当前滑动窗口达到最大的窗口长度时,则开始一个新的滑动窗口继续扫描,从而实现对采样点的动态扫描;可选的,最大的窗口长度可以l0表示;可选的,滑动窗口的一个单位长度可以是采样的一个采样时间点;具体采样时间可由采样点x(i)携带,对应的是下标i。
可选的,突变判断局部置信区间的确定方法可以如图3所示,参照图3,该方法可以包括:
步骤S300、如果突变判断点c不是滑动窗口的首个扫描点,则可确定首个扫描点至突变判断点c间所有点的均值μ1,及n倍标准差nδ1,根据μ1和nδ1确定出突变判断局部置信区间;
可选的,n可以取2或3等;均值μ1可以认为是滑动窗口首个扫描点至突变判断点c间所有点的采样值的均值,n倍标准差nδ1可以认为是滑动窗口首个扫描点至突变判断点c间所有点的采样值的n倍标准差;下文μ2、nδ2,μ3、nδ3等的含义同理;
可选的,[μ1-nδ1,μ1+nδ1]可以视为是突变判断局部置信区间;
步骤S310、如果突变判断点c是滑动窗口的首个扫描点,则判断所述采样点序列的采样时间是否超过突变判断点c之后的kn0长度,若是,执行步骤S320,若否,执行步骤S330;
可选的,k为预置数值,可取2,显然也可根据实际情况设定。
步骤S320、回溯突变判断点c前后各n0个采样点,确定前后n0个采样点的均值μ2,及前后n0个采样点的n倍标准差nδ2,根据μ2和nδ2确定出突变判断局部置信区间;
可选的,n可以取2或3等;可将[μ2-nδ2,μ2+nδ2]视为突变判断局部置信区间;
步骤S330、确定突变判断点c前n0个采样点的均值μ3,及n倍标准差nδ3,根据μ3和nδ3确定出突变判断局部置信区间;
可选的,n可以取2或3等;[μ3-nδ3,μ3+nδ3]可以视为是突变判断局部置信区间。
可选的,步骤S300~步骤S330为不同的处理分支,可以认为没有明显先后顺序。
可选的,突变点的差分为正值时,说明突变点为上凸点,突变点的差分为负值时,说明突变点为下凹点;本发明实施例可根据突变点为上凸点还是下凹点进行回落点e的定位;图4示出了本发明实施例提供的回落点e的确定方法流程图,参照图4,该方法可以包括:
步骤S400、如果所确定的突变点为上凸点,则继续扫描采样点,确定采样值下降到异常判断局部置信区间的第一个回落点e;
采样值下降到异常判断局部置信区间的第一个回落点e可以认为是,采样值回落到异常判断局部置信区间的回落点;
可选的,步骤S400中异常判断局部置信区间的确定过程可以如下:
如果突变点为滑动窗口的首个扫描点,且所述采样点序列的采样时间超过突变判断点c之后的kn0(如2n0等)长度,则回溯突变点前后各n0个采样点,确定前后n0个采样点的均值μ4,及前后n0个采样点的n倍标准差nδ4,根据μ4和nδ4确定出异常判断局部置信区间;
可选的,n可以取2或3等;[μ4-nδ4,μ4+nδ4]可以视为是异常判断局部置信区间;
如果突变点不为滑动窗口的首个扫描点,或者,所述采样点序列的采样时间未超过突变判断点c之后的kn0(如2n0等)长度,则确定突变点前n0个采样点的均值μ5,及n倍标准差nδ5,根据μ5和nδ5确定出异常判断局部置信区间;
可选的,n可以取2或3等;[μ5-nδ5,μ5+nδ5]可以视为是异常判断局部置信区间。
步骤S410、如果所确定的突变点为下凹点,则继续扫描采样点,确定采样值上升到异常判断局部置信区间的第一个回落点e。
采样值上升到异常判断局部置信区间的第一个回落点e可以认为是采样值回落到异常判断局部置信区间的回落点;
可选的,步骤S410中异常判断局部置信区间的确定过程可以如下:
如果突变点为滑动窗口的首个扫描点,则回溯突变点前后各n0个采样点,确定前后n0个采样点的均值μ4,及前后n0个采样点的n倍标准差nδ4,根据μ4和nδ4确定出异常判断局部置信区间;
可选的,n可以取2或3等;[μ4-nδ4,μ4+nδ4]可以视为是异常判断局部置信区间;
如果突变点不为滑动窗口的首个扫描点,则以图3所确定的突变判断局部置信区间视为异常判断局部置信区间。
可选的,在定位到突变点和回落点e后,本发明实施例可根据突变点至回落点e之间的采样点个数进行毛刺异常点的判断;
具体的,如果突变点至回落点e之间的采样点个数大于n0,且大于αn0c,则确定突变点至回落点e前的点不是毛刺异常点;n0c为滑动窗口的首个扫描点至突变点的长度;其中,由于回落点e已回落,突变点至回落点e之间的采样点个数不包含回落点e;
如果突变点至回落点e之间的采样点个数不大于n0,或不大于αn0c,则确定突变点至回落点e前的点是毛刺异常点;其中,由于回落点e已回落,因此毛刺异常点包含突变点,但不包含回落点e。
可选的,在上述定位毛刺异常点的过程中可能存在漏检的刺异常点,因此本发明实施例还可设置漏检的刺异常点的机制;具体的,本发明实施例可由所确定的连续的毛刺异常点构成毛刺异常点区间,如果任两个毛刺异常点 区间仅相差一个采样点,则两个毛刺异常点区间所相差的一个采样点为漏检的毛刺异常点;
可选的,毛刺异常点区间为由连续的毛刺异常点构成的一个区间,如果毛刺异常点之间存在断续的点,则不能集合到一个区间中,集合到一个区间的毛刺异常点应是连续的。
进一步,在查找到漏检的毛刺异常点,本发明实施例可根据漏检的毛刺异常点,汇聚连续的毛刺异常点区间,从而确定出连续的毛刺异常点个数;如果连续的毛刺异常点个数大于n0,则可确定输出提示信息;
通过上述方式,本发明实施例提供的定位毛刺异常点的方法可输出采样点序列中毛刺异常点所在的区间点(时间区间点)。
优选的,图5示出了本发明实施例提供的定位毛刺异常点的方法的另一流程图,参照图5,该方法可以包括如下步骤:
步骤S10、确定采样点序列,所述采样点序列具有多个采样点,采样点以i表示,采样点的采样值以x(i)表示;
可选的,i=1,2…,n。
步骤S11、根据公式{Δi}={Δi|Δi=|x(i+1)-x(i)|},计算采样点序列对应的绝对差分序列{Δi};
可选的,Δi表示绝对差分,各采样点对应的绝对差分组成绝对差分序列{Δi},而采样点i+1的绝对差分Δi,由采样点i+1的值x(i+1)减去上一采样点的值x(i)后,取绝对值得到。
步骤S12、根据所述绝对差分序列确定突变倍数阈值m0,及整体差分置信区间;
可选的,本发明实施例可在确定绝对差分序列{Δi}后,去掉绝对差分序列{Δi}中的最大值和0值,计算去掉最大值和0值的掉绝对差分序列{Δi}的平均值,从而得到突变倍数阈值,突变倍数阈值可以m0表示;
可选的,本发明实施例在确定绝对差分序列{Δi}后,可计算绝对差分序列{Δi}的均值miuabs与n倍标准差doutaabsn,从而根据miuabs与doutaabsn组成所述整体差分置信区间,用[miuabs-doutaabsn,miuabs+doutaabsn]表示。
步骤S13、将采样点序列输入滑动窗口,由滑动窗口从首个扫描点开始逐个扫描采样点,确定绝对差分Δc-1为上一绝对差分Δc-2的至少m0倍,或者绝对 差分Δc-1不在所述整体差分置信区间内的突变判断点c,c∈i;
在本发明实施例中,一个点可认为是采样点序列中的一个采样点;突变判断点c满足下述条件:
点c的绝对差分Δc-1为上一绝对差分Δc-2的至少m0倍;或者,突变判断点c的绝对差分不在整体差分置信区间内。
可选的,确定绝对差分Δc-1为上一绝对差分Δc-2的至少m0倍的突变判断点c的过程可以如下:
如果上一绝对差分Δc-2不为0,则将绝对差分Δc-1除以Δc-2,若得到不小于m0的结果,则点c为突变判断点;
如果上一绝对差分Δc-2为0,则确定点c前至多n0个点的绝对差分均值将点c的绝对差分Δc-1除以若得到不小于m0的结果,则点c为突变判断点;其中,n0为预置的毛刺异常点数阈值;
如果上一绝对差分Δc-2为0,且也为0,则确定所述滑动窗口的首个扫描点至点c的绝对差分均值将点c的绝对差分Δc-1除以若得到不小于m0的结果,则点c为突变判断点;其中t0为滑动窗口的首个扫描点;
如果上一绝对差分Δc-2为0,为0,且也为0,则比较点c的绝对差分Δc-1与m0,如果Δc-1大于m0,则确定点c为突变判断点c。
步骤S14、判断滑动窗口扫描的当前采样点i+1的值x(i+1),是否在突变判断局部置信区间内,所述突变判断局部置信区间根据突变判断点c前或前后的第一数量个点的均值及标准差形成;
可选的,确定突变判断局部置信区间的过程可以如下:
如果突变判断点c不是滑动窗口的首个扫描点,则可确定首个扫描点至突变判断点c间所有点的均值μ1,及n倍标准差nδ1,根据均值μ1和nδ1确定出突变判断局部置信区间;
如果突变判断点c是滑动窗口的首个扫描点,则判断所述采样点序列的采样时间是否超过突变判断点c之后的kn0长度;若是,则回溯突变判断点c前后各n0个采样点,确定前后n0个采样点的均值μ2,及前后n0个采样点的n倍标准差nδ2,从而根据均值μ2和nδ2确定出突变判断局部置信区间,可将[μ2-nδ2,μ2+nδ2]视为突变判断局部置信区间;若否,则确定突变判断点c前至多n0个采样点的均值μ3,及n倍标准差nδ3,从而根据均值μ3和nδ3确定出 突变判断局部置信区间,可选的,[μ3-nδ3,μ3+nδ3]可以视为是突变判断局部置信区间;
显然,步骤S14也可替换为采用蒙特卡洛方法确定突变判断局部置信区间。
步骤S15、若判断当前采样点不在所述突变判断局部置信区间内,则确定采样点为突变点;
当前采样点不在所述突变判断局部置信区间内,可以认为是当前采样点的采样值不在所述突变判断局部置信区间内;
可选的,若判断当前采样点的采样值x(i+1)在所述突变判断局部置信区间内,则循环至下一个采样点进行判断;
可选的,如果找不到突变点,且滑动窗口的长度达到最大的窗口长度,则可更新滑动窗口,以新的滑动窗口进行扫描。
步骤S16、如果所确定的突变点为上凸点,则继续扫描采样点,确定采样值下降到异常判断局部置信区间的第一个回落点e;
可选的,在找到回落点e后,可停止扫描,或者在滑动窗口达到最大的窗口长度时,停止扫描;
可选的,采样点的差分值大于0可认为是上凸点,小于0可认为是下凹点;
采样值下降到异常判断局部置信区间的第一个回落点e可以认为是采样值回落到异常判断局部置信区间的回落点;
可选的,异常判断局部置信区间的确定过程可以如下:
如果突变点为滑动窗口的首个扫描点,且所述采样点序列的采样时间超过突变判断点c之后的kn0长度,则回溯突变点前后各n0个采样点,确定前后n0个采样点的均值μ4,及前后n0个采样点的n倍标准差nδ4,根据均值μ4和nδ4确定出异常判断局部置信区间;可选的,[μ4-nδ4,μ4+nδ4]可以视为是异常判断局部置信区间;
如果突变点不为滑动窗口的首个扫描点,或者,所述采样点序列的采样时间未超过突变判断点c之后的kn0长度,则确定突变点前至少n0个采样点的均值μ5,及n倍标准差nδ5,根据均值μ5和nδ5确定出异常判断局部置信区间;可选的,[μ5-nδ5,μ5+nδ5]可以视为是异常判断局部置信区间。
步骤S17、如果所确定的突变点为下凹点,则继续扫描采样点,确定采样 值上升到异常判断局部置信区间的第一个回落点e;
可选的,在找到回落点e后,可停止扫描,或者在滑动窗口达到最大的窗口长度时,停止扫描;
可选的,采样值上升到第三局部置信区间的第一个回落点e可以认为是采样值回落到异常判断局部置信区间的回落点;
可选的,步骤S170中的异常判断局部置信区间的确定过程可以如下:
如果突变点为滑动窗口的首个扫描点,则回溯突变点前后各n0个采样点,确定前后n0个采样点的均值μ4,及前后n0个采样点的n倍标准差nδ4,根据均值μ4和nδ4确定出异常判断局部置信区间;可选的,[μ4-nδ4,μ4+nδ4]可以视为是异常判断局部置信区间;
如果突变点不为滑动窗口的首个扫描点,则以突变判断局部置信区间视为异常判断局部置信区间。
步骤S18、如果突变点至回落点e之间的采样点个数大于n0,且大于αn0c,则确定突变点至回落点e前的点不是毛刺异常点;n0c为滑动窗口的首个扫描点至突变点的长度;
由于回落点e已回落,突变点至回落点e之间的采样点不包含回落点e。
步骤S19、如果突变点至回落点e之间的采样点个数不大于n0,或不大于αn0c,则确定突变点至回落点e前的点是毛刺异常点;
由于回落点e已回落,因此毛刺异常点包含突变点,但不包含回落点e。
步骤S20、由所确定的连续的毛刺异常点构成毛刺异常点区间,如果任两个毛刺异常点区间仅相差一个采样点,则两个毛刺异常点区间所相差的一个采样点为漏检的毛刺异常点;
毛刺异常点区间为由连续的毛刺异常点构成的一个区间,如果毛刺异常点之间存在断续的点,则不能集合到一个区间中,集合到一个区间的毛刺异常点应是连续的。
步骤S21、根据漏检的毛刺异常点,汇聚连续的毛刺异常点区间,确定连续的毛刺异常点个数;如果连续的毛刺异常点个数大于n0,则输出提示信息。
值得注意的是,可适用于监控系统所监控的业务数据为平缓变化的场景,但也可适用于监控系统所监控的业务数据为比率数据的场景。
可选的,在监控系统所监控的业务数据为比率数据的场景下,本发明实施例可直接采用采样点序列的绝对差分序列值来寻找突变点,而不再计算突变倍数阈值m0。
基于此,可选的,本发明实施例在确定采样点序列后,还可根据采样点序列的采样值计算出采样值均值m0d;
可选的,整体差分置信区间可以由绝对差分序列{Δi}中的非0部分的均值miuabs,及3倍标准差doutaabs3形成;具体的,本发明实施例可在确定绝对差分序列{Δi}后,去除{Δi}的0值,计算去除0值的{Δi}的均值miuabs,及n倍标准差doutaabsn;可选的,n可取2、3等,相应的可计算2倍标准差doutaabs2,或3倍标准差doutaabs3等;从而根据miuabs和doutaabsn确定整体差分置信区间;可选的,[miuabs-doutaabsn,miuabs+doutaabsn]可以视为整体差分置信区间;
可选的,突变判断点c的确定条件需满足:
绝对差分不在所述整体差分置信区间内,且采样值大于m0d;
可选的,图6示出了本发明实施例提供的突变判断局部置信区间的确定方法流程图,参照图6,该方法可以包括:
步骤S500、如果突变判断点c不是滑动窗口的首个扫描点,则确定首个扫描点至突变判断点c间的所有点的均值μ5,及n倍标准差nδ5;根据μ5和nδ5确定出突变判断局部置信区间;
可选的,[μ5-nδ5,μ5+nδ5]可以视为是突变判断局部置信区间。
步骤S510、如果突变判断点c是滑动窗口的首个扫描点,则确定突变判断点c前的n0个点的均值μ6,及n倍标准差nδ6;根据μ6和nδ6确定出突变判断局部置信区间。
可选的,[μ6-nδ6,μ6+nδ6]可以视为是突变判断局部置信区间。
进一步,在滑动窗口扫描采样点的过程中,如果滑动窗口的长度达到最大的窗口长度,则本发明实施例可采用首个扫描点至突变判断点c之间的非0值的点的绝对差分序列更新m0值;可选的,可计算首个扫描点至突变判断点c之间的非0值的点的绝对差分均值及3倍标准差,从而更新m0值。
可选的,图7示出了本发明实施例提供的确定回落点e的方法流程图,参照图7,该方法可以包括:
步骤S600、如果突变点为上凸点,则滑动窗口继续扫描采样点,确定采 样值下降到异常判断局部置信区间的第一个回落点e;
可选的,步骤S600中异常判断局部置信区间的确定方式可以如下:
如果突变点为滑动窗口的首个扫描点,则确定突变判断点c前的n0个点的均值μ7及n倍标准差nδ7;根据μ7和nδ7确定出异常判断局部置信区间;
可选的,[μ7-nδ7,μ7+nδ7]可以视为是异常判断局部置信区间。
步骤S610、如果突变点为下凹点,则滑动窗口继续扫描采样点,确定采样值上升到异常判断局部置信区间的第一个回落点e。
可选的,步骤S610中的异常判断局部置信区间可与步骤S600中的一致。
可选的,本发明实施例可设置毛刺点数阈值n0、波动阈值threshrate,从而在查找到漏检的毛刺异常点,并汇聚毛刺异常点区间后,根据毛刺点数阈值n0、波动阈值threshrate从汇聚的毛刺异常点区间中过滤非故障告警区间,定位得到故障告警事件的区间,从而便于输出告警。
优选的,图8示出了本发明实施例提供的定位毛刺异常点的方法的再一流程图,参照图8,该方法可以包括:
步骤S30、确定采样点序列,所述采样点序列具有多个采样点,采样点以i表示,采样点的采样值以x(i)表示;
步骤S31、根据所述采样点序列的采样值计算采样值均值m0d;及根据公式{Δi}={Δi|Δi=|x(i+1)-x(i)|},计算采样点序列对应的绝对差分序列{Δi};
可选的,Δi表示绝对差分,各采样点对应的绝对差分组成绝对差分序列{Δi},而采样点i+1的绝对差分Δi,由i+1的采样值x(i+1)减去上一采样点的值x(i)得到。
步骤S32、根据所述绝对差分序列确定整体差分置信区间;
可选的,本发明实施例可在确定绝对差分序列{Δi}后,去除{Δi}的0值,计算去除0值的{Δi}的均值miuabs,及n倍标准差doutaabsn,从而根据miuabs和doutaabsn确定整体差分置信区间;可选的,[miuabs-doutaabsn,miuabs+doutaabsn]可以视为整体差分置信区间。
步骤S33、将采样点序列输入滑动窗口,由滑动窗口从首个扫描点开始逐个扫描采样点,确定绝对差分不在所述整体差分置信区间内,且采样值大于m0d的突变判断点c;
步骤S34、判断滑动窗口扫描的当前采样点i+1的值x(i+1),是否在突变判 断局部置信区间内;
可选的,突变判断局部置信区间的确定过程可以如下:
如果突变判断点c不是滑动窗口的首个扫描点,则确定首个扫描点至突变判断点c间的所有点的均值μ5,及n倍标准差nδ5;根据均值μ5和nδ5确定出突变判断局部置信区间;可选的,[μ5-nδ5,μ5+nδ5]可以视为是突变判断局部置信区间;
如果突变判断点c是滑动窗口的首个扫描点,则确定突变判断点c前的n0个点的均值μ6,及n倍标准差nδ6;根据均值μ6和nδ6确定出突变判断局部置信区间;可选的,[μ6-nδ6,μ6+nδ6]可以视为是突变判断局部置信区间。
可选的,如果滑动窗口的长度达到最大的窗口长度,则本发明实施例可采用首个扫描点至突变判断点c之间的非0值的点的绝对差分序列更新m0值;可选的,可计算首个扫描点至突变判断点c之间的非0值的点的绝对差分均值及3倍标准差,从而更新m0值。
步骤S35、如果当前采样点i+1的值x(i+1)不在突变判断局部置信区间内,则确定当前采样点为突变点;
可选的,如果当前采样点i+1的值x(i+1)在突变判断局部置信区间内,则继续扫描下一个采样点。
步骤S36、如果突变点为上凸点,则滑动窗口继续扫描采样点,确定采样值下降到异常判断局部置信区间的第一个回落点e;
可选的,异常判断局部置信区间的确定过程可以如下:
如果突变点为滑动窗口的首个扫描点,则确定突变判断点c前的n0个点的均值μ7及n倍标准差nδ7;根据μ7和nδ7确定出异常判断局部置信区间;可选的,[μ7-nδ7,μ7+nδ7]可以视为是异常判断局部置信区间;
在找到回落点e后,滑动窗口可停止滑动扫描。
步骤S37、如果突变点为下凹点,则滑动窗口继续扫描采样点,确定采样值上升到异常判断局部置信区间的第一个回落点e;
步骤S38、如果突变点至回落点e之间的采样点个数大于n0,且大于αn0c,则确定突变点至回落点e前的点不是毛刺异常点;n0c为滑动窗口的首个扫描点至突变点的长度;
可选的,还可以滑动窗口首个扫描点至突变点间值为非0的点的绝对差分 序列,更新m0值。
步骤S39、如果突变点至回落点e之间的采样点个数不大于n0,或不大于αn0c,则确定突变点至回落点e前的点是毛刺异常点;
可选的,还可以滑动窗口首个扫描点至突变点间值为非0的点的绝对差分序列,更新m0值;同时,还可更新滑动窗口。
步骤S40、由所确定的连续的毛刺异常点构成毛刺异常点区间,如果任两个毛刺异常点区间仅相差一个采样点,则两个毛刺异常点区间所相差的一个采样点为漏检的毛刺异常点;
可选的,可采用漏检的毛刺异常点修正已构成的毛刺异常点区间。
步骤S41、对于各毛刺异常点区间,根据毛刺点数阈值n0、波动阈值threshrate从汇聚的毛刺异常点区间中过滤非故障告警区间,定位得到故障告警事件的区间,输出故障告警事件的区间,以告警。
可选的,本发明实施例可逐个毛刺异常点区间进行循环判断,若所判断的毛刺异常点区间的采样点个数小于n0,则认为该区间是毛刺区间,被过滤掉;进入下一个毛刺异常点区间的判断;若所判断的毛刺异常点区间的采样点个数大于n0,则再判断该区间内的最大(上凸波形用最大,下凹波形用最小)采样值,若最大采样值小于阈值threshrate(上凸波形),或者最小采样值大于阈值threshrate(下凹波形),则该异常区间为非故障区间,被过滤掉,进入下一个异常区间的判断。
经过区间过滤后,剩下的区间就是故障告警事件区间;假如所有区间都被过滤掉,则代表没有发生故障,此时输出空值。
可选的,图8所示方法可适用于监控系统所监控的数据是百分比性质的业务数据,比如回源率、失败率等监控数据的场景;除此之外,对于在线采样数据,在线监控系统中告警时间点的定位均可适用。
本发明实施例中采用动态滑动窗口来扫描采样点,从全局开始初始化,动态扫描采样点,兼顾局部特性,滑动窗口根据时间特性向前、向后在小的区间内回溯搜索突变点与回落点,从而寻找到局部毛刺异常区间;在本发明实施例中,滑动窗口只需扫描完一遍数据,所有的局部毛刺异常点都能被定位到,进而达到从局部到全局的异常区间定位,解决了监控系统中难以定位毛刺异常现象的问题。
下面对本发明实施例提供的定位毛刺异常点的装置进行介绍,下文描述的定位毛刺异常点的装置可与上文描述的定位毛刺异常点的方法相互对应参照。
图9为本发明实施例提供的定位毛刺异常点的装置的结构框图,该装置可应用于具有数据处理能力的计算设备;参照图9,该装置可以包括:
采样点序列确定模块100,用于确定采样点序列,所述采样点序列具有多个采样点及各采样点的采样值;
绝对差分序列确定模块200,用于根据所述采样点序列的采样值确定对应的绝对差分序列;
整体差分置信区间确定模块300,用于根据所述绝对差分序列确定整体差分置信区间;
突变判断点确定模块400,用于将采样点序列输入滑动窗口,由滑动窗口从首个扫描点开始逐个扫描采样点,以根据采样点的绝对差分确定绝对差分不在所述整体差分置信区间内的突变判断点;
突变点判断模块500,用于判断滑动窗口扫描的当前采样点的采样值,是否在突变判断局部置信区间内,所述突变判断局部置信区间根据突变判断点前或前后的第一数量个点的采样值确定;
突变点确定模块600,用于若当前采样点的采样值不在所述突变判断局部置信区间内,则确定当前采样点为突变点;
回落点确定模块700,用于滑动窗口继续扫描采样点,根据突变点的差分正负,确定采样值回落到异常判断局部置信区间内的第一个回落点,所述异常判断局部置信区间根据突变判断点前或前后的第二数量个点的采样值确定;
毛刺异常点确定模块800,用于如果突变点至所述第一回落点之间的采样点个数不大于预置数量条件,则确定突变点至所述第一个回落点前的点是毛刺异常点。
可选的,本发明实施例可由突变判断点前或前后的第一数量个点的均值及标准差形成所述突变判断局部置信区间,由突变判断点前或前后的第二数量个点的均值及标准差形成所述异常判断局部置信区间;显然,本发明实施 例也采用蒙特卡洛方法确定突变判断局部置信区间,和异常判断局部置信区间。
可选的,采样点可以以i表示,采样点的采样值可以以x(i)表示;相应的,所述绝对差分序列确定模块,具体用于根据公式{Δi}={Δi|Δi=|x(i+1)-x(i)|}计算采样点序列对应的绝对差分序列{Δi},其中Δi表示绝对差分,各采样点对应的绝对差分组成绝对差分序列{Δi},采样点i+1的绝对差分Δi,由i+1的采样值x(i+1)减去上一采样点的采样值x(i)后,取绝对值得到。
本发明实施例还提供一种计算设备,该计算设备可以包括上述所述的定位毛刺异常点的装置。
本发明实施例提供的计算设备可以为监控系统所在的服务器,也可以是与监控系统所在的服务器能够进行数据交互的其他服务器或终端设备;图10示出了本发明实施例提供的计算设备的硬件结构框图,参照图10,该计算设备可以包括:处理器1,通信接口2,存储器3和通信总线4;
其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1,用于执行程序;
存储器3,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,程序可具体用于:
确定采样点序列,所述采样点序列具有多个采样点及各采样点的采样值;
根据所述采样点序列的采样值确定对应的绝对差分序列;
根据所述绝对差分序列确定整体差分置信区间;
将采样点序列输入滑动窗口,由滑动窗口从首个扫描点开始逐个扫描采样点,以根据采样点的绝对差分确定绝对差分不在所述整体差分置信区间内的突变判断点;
判断滑动窗口扫描的当前采样点的采样值,是否在突变判断局部置信区间内,所述突变判断局部置信区间根据突变判断点前或前后的第一数量个点的采样值确定;
若当前采样点的采样值不在所述突变判断局部置信区间内,则确定当前采样点为突变点;
滑动窗口继续扫描采样点,根据突变点的差分正负,确定采样值回落到异常判断局部置信区间内的第一个回落点,所述异常判断局部置信区间根据突变判断点前或前后的第二数量个点的采样值确定;
如果突变点至所述第一回落点之间的采样点个数不大于预置数量条件,则确定突变点至所述第一个回落点前的点是毛刺异常点。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。