数据异常检测方法、装置、可读存储介质及电子设备与流程

文档序号:17742779发布日期:2019-05-24 20:19阅读:190来源:国知局
数据异常检测方法、装置、可读存储介质及电子设备与流程

本公开涉及异常检测领域,具体地,涉及一种数据异常检测方法、装置、可读存储介质及电子设备。



背景技术:

数据异常检测技术在各行各业中都发挥着极其重要的作用,例如,发现病人心跳、血压、呼吸等指标的微小变化,定位关键系统管理员的可疑操作行为,探查股票市场的异常股价变化,检测应用系统的cpu、内存、http响应时间等关键指标的不稳定情况,监控设备异常等等。这些功能的实现均离不开准确的数据异常检测方法。因此,找到一种较优的数据异常检测方法对于提升数据异常检测的准确率具有重要的意义。



技术实现要素:

为了克服相关技术中存在的问题,本公开提供一种数据异常检测方法、装置、可读存储介质及电子设备。

为了实现上述目的,根据本公开实施例的第一方面,提供一种数据异常检测方法,包括:

获取第一时刻的指标数据;

在确定所述第一时刻的指标数据正常时,根据在第二时刻获得的所述第一时刻的指标预测值、所述第一时刻的所述指标数据和包括所述第一时刻的指标数据在内的第一时间序列,更新第一rnn-lstm预测模型的隐藏层状态,其中,所述第二时刻为所述第一时刻的上一时刻,所述第一时间序列的最后一个数据为所述第一时刻的指标数据;

根据更新后的第一rnn-lstm预测模型的隐藏层状态,确定第三时刻的指标预测值,其中,所述第三时刻为所述第一时刻的下一时刻;

当获取到所述第三时刻的指标数据时,根据所述第三时刻的所述指标数据与所述第三时刻的指标预测值,确定所述第三时刻的所述指标数据是否异常。

可选地,所述根据在第二时刻获得的所述第一时刻的指标预测值、所述第一时刻的所述指标数据和包括所述第一时刻的指标数据在内的第一时间序列,更新第一rnn-lstm预测模型的隐藏层状态,包括:

根据在第二时刻获得的所述第一时刻的指标预测值、所述第一时刻的所述指标数据和包括所述第一时刻的指标数据在内的第一时间序列,通过以下公式,更新第一rnn-lstm预测模型的隐藏层状态:

h(t)=φ(u·x(t)+w·[ky(t-1)+(1-k)o(t-1)]+b)

其中,h(t)为更新后的第一rnn-lstm预测模型的隐藏层状态;t为所述第一时刻;φ()为激活函数;x(t)为所述第一时间序列;y(t-1)为所述第一时刻的所述指标数据;o(t-1)为所述第一时刻的指标预测值;u、w为所述第一rnn-lstm预测模型的参数矩阵;b为所述第一rnn-lstm预测模型的隐藏层状态偏置;k为所述第一时刻的所述指标数据y(t-1)的权重;(1-k)为所述第一时刻的指标预测值o(t-1)的权重。

可选地,通过包括以下步骤的模型构建方法构建所述第一rnn-lstm预测模型:

获取第一预设历史时段内的多个第一历史指标数据,得到第二时间序列,其中,所述第二时间序列与所述第一时间序列对应于同一指标;

将所述第二时间序列作为训练样本输入到初始的rnn-lstm模型中进行训练,得到第二rnn-lstm预测模型;

将所述第二rnn-lstm预测模型确定为所述第一rnn-lstm预测模型,或者对所述第二rnn-lstm预测模型进行更新,获得所述第一rnn-lstm预测模型。

可选地,所述对所述第二rnn-lstm预测模型进行更新,获得所述第一rnn-lstm预测模型,包括:

获取第二预设历史时段内的多个第二历史指标数据,得到第三时间序列,其中,所述第三时间序列与所述第二时间序列对应于同一指标,所述第二预设历史时段与所述第一预设历史时段不同;

将所述第三时间序列中的第一个指标数据确定为测试指标数据;

获取第五时刻的指标数据,其中,所述第五时刻为第四时刻的上一时刻,所述第四时刻为所述测试指标数据对应的时刻;

在确定所述第五时刻的指标数据正常时,根据在第六时刻获得的所述第五时刻的指标预测值、所述第五时刻的所述指标数据和包括所述第五时刻的指标数据在内的第四时间序列,通过以下公式,更新所述第二rnn-lstm预测模型的隐藏层状态,其中,所述第六时刻为所述第五时刻的上一时刻,所述第四时间序列的最后一个数据为所述第五时刻的指标数据:

h'(t)=φ'(u'·x'(t)+w'·[k'y(t-1)+(1-k')o'(t-1)]+b')

其中,h'(t)为更新后的第二rnn-lstm预测模型的隐藏层状态;t为所述第五时刻;φ'()为激活函数;x'(t)为所述第四时间序列;y'(t-1)为所述第五时刻的所述指标数据;o'(t-1)为所述第五时刻的指标预测值;u'、w'为所述第二rnn-lstm预测模型的参数矩阵;b'为所述第二rnn-lstm预测模型的隐藏层状态偏置;k'为所述第五时刻的所述指标数据y'(t-1)的权重;(1-k')为所述第五时刻的指标预测值o'(t-1)的权重;

根据更新后的第二rnn-lstm预测模型的隐藏层状态,确定所述第四时刻的指标预测值;

根据所述测试指标数据与所述第四时刻的指标预测值,确定所述测试指标数据是否异常;

若确定所述测试指标数据异常,则根据所述测试指标数据和所述第三时间序列中的第二个指标数据,更新所述k';

从所述第三时间序列中删除所述测试指标数据,返回所述将所述第三时间序列中的第一个指标数据确定为测试指标数据的步骤,直到所述第三时间序列的长度等于零时为止,并将当前获得的所述第二rnn-lstm预测模型确定为所述第一rnn-lstm预测模型。

可选地,所述根据所述测试指标数据和所述第三时间序列中的第二个指标数据,更新所述k',包括:

若所述测试指标数据和所述第三时间序列中的第二个指标数据的差值的绝对值小于第一预设阈值,则增大所述k';

若根据所述测试指标数据和所述第三时间序列中的第二个指标数据的差值的绝对值大于或等于所述第一预设阈值,则减小所述k'。

可选地,所述增大所述k',包括:

根据所述第四时间序列中各指标数据的标准差,确定增长量;

按照所述增长量增大所述k';

所述减小所述k',包括:

根据所述第四时间序列中各指标数据的标准差,确定减小量;

按照所述减小量减小所述k'。

可选地,所述根据所述第三时刻的所述指标数据与所述第三时刻的指标预测值,确定所述第三时刻的所述指标数据是否异常,包括:

若所述第三时刻的所述指标数据与所述第三时刻的指标预测值之间的差值的绝对值大于第二预设阈值,则确定所述第三时刻的所述指标数据异常。

根据本公开实施例的第二方面,提供一种数据异常检测装置,包括:

第一获取模块,用于获取第一时刻的指标数据;

更新模块,用于在确定所述第一时刻的指标数据正常时,根据在第二时刻获得的所述第一时刻的指标预测值、所述第一获取模块获取到的所述第一时刻的所述指标数据和包括所述第一时刻的指标数据在内的第一时间序列,更新第一rnn-lstm预测模型的隐藏层状态,其中,所述第二时刻为所述第一时刻的上一时刻,所述第一时间序列的最后一个数据为所述第一时刻的指标数据;

第一确定模块,用于根据所述更新模块更新后的第一rnn-lstm预测模型的隐藏层状态,确定第三时刻的指标预测值,其中,所述第三时刻为所述第一时刻的下一时刻;

第二确定模块,用于当获取到所述第三时刻的指标数据时,根据所述第三时刻的所述指标数据与所述第一确定模块确定出的所述第三时刻的指标预测值,确定所述第三时刻的所述指标数据是否异常。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面提供的所述数据异常检测方法的步骤。

根据本公开实施例的第四方面,提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面提供的所述数据异常检测方法的步骤。

在上述技术方案中,首先根据第一时刻的指标预测值、第一时刻的指标数据和包括该第一时刻的指标数据在内的第一时间序列(即当前的输入)更新第一rnn-lstm预测模型的隐藏层状态;之后,根据该更新后的隐藏层状态确定第三时刻的指标预测值;最后,在获取到第三时刻的指标数据时,根据第三时刻的指标数据与第三时刻的指标预测值,确定第三时刻的指标数据是否异常。可见,第一rnn-lstm预测模型的隐藏层状态是根据上一时刻的指标预测值、上一时刻的实际输出以及当前的输入共同决定的,这样,可以减小因上一时刻的实际输出或上一时刻的指标预测值出现较大偏差对第一rnn-lstm预测模型的预测输出造成的影响,从而可以提高第一rnn-lstm预测模型的预测精度,进而提升后续数据异常检测的准确率、并保证数据异常检测的可靠性和稳定性。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1a和图1b是现有技术中基于rnn-lstm的时间序列的算法的网络结构图。

图2是根据一示例性实施例示出的一种第一rnn-lstm预测模型的网络结构图。

图3是根据一示例性实施例示出的一种数据异常检测方法的流程图。

图4a是根据一示例性实施例示出的一种构建第一rnn-lstm预测模型的方法的流程图。

图4b是根据另一示例性实施例示出的一种构建第一rnn-lstm预测模型的方法的流程图。

图5是根据一示例性实施例示出的一种对第二rnn-lstm预测模型进行更新的方法的流程图。

图6是根据一示例性实施例示出的一种数据异常检测装置的框图。

图7是根据一示例性实施例示出的一种第一rnn-lstm预测模型构建装置的框图。

图8是根据一示例性实施例示出的一种电子设备的框图。

图9是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

现阶段,主要通过一种基于循环神经网络(recurrentneuralnetwork,rnn)-长短期记忆网络(longshort-termmemory,lstm)的时间序列算法(即基于rnn-lstm的时间序列算法)来预测下一时刻的数据,该算法主要包括以下两种变体方式(如图1a和图1b所示):(1)如图1a所示,算法的隐藏层状态由上一时刻的预测输出和当前的输入确定,(2)如图1b所示,算法的隐藏层状态由上一时刻的实际输出和当前的输入确定。但当上一时刻的预测输出或上一时刻的实际输出出现较大偏差时,会影响后续时段的数据预测结果,造成后续的基于该预测结果的数据异常检测的准确率低。因此,为了提升数据异常检测的准确率,本公开提供一种第一rnn-lstm预测模型,如图2所示,该预测模型的隐藏层状态由上一时刻的预测输出、上一时刻的实际输出和当前的输入共同决定。之后,可以根据该第一rnn-lstm预测模型的预测结果进行数据异常检测。具体来说,可以通过图3中所示的步骤301~步骤304来进行数据异常检测。

在步骤301中,获取第一时刻的指标数据。

在本公开中,该第一时刻可以例如是当前时刻、任一历史时刻。它可以是用户指定的,也可以是默认的(例如,当前时刻),在本公开中不作具体限定。

在步骤302中,在确定第一时刻的指标数据正常时,根据在第二时刻获得的第一时刻的指标预测值、第一时刻的指标数据和包括该第一时刻的指标数据在内的第一时间序列,更新第一rnn-lstm预测模型的隐藏层状态。

在本公开中,上述第二时刻为第一时刻的上一时刻,第一时间序列的最后一个数据为第一时刻的指标数据。其中,第一时间序列中的每个指标数据按采集时间由早及晚的顺序排列,并且,该第一时间序列中可以包括两个或者更多个指标数据,对于第一时间序列的长度在本公开中不作具体限定。

示例地,第一时间序列为xt-1、xt,其中,t为第一时刻,t-1为第二时刻,xt上述步骤301获取到的第一时刻(即t时刻)的指标数据,xt-1为第二时刻(即t-1时刻)的指标数据。

又示例地,第一时间序列为xt-3、xt-2、xt-1、xt,其中,t为第一时刻,t-1为第二时刻,xt上述步骤301获取到的第一时刻(即t时刻)的指标数据,xt-1为第二时刻(即t-1时刻)的指标数据,xt-2为t-2时刻的指标数据,xt-3为t-3时刻的指标数据。

在步骤303中,根据更新后的第一rnn-lstm预测模型的隐藏层状态,确定第三时刻的指标预测值。

其中,上述第三时刻为第一时刻的下一时刻。例如,第一时刻为t,则第三时刻为t+1。

在步骤304中,当获取到第三时刻的指标数据时,根据第三时刻的指标数据与第三时刻的指标预测值,确定第三时刻的指标数据是否异常。

在上述技术方案中,首先根据第一时刻的指标预测值、第一时刻的指标数据和包括该第一时刻的指标数据在内的第一时间序列(即当前的输入)更新第一rnn-lstm预测模型的隐藏层状态;之后,根据该更新后的隐藏层状态确定第三时刻的指标预测值;最后,在获取到第三时刻的指标数据时,根据第三时刻的指标数据与第三时刻的指标预测值,确定第三时刻的指标数据是否异常。可见,第一rnn-lstm预测模型的隐藏层状态是根据上一时刻的指标预测值、上一时刻的实际输出以及当前的输入共同决定的,这样,可以减小因上一时刻的实际输出或上一时刻的指标预测值出现较大偏差对第一rnn-lstm预测模型的预测输出造成的影响,从而可以提高第一rnn-lstm预测模型的预测精度,进而提升后续数据异常检测的准确率、并保证数据异常检测的可靠性和稳定性。

为了使本领域技术人员更加理解本发明实施例提供的技术方案,下面针对上述步骤302中的在确定第一时刻的指标数据正常时,根据在第二时刻获得的第一时刻的指标预测值、第一时刻的指标数据和包括该第一时刻的指标数据在内的第一时间序列,更新第一rnn-lstm预测模型的隐藏层状态进行详细说明。

如图2所示,第一rnn-lstm预测模型的隐藏层状态由上一时刻的预测输出、上一时刻的实际输出和当前的输入共同决定。因此,当需要获取第三时刻的指标预测值时,需要先根据在第二时刻获得的第一时刻的指标预测值、第一时刻的指标数据和包括该第一时刻的指标数据在内的第一时间序列更新第一rnn-lstm预测模型的隐藏层状态,之后,根据该更新后的第一rnn-lstm预测模型的隐藏层状态确定第三时刻的指标预测值。

示例地,可以通过以下等式(1)来更新第一rnn-lstm预测模型的隐藏层状态:

h(t)=φ(u·x(t)+w·[ky(t-1)+(1-k)o(t-1)]+b)(1)

其中,h(t)为更新后的第一rnn-lstm预测模型的隐藏层状态;t为所述第一时刻;φ()为激活函数,示例地,该激活函数φ()可以为双曲正切激活函数(tanh),即h(t)=tanh(u·x(t)+w·[ky(t-1)+(1-k)o(t-1)]+b);x(t)为所述第一时间序列;y(t-1)为所述第一时刻的所述指标数据;o(t-1)为所述第一时刻的指标预测值;u、w为所述第一rnn-lstm预测模型的参数矩阵;b为所述第一rnn-lstm预测模型的隐藏层状态偏置;k为所述第一时刻的所述指标数据y(t-1)的权重;(1-k)为所述第一时刻的指标预测值o(t-1)的权重。

另外,由于需要根据第一时刻的指标数据去预测第三时刻的指标数据,即获取第三时刻的指标预测值,为了保证预测精度,在根据第一时刻的指标数据去获取第三时刻的指标预测值之前,需要确定第一时刻的指标数据是否正常,并在确定其正常时,再利用它去获取第三时刻的指标预测值。具体来说,在获取到第一时刻的指标数据后,可以通过以下方式来确定第一时刻的指标数据是否异常:若第一时刻的指标数据与第一时刻的指标预测值之间的差值的绝对值大于第二预设阈值,即|第一时刻的指标数据-第一时刻的指标预测值|>第二预设阈值,则确定第一时刻的指标数据异常;若第一时刻的指标数据与第一时刻的指标预测值之间的差值的绝对值小于或等于上述第二预设阈值,即|第一时刻的指标数据-第一时刻的指标预测值|≤第二预设阈值,则确定第一时刻的指标数据正常。其中,第一时刻的指标预测值可以通过第一rnn-lstm预测模型获得。

下面针对上述步骤303中的根据更新后的第一rnn-lstm预测模型的隐藏层状态,确定第三时刻的指标预测值进行详细说明。

在通过上述步骤302更新第一rnn-lstm预测模型的隐藏层状态后,可以根据该更新后的第一rnn-lstm预测模型的隐藏层状态,确定第三时刻的指标预测值。

示例地,可以通过以下等式(2)来确定第三时刻的指标预测值:

o(t)=v·h(t)+c(2)

其中,o(t)为所述第三时刻的指标预测值;v为所述第一rnn-lstm预测模型的参数矩阵;c为所述第一rnn-lstm预测模型的输出层偏置。

下面针对上述步骤304中的当获取到第三时刻的指标数据时,根据第三时刻的指标数据与第三时刻的指标预测值,确定第三时刻的指标数据是否异常进行详细说明。

在本公开中,在获取到第三时间的指标数据后,可以通过上述确定第一时刻的指标数据是否异常同样的方式来确定第三时刻的指标数据是否异常,即:若|第三时刻的指标数据-第三时刻的指标预测值|>第二预设阈值,则确定第三时刻的指标数据异常;若|第三时刻的指标数据-第三时刻的指标预测值|≤第二预设阈值,则确定第三时刻的指标数据正常。

另外,当确定第三时刻的指标数据异常时,可以进行异常告警,从而使得用户能够及时发现该异常情况,并针对该异常情况采取相应的措施。示例地,可以通过以下方式中的至少一者来进行异常告警:显示异常信息、播放异常告警语音、使与第三时刻的指标数据相对应的异常标记(例如,指示灯、图标等)闪烁、向用户发送消息等等。

最后,针对上述第一rnn-lstm预测模型的构建方法进行详细说明。在一种实施方式中,可以通过图4a中所示的步骤401~步骤403来构建上述第一rnn-lstm预测模型。

在步骤401中,获取第一预设历史时段内的多个第一历史指标数据,得到第二时间序列。

其中,第二时间序列与上述第一时间序列对应于同一指标;并且,上述第一预设历史时段可以是任一历史时段。

在步骤402中,将第二时间序列作为训练样本输入到初始的rnn-lstm模型中进行训练,得到第二rnn-lstm预测模型。

在步骤403中,将第二rnn-lstm预测模型确定为第一rnn-lstm预测模型。

另外,由于上述训练样本的数据量比较有限,并且训练样本中可能存在异常指标数据,这样,采用该训练样本获得的第二rnn-lstm预测模型可能不是最优的,因此,在获得第二rnn-lstm预测模型后,可以先对第二rnn-lstm预测模型进行更新优化,之后,将该更新优化后的第二rnn-lstm预测模型确定为第一rnn-lstm预测模型。这样,可以提高第一rnn-lstm预测模型的预测精度,进而提升后续数据异常检测的准确率。具体来说,可以通过图4b中所示的步骤401、步骤402以及步骤404来实现。

在步骤401中,获取第一预设历史时段内的多个第一历史指标数据,得到第二时间序列。

在步骤402中,将第二时间序列作为训练样本输入到初始的rnn-lstm模型中进行训练,得到第二rnn-lstm预测模型。

在步骤404中,对第二rnn-lstm预测模型进行更新,获得第一rnn-lstm预测模型。

在本公开中,在通过上述步骤402得到第二rnn-lstm预测模型后,可以先对该第二rnn-lstm预测模型进行更新,从而得到第一rnn-lstm预测模型。具体来说,可以通过图5中所示的步骤4041~40410来实现第二rnn-lstm预测模型的更新操作。

在步骤4041中,获取第二预设历史时段内的多个第二历史指标数据,得到第三时间序列。

其中,第三时间序列与上述第二时间序列对应于同一指标,即上述第一时间序列、第二时间序列以及该第三时间序列均对应于同一指标。并且,上述第二预设历史时段可以是与上述第一预设历史时刻不同的任一历史时段。

在步骤4042中,将第三时间序列中的第一个指标数据确定为测试指标数据。

在步骤4043中,获取第五时刻的指标数据。

其中,第五时刻为第四时刻的上一时刻,第四时刻为测试指标数据对应的时刻。

在步骤4044中,在确定第五时刻的指标数据正常时,根据在第六时刻获得的第五时刻的指标预测值、第五时刻的指标数据和包括该第五时刻的指标数据在内的第四时间序列,更新第二rnn-lstm预测模型的隐藏层状态。

在本公开中,第六时刻为第五时刻的上一时刻,第四时间序列的最后一个数据为第五时刻的指标数据。

示例地,第四时间序列为xt-1、xt,其中,t为第五时刻,t-1为第六时刻,xt上述步骤4043获取到的第五时刻(即t时刻)的指标数据,xt-1为第六时刻(即t-1时刻)的指标数据。

又示例地,第四时间序列为xt-3、xt-2、xt-1、xt,其中,t为第五时刻,t-1为第六时刻,xt为上述步骤4043获取到的第五时刻(即t时刻)的指标数据,xt-1为第六时刻(即t-1时刻)的指标数据,xt-2为t-2时刻的指标数据,xt-3为t-3时刻的指标数据。

并且,示例地,可以通过以下等式(3)来更新第二rnn-lstm预测模型的隐藏层状态:

h'(t)=φ'(u'·x'(t)+w'·[k'y(t-1)+(1-k')o'(t-1)]+b')(3)

其中,h'(t)为更新后的第二rnn-lstm预测模型的隐藏层状态;t为所述第五时刻;φ'()为激活函数,示例地,该激活函数可以为双曲正切激活函数(tanh),即h'(t)=tanh(u'·x'(t)+w'·[k'y(t-1)+(1-k')o'(t-1)]+b');x'(t)为所述第四时间序列;y'(t-1)为所述第五时刻的所述指标数据;o'(t-1)为所述第五时刻的指标预测值;u'、w'为所述第二rnn-lstm预测模型的参数矩阵;b'为所述第二rnn-lstm预测模型的隐藏层状态偏置;k'为所述第五时刻的所述指标数据y'(t-1)的权重;(1-k')为所述第五时刻的指标预测值o'(t-1)的权重。

其中,上述k'可以为[0,1]范围内的常数。由于该k'的取值范围在[0,1]之间,为了便于体现其取值范围,优选地,该k'可以为sigmoid函数,即k'=expc/(1+expc)(其中,c为常数)。

另外,可以通过上述确定第一时刻的指标数据是否正常的同样的方式来确定第五时刻的指标数据是否正常,这里不再赘述。

在步骤4045中,根据更新后的第二rnn-lstm预测模型的隐藏层状态,确定第四时刻的指标预测值。

示例地,可以通过以下等式(4)来确定第四时刻的指标预测值:

o'(t)=v'·h'(t)+c'(4)

其中,o'(t)为所述第四时刻的指标预测值;v'为所述第二rnn-lstm预测模型的参数矩阵;c'为所述第二rnn-lstm预测模型的输出层偏置。

在步骤4046中,根据测试指标数据与第四时刻的指标预测值,确定测试指标数据是否异常。

在本公开中,可以采用上述确定第一时刻的指标数据是否异常同样的方式来确定上述测试指标数据是否异常,这里不再赘述。

在确定测试指标数据异常时,可以根据该测试指标数据和第三时间序列中的第二个指标数据,更新上述k',即执行以下步骤4047;而在确定测试指标数据正常时,不更新上述k',此时,可以执行以下步骤4048。

在步骤4047中,根据测试指标数据和第三时间序列中的第二个指标数据,更新k'。

在本公开中,在上述步骤4046确定测试指标数据异常时,可以通过以下方式更新k':

(1)若测试指标数据和第三时间序列中的第二个指标数据的差值的绝对值小于第一预设阈值,表明第三时间序列中的第一个指标数据和第二指标数据相对比较稳定,即实际输出值表现的更加稳定,此时,可以增大实际输出值的权重,即增大k',从而可以提高第二rnn-lstm预测模型的稳定性和预测精度。

在一种实施方式中,可以将k'增大一第一预设增长量。

在本公开中,当k'为常数时,如果该k'增大一第一预设增长量后的值大于1,则令k'=1。

而当k'=expc/(1+expc)时,可以通过将c增大一第二预设增长量来达到增大k'的目的。示例地,第二预设增长量为1。

在另一种实施方式中,根据上述第四时间序列中各指标数据的标准差,确定增长量,并按照该增长量增大k'。

示例地,k'=expc/(1+expc),当(n-1)·σ≤|测试指标数据-第三时间序列中的第二个指标数据|<n·σ时(其中,σ为上述第四时间序列中各指标数据的标准差,n为正整数),令c增大例如,当0≤|测试指标数据-第三时间序列中的第二个指标数据|<σ时,令c增大1;当σ≤|测试指标数据-第三时间序列中的第二个指标数据|<2σ时,令c增大

(2)若测试指标数据和第三时间序列中的第二个指标数据的差值的绝对值大于或等于上述第一预设阈值,表明第三时间序列中的第一个指标数据和第二指标数据相对不稳定,即实际输出值表现的不稳定,此时,可以减小实际输出值的权重,即减小k',从而可以提高第二rnn-lstm预测模型的稳定性和预测精度。

在一种实施方式中,可以将k'减小一第一预设减小量。

在本公开中,当k'为常数时,如果该k'减小一第一预设增长量后的值小于0,则令k'=0。

而当k'=expc/(1+expc)时,可以通过将c减小一第二预减小量来达到减小k'的目的。示例地,第二预设减小量为1。

在另一种实施方式中,根据上述第四时间序列中各指标数据的标准差,确定减小量,并按照该减小量减小k'。

示例地,k'=expc/(1+expc),当(n-1)·σ≤|测试指标数据-第三时间序列中的第二个指标数据|<n·σ时(其中,σ为上述第四时间序列中各指标数据的标准差,n为正整数),令c减小例如,当0≤|测试指标数据-第三时间序列中的第二个指标数据|<σ时,令c减小1;当σ≤|测试指标数据-第三时间序列中的第二个指标数据|<2σ时,令c减小

另外,需要说明的是,上述第一预设增长量、第二预设增长量、第一预设减小量、第二预设减小量均可以是用户设定的值,也可以是默认的经验值,在本公开中均不作具体限定。

返回图5,在步骤4048中,从第三时间序列中删除测试指标数据。

在步骤4049中,判断第三时间序列的长度是否等于零。

在本公开中,从第三时间序列中删除上述测试指标数据(即该序列中的第一个指标数据)后,得到新的第三时间序列,之后,可以先判定该新的第三时间序列的长度是否等于零。若该新的第三时间序列的长度不等于零,则返回上述步骤4042继续执行,直到新的第三时间序列的长度等于零时为止,此时,可以将当前获得的第二rnn-lstm预测模型确定为第一rnn-lstm预测模型(即执行以下步骤40410)。

在步骤40410中,将当前获得的第二rnn-lstm预测模型确定为第一rnn-lstm预测模型。

此外,需要说明的是,上述第一预设阈值、第二预设阈值可以是用户设定的值,也可以是默认的经验值,并且,二者可以相等,也可以不相等,在本公开中均不作具体限定。

图6是根据一示例性实施例示出的一种数据异常检测装置的框图。参照图6,该装置600可以包括:第一获取模块601,用于获取第一时刻的指标数据;更新模块602,用于在确定所述第一时刻的指标数据正常时,根据在第二时刻获得的所述第一时刻的指标预测值、所述第一获取模块601获取到的所述第一时刻的所述指标数据和包括所述第一时刻的指标数据在内的第一时间序列,更新第一rnn-lstm预测模型的隐藏层状态,其中,所述第二时刻为所述第一时刻的上一时刻,所述第一时间序列的最后一个数据为所述第一时刻的指标数据;第一确定模块603,用于根据所述更新模块602更新后的第一rnn-lstm预测模型的隐藏层状态,确定第三时刻的指标预测值,其中,所述第三时刻为所述第一时刻的下一时刻;第二确定模块604,用于当获取到所述第三时刻的指标数据时,根据所述第三时刻的所述指标数据与所述第一确定模块603确定出的所述第三时刻的指标预测值,确定所述第三时刻的所述指标数据是否异常。

可选地,所述更新模块602,用于在确定所述第一时刻的指标数据正常时,根据在第二时刻获得的所述第一时刻的指标预测值、所述第一获取模块601获取到的所述第一时刻的所述指标数据和包括所述第一时刻的指标数据在内的第一时间序列,通过以上等式(1)来更新第一rnn-lstm预测模型的隐藏层状态,其中,所述第二时刻为所述第一时刻的上一时刻,所述第一时间序列的最后一个数据为所述第一时刻的指标数据。

可选地,所述第二确定模块604,用于若所述第三时刻的所述指标数据与所述第一确定模块603确定出所述第三时刻的指标预测值之间的差值的绝对值大于第二预设阈值,则确定所述第三时刻的所述指标数据异常。

图7是根据一示例性实施例示出的一种第一rnn-lstm预测模型构建装置的框图。参照图7,该装置700可以包括:第二获取模块701,用于获取第一预设历史时段内的多个第一历史指标数据,得到第二时间序列,其中,所述第二时间序列与所述第一时间序列对应于同一指标;训练模块702,用于将所述第二获取模块701得到的所述第二时间序列作为训练样本输入到初始的rnn-lstm模型中进行训练,得到第二rnn-lstm预测模型;第三确定模块703,用于将所述训练模块702得到的所述第二rnn-lstm预测模型确定为所述第一rnn-lstm预测模型,或者对所述训练模块702得到的所述第二rnn-lstm预测模型进行更新,获得所述第一rnn-lstm预测模型。

可选地,所述第三确定模块703包括:第一获取子模块,用于获取第二预设历史时段内的多个第二历史指标数据,得到第三时间序列,其中,所述第三时间序列与所述第二时间序列对应于同一指标,所述第二预设历史时段与所述第一预设历史时段不同;第一确定子模块,用于将所述第一获取子模块获取到的所述第三时间序列中的第一个指标数据确定为测试指标数据;第二获取子模块,用于获取第五时刻的指标数据,其中,所述第五时刻为第四时刻的上一时刻,所述第四时刻为所述测试指标数据对应的时刻;第一更新子模块,用于在确定所述第二获取子模块获取到的所述第五时刻的指标数据正常时,根据在第六时刻获得的所述第五时刻的指标预测值、所述第五时刻的所述指标数据和包括所述第五时刻的指标数据在内的第四时间序列,通过以上等式(3),更新所述第二rnn-lstm预测模型的隐藏层状态,其中,所述第六时刻为所述第五时刻的上一时刻,所述第四时间序列的最后一个数据为所述第五时刻的指标数据;第二确定子模块,用于根据所述第一更新子模块更新后的第二rnn-lstm预测模型的隐藏层状态,确定所述第四时刻的指标预测值;第三确定子模块,用于根据所述第一确定子模块确定出的所述测试指标数据与所述第二确定子模块确定出的所述第四时刻的指标预测值,确定所述测试指标数据是否异常;第二更新子模块,用于若所述第三确定子模块确定所述测试指标数据异常,则根据所述测试指标数据和所述第三时间序列中的第二个指标数据,更新所述k';删除子模块,用于从所述第一获取子模块获取到的所述第三时间序列中删除所述测试指标数据;触发子模块,用于触发所述第一确定子模块将所述第一获取子模块获取到的所述第三时间序列中的第一个指标数据确定为测试指标数据,直到所述第三时间序列的长度等于零时为止,并将当前获得的所述第二rnn-lstm预测模型确定为所述第一rnn-lstm预测模型。

可选地,所述第二更新子模块包括:第一增大子模块,用于若所述测试指标数据和所述第三时间序列中的第二个指标数据的差值的绝对值小于第一预设阈值,则增大所述k';第一减小子模块,用于若根据所述测试指标数据和所述第三时间序列中的第二个指标数据的差值的绝对值大于或等于所述第一预设阈值,则减小所述k'。

可选地,所述第一增大子模块包括:增长量确定子模块,用于根据所述第四时间序列中各指标数据的标准差,确定增长量;第二增大子模块,用于按照所述增长量确定子模块确定出的所述增长量增大所述k';所述第一减小子模块包括:减小量确定子模块,用于根据所述第四时间序列中各指标数据的标准差,确定减小量;第二减小子模块,用于按照所述减小量确定子模块确定出的所述减小量减小所述k'。

另外,需要说明的是,上述第一rnn-lstm预测模型构建装置700可以与上述数据异常检测装置600相互独立,也可以集成于该数据异常检测装置600内,在本公开中不作具体限定。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开提供的上述数据异常检测方法的步骤。

图8是根据一示例性实施例示出的一种电子设备800的框图。如图8所示,该电子设备800可以包括:处理器801,存储器802。该电子设备800还可以包括多媒体组件803,输入/输出(i/o)接口804,以及通信组件805中的一者或多者。

其中,处理器801用于控制该电子设备800的整体操作,以完成上述的数据异常检测方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件807可以包括:wi-fi模块,蓝牙模块,nfc模块等等。

在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据异常检测方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据异常检测方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的数据异常检测方法。

图9是根据一示例性实施例示出的一种电子设备900的框图。例如,电子设备900可以被提供为一服务器。参照图9,电子设备900包括处理器922,其数量可以为一个或多个,以及存储器932,用于存储可由处理器922执行的计算机程序。存储器932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器922可以被配置为执行该计算机程序,以执行上述的数据异常检测方法。

另外,电子设备900还可以包括电源组件926和通信组件950,该电源组件926可以被配置为执行电子设备900的电源管理,该通信组件950可以被配置为实现电子设备900的通信,例如,有线或无线通信。此外,该电子设备900还可以包括输入/输出(i/o)接口958。电子设备900可以操作基于存储在存储器932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据异常检测方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器932,上述程序指令可由电子设备900的处理器922执行以完成上述的数据异常检测方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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