时间序列中异常点的检测方法、装置、电子设备及存储介质与流程

文档序号:17724815发布日期:2019-05-22 02:26阅读:227来源:国知局
本发明涉及数据处理
技术领域
:,尤其涉及一种时间序列中异常点检测方法、装置、电子设备及存储介质。
背景技术
::随着互联网技术的发展,时间序列的异常检测成为各类信息技术公司迫切需要解决的问题。时间序列是指将同一统计指标的数值按时间先后顺序排列得到的数值序列,例如某网页每小时的访问量、某数据库每5分钟的读取量、网络带宽、cpu的使用量、网络云存储硬盘的每分钟的io数、服务器每小时的各种协议流量、某服务每5分钟的平均访问时延等等。这些统计量的异常往往意味着安全事故。例如网页访问量异常可能是正在被ddos攻击,cpu使用量异常可能意味着中了病毒木马,服务器的协议流量异常可能是因为宕机,硬盘的io异常意味着硬盘可能出现了故障。在此背景下,时间序列异常的及时发现,甚至提前预警变得越来越重要。现有的时间序列异常检测方法主要是利用统计或者机器学习算法进行异常检测,但是在实际使用过程中,都存在不同程度的漏报、误报,准确率低。技术实现要素:本发明的主要目的在于提供一种时间序列中异常点检测方法、装置、电子设备及存储介质,提高异常点检测结果的准确性。为实现上述目的,本发明实施例第一方面提供一种时间序列中异常点检测方法,包括:对待处理的时间序列做预处理,得到多个时间子序列;根据预置的检测规则,对所述多个时间子序列进行异常检测,得到第一检测结果;根据预置的误判规则,纠正所述第一检测结果,得到第二检测结果,所述第二检测结果为所述时间序列的异常检测结果。本发明实施例第二方面提供一种时间序列中异常点检测装置,包括:预处理模块,用于对待处理的时间序列做预处理,得到多个时间子序列;检测模块,用于根据预置的检测规则,对所述多个时间子序列进行异常检测,得到第一检测结果;纠正模块,用于根据预置的误判规则,纠正所述第一检测结果,得到第二检测结果,所述第二检测结果为所述时间序列的异常检测结果;本发明实施例第三方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现本发明实施例第一方面提供的时间序列中异常点检测方法。本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的时间序列中异常点检测方法。从上述本发明实施例可知,本发明提供的时间序列中异常点检测方法、装置、电子设备及存储介质,对待处理的时间序列做预处理,得到多个时间子序列,根据预置的检测规则,对多个时间子序列进行异常检测,得到第一检测结果,根据预置的误判规则,纠正第一检测结果,得到第二检测结果,该第二检测结果为该时间序列的异常检测结果,可提高异常点检测结果的准确性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明第一实施例提供的时间序列中异常点的检测方法的流程示意图;图2为本发明第三实施例提供的时间序列中异常点的检测装置的结构示意图;图3示出了一种电子设备的硬件结构图。具体实施方式为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。时间序列是指时间序列是指将同一统计指标的数值按时间先后顺序排列得到的数值序列,例如:某服务器每小时的网络吞吐量、某网站每分钟的访问次数。时间序列异常是指时间序列中某个数值或者某个数值的子序列偏离了正常状态。网络流量是指网络传输数据量,包括但不限于packet-level的流量、flow-level的流量和stream-level的流量。其中,packet-level的流量诸如数据包大小、传输字节数等。flow-level的流量诸如各种网络协议(tcp、udp、ftp等)的链接数。stream-level的流量诸如不同主机或者不同应用间的数据传输量。请参阅图1,图1为本发明第一实施例提供的时间序列中异常点的检测方法的流程示意图,该方法可应用于电子设备中,电子设备包括:手机、平板电脑(portableandroiddevice,pad),笔记本电脑以及个人数字助理(personaldigitalassistant,pda)等,该方法主要包括以下步骤:s101、对待处理的时间序列做预处理,得到多个时间子序列;根据网络流量日志生成时间序列,序列中的每个数据点由时间戳和数值组成,数值可以是以时间戳为起点,窗口大小为n(n可以是5分钟、1小时、1天等等)的统计量。例如:对某网页以10分钟为窗口的访客量进行计数统计,考虑时间因素可以得到序列[(2018-08-0709:10:00,34),(2018-08-0709:20:00,12),(2018-08-0709:30:00,67),(2018-08-0709:40:00,34),……,(2018-08-0723:40:00,2)],如果不考虑时间因素可以得到序列:[34,12,67,34,.....,2]。假设待处理的时间序列为si,预处理包括:首先对时间序列si,进行预设窗口大小为w的移动平均计算,得到序列si1和残差序列si2。然后,对时间序列si进行stl分解,将原始序列分解为趋势、周期、残余项,分别用si3、si4和si5表示。最终待处理的时间序列si经过预处理阶段会得到包括时间序列si在内6个子序列si,si1,si2,si3,si4,si5。s102、根据预置的检测规则,对多个时间子序列进行异常检测,得到第一检测结果;采用多个检测器,根据预置的检测规则,分别对多个时间子序列中的数据点进行异常检测,确定多个时间子序列的异常点,得到第一检测结果。具体的,假设时间序列si有10个数据点,采用5个检测器分别对多个时间子序列中的数据点进行异常检测,其第一检测结果如表1所示。其中0表示正常点,1表示异常点,x表示没有检测结果,即根据预置的检测规则,该检测器不适用于该时间子序列。表1检测器1检测器2检测器3检测器4检测器5si0000100000x00000000000000000000100001000000si100001000000000100000000000000000000000001xsi200001000000000100000x000000000100001000000si30000100000000010000000000010000000000000000000000000si40000100000000010000000000000000x00000000000si50000100000000010000000000000000000000000000001000000s103、根据预置的误判规则,纠正第一检测结果,得到第二检测结果;根据预置的误判规则,过滤多个时间子序列中的异常点,融合过滤后的多个时间子序列,得到第二检测结果。例如,假设误判规则r1:cw>3&i=2&j=4,表示子序列编号为2,检测器编号为4的检测结果中窗口大小为w的时间段内,异常点数量大于3。示例性的,对于表1,假设应用完所有误判规则之后得到的结果如下表2所示。其中,划线数字为应用误判规则后结果发生改变的地方。表2检测器1检测器2检测器3检测器4检测器5si0000100000x00000000000000000000000001000000si100001000000000100000000000000000000000000xsi200000000000000100000x000000000000001000000si30000000000000010000000000010000000000000000000000000si40000100000000000000000000000000x00000000000si50000100000000010000000000000000000000000000000000000对以上结果进行融合,这里融合方案是对所有时间子序列的结果进行操作,得到最终的结果si:0000100000,其中0表示正常点,1表示异常点。更多的,得到第二检测结果之后,统计数据库中时间序列的特征参数,该特征包括统计特征、拟合特征、类别特征和业务特征。该特征可用一个特征列表存储,该列表可以灵活删除、添加、修改。融合进丰富的业务知识,提高步骤分析结果的可靠性。其中,统计特征,例如当前序列的均值、方差、中位数、不同周期的周期性、同比变化率、环比变化率,自相关系数、变异系数、一定大小的时间窗口内异常点个数、不同周期不同类型的异常点数量的平均数,当前时间点步骤2中分解出的序列中异常的序列数等等。拟合特征,例如当前时间点为结尾,窗口大小为w的时间子序列的移动均值、移动方差、自相关系数、bg分隔后的线段拟合残差等类别特征,例如异常点所属序列在步骤2中得到的序列列表中的编号、异常点所属的检测器编号、窗口大小为w的子序列中是否包含bg算法检测到的突变点、窗口大小为w范围类各类型的异常点数量等。业务特征,业务特征可有效的结合业务人员的专业经验,例如异常点发生的时段是早中晚还是深夜、是否是节假日周末双休、流量的来源(例如来自某个协议、某条业务线、某个机房等)。进一步地,将特征参数按照预设组合规则,组合形成多个不同的特征组合。具体的,特征组合过程:不同的特征组合可以理解为不同的特征子空间,能不同程度的反映不同的异常模式。不同特征组之间可以有交集,特征组合表示为:g={(f1,dfunc1),(f2,dfunc2),...(fi,dfunci)...,(fn,dfuncn)}其中表示特征集f的一个子集,dfunci表示应用于特征组合fi上的距离函数,对于由连续变量组成的特征组合,dfunc采用欧式距离衡量,对于类别特征,dfunc采用jacard相似性衡量,对于包含两类特征的特征组合,dfunc采用二者的加权和衡量。特征组合来源有二个,一是依赖于业务人员经验的自定义组合,比如某些对象的误报异常点表现为与时间因素关联较大,且主要模式为自相关性的破坏,那么g={异常发生的时段、是否是周末、是否是节假日、序列的自相关系数、w窗口的子序列自相关系数}就可以成为一个有效的特征组;二是根据误判规则生成器中的机器学习模型学习得到,误判规则学习器的详细解释见步骤。通过误判规则生成器进行特征组合的方法包括:1)抽取决策树类机器学习模型的决策路径,对决策路径进行融合修剪后,提取出相关的特征构成特征组合;2)通过分类模型的特征重要性权重取topn个特征构成特征组合;3)根据标注的误判点,计算各特征的信息增益,取信息增益最大且大于一定阈值的n个特征构成特征组合。其中前两种方法适用于业务人员对检测结果有较多标注更正的时候,而3)适用于更正点较少的时候。具体的,特征计算过程:根据更正标注的类型,计算第二检测结果中对应的数据点的特征,得到计算结果,根据更正标注和计算结果,调整预置的检测规则和预置的误判规则,确定时间序列的异常检测结果。根据定义好的特征,计算时间序列中各个数据点的特征,将数据点映射到特征空间。其特征计算的触发条件有所不同。具体的,1)向用户的展示过程中,用户没有反馈更正标注时,不进行特征计算;2)当展示过程中,有更正标注时,如果更正标注是误报,则触发对第二检测结果中异常点的特征计算,如果是漏报,则触发对第二检测结果中被过滤的异常点的特征计算,如果是漏检则触发对正常点的特征计算,该正常点是指未被任何预置的检测规则判定为异常点的数据点。3)对计算对象或者时间范围有修改时。在进行特征计算前,会先确定进行特征计算的计算对象,以及时间范围。默认的计算对象和时间范围确认方法是:对于异常点、第二检测结果中被过滤的异常点、正常点,时间范围为窗口w,w满足cw>n,其中cw代表窗口w范围内,某个或者某几个检测器的异常点或者异常点数量,n为阈值,在实际业务环境中由统计方法得出,一般为周的平均异常量。计算对象的确认方法是,与标注时间区间为中心,宽度为w2的时间窗口内,与标注对象有相同类型异常的序列对象。例如,对于表1中的序列si,假设用户标注第10个数据点为误报,由表知道,该异常点来自于检测器4和子序列si、si1和si2,则在w2=3的情况下,如果时间序列sj的子序列sj、sj1、sj2在第8~10个数据点中存在检测器4的异常点,则该异常点确认为计算对象。对于正常点,时间范围为一天,计算对象为经过标准化后利用dtw算法得到的与当前序列相似性大于0.7的序列对象。进一步地,误判规则生成过程:根据接收到的更正标注以及特征计算过程的计算结果,对现有的误判规则进行调整或者生成新的规则以满足用户的标注反馈。具体的,1)根据更正标注,按照特征计算过程中计算相似性时确定计算的时间范围和对象的方法得到序列对象和时间范围,然后产生训练样本,样本特征由特征计算过程得到,样本标签为业务人员的标注结果。2)用随机森林训练分类模型;3)根据得到的模型抽取规则。具体抽取方法为:a)分别对随机森林中的每一课决策树提取出规则,一条规则既是决策树中的一条路径;b)简化规则中的冗余项目,例如有规则为(r1:a>2anda>4anda<10andb=1andb=1then1)简化后得到(r1:a>4anda<10andb=1then1);c)对简化后的规则去重;d)删除结果冲突规则,例如(r1:a>4andb=1then1,r2:a>4andb=1then0),则删除这两条规则;e)处理条件冲突规则,例如(r1:a>5andc>4then1,r2:a>5andc<8then0),则处理后为(r1:a>5andc>=8then1,r2:a>5andc<=4then0);f)对最后的结果再次去重。进一步地,将生成的误报规则与现有规则进行冲突检测,检测方法根据误判规则生成过程中3)进行。进一步地,检测规则生成过程:检测规则生成过程可由检测器进行,检测器可包含两种,一是基于无监督方法的检测器,主要包括基于统计类的方法和基于回归预测类的方法,这一类检测器根据历史数据建模得到并预置于检测器管理装置中。二是通过业务人员的反馈标注产生训练数据,利用gbdt算法进行训练得到有监督检测器。两类方法都有一定的适用性,也就是某个检测器只对某类序列,或者某类序列的部分子序列能起到较好的检测效果。通过配置规则可以很好的进行检测器检测对象的管理,如:{detector:检测器1,type:flow_level,obj:[ip1,ip2,host1],flag:tp1,sub:3}。表示检测器1适用于列表obj范围内,流量类型为flow_level,flag标志位tp1的流量对象的第3个子序列。配置规则会在适用过程中,根据用户的反馈结果进行调整。检测规则生成主要在用户有漏报标注,且标注结果无法通过规则进行调整时才会触发。主要是采用gbdt进行有监督检测模型的训练。首次训练对标注的数量有一定要求,保证有足够的训练数据。后期的训练,训练数据集xt={xt-1,xc,xd}由三部分组成:xt-1,上一次训练模型所用训练数据集;xc,当前累计的更正标注结果;xd,期间有监督检测模型检测结果被确定为异常的数据点。在使用过程中根据业务人员的更正标注动态调整,保证了检测规则和误判规则的准确度与时效性,使检测结果更加可靠。进一步地,相似性分析过程:在业务人员对第二检测结果中的数据点有更正标注时,计算并返回与更正点同类型的候选数据点和产生候选数据点的规则。候选数据点包括两类:同一序列中具有相似模式的数据点和不同序列中具有相似模式的数据点。更正标注分三类:漏报、误报和漏检。候选数据点和候选数据点规则的产生步骤如下:1)确定标注数据点集合x在特征组合g(参见特征组合过程)上的组合特征集xg,xg={xg11,xg12,....,xgij,......xgnm}xgij={xf11,.....,xfij,......xfik}其中x∈x,g∈g,f∈f,n为标注点数量,m为特征组合数量,k为特征组合中特征的数量,xgij表示第i个标注点在第j个特征组合上的特征值集合,xfij表示第i个标注点对应的第j个特征值。2)根据特征组合过程中定义的特征组合和特征计算过程中3)确定的时间范围内的数据点集合e在特征组合g上的组合特征集eg:eg={eg11,eg12,......,egij,....,eghm}egij={ef11,.....,efij,......,efhm}其中,h为特征计算过程中3)确定的特征计算对象数据点数量,egij为第i个计算对象数据点在第j个特征组合上的特征值集合,efij为集合e中第i个数据点对应的第j个特征值。3)对于xfij∈xgij,egij∈eg,计算数据点的相似性:dij={dfuncj(xfij,eflj),eflj∈egij}其中dfuncj为定义在特征组合fj上的相似性度量函数。dij表示第i个标注点在特征组合g上与集合e中所有数据点的相似性度量。4)对于xfij∈x,返回集合e中在特征组合g上与其相似的数据点wj={ek},其中ek满足:①k∈argmin_k(dij),表示在特征组合j上最相似的k个点。②dfuncj(xfij,eflj)>α,α为该特征组合上相似性的最小阈值。5)根据wj,生成该特征组合fj上与当前标注点的相似性规则,规则由该特征组合下有效特征及其取值或者取值范围组成。例如r:{f2<0.5&f4=1&f10>8}。参照误判规则过程对5)中的规则进行合并,对合并的规则,并返回最终的相似数据点与对应的规则。在本发明实施例中,对待处理的时间序列做预处理,得到多个时间子序列,根据预置的检测规则,对多个时间子序列进行异常检测,得到第一检测结果,根据预置的误判规则,纠正第一检测结果,得到第二检测结果,当接收到对第二检测结果的更正标注时,该第二检测结果为该时间序列的异常检测结果,可提高异常点检测结果的准确性。请参阅图2,图2为本发明第二实施例提供的时间序列中异常点的检测装置的结构示意图,该装置可应用于电子设备,该装置包括:预处理模块201、检测模块202、纠正模块203和确定模块203;预处理模块201,用于对待处理的时间序列做预处理,得到多个时间子序列;更多的,当接收到对第二检测结果的更正标注时,根据更正标注的类型,计算第二检测结果中对应的数据点的特征,得到计算结果;根据更正标注和计算结果,获取用于更新预置的检测规则和预置的误判规则的目标数据,根据目标数据调整预置的检测规则和预置的误判规则。检测模块202,用于根据预置的检测规则,对多个时间子序列进行异常检测,得到第一检测结果;采用多个检测器,根据预置的检测规则,分别对多个时间子序列中的数据点进行异常检测,确定多个时间子序列的异常点,得到第一检测结果。纠正模块203,用于根据预置的误判规则,纠正第一检测结果,得到第二检测结果;根据预置的误判规则,过滤多个时间子序列中的异常点,融合过滤后的多个时间子序列,得到第二检测结果。更多的,统计数据库中时间序列的特征参数,特征包括统计特征、拟合特征、类别特征和业务特征。将特征参数按照预设组合规则,组合形成多个不同的特征组合。在本发明实施例中,对待处理的时间序列做预处理,得到多个时间子序列,根据预置的检测规则,对多个时间子序列进行异常检测,得到第一检测结果,根据预置的误判规则,纠正第一检测结果,得到第二检测结果,当接收到对第二检测结果的更正标注时,该第二检测结果为该时间序列的异常检测结果,可提高异常点检测结果的准确性。请参见图3,图3示出了一种电子设备的硬件结构图。本实施例中所描述的电子设备,包括:存储器31、处理器32及存储在存储器31上并可在处理器上运行的计算机程序,处理器执行该程序时实现前述图1所示实施例中描述的时间序列中异常点检测方法。进一步地,该电子设备还包括:至少一个输入设备33;至少一个输出设备34。上述存储器31、处理器32输入设备33和输出设备34通过总线35连接。其中,输入设备33具体可为摄像头、触控面板、物理按键或者鼠标等等。输出设备34具体可为显示屏。存储器31可以是高速随机存取记忆体(ram,randomaccessmemory)存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器31用于存储一组可执行程序代码,处理器32与存储器31耦合。进一步地,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是设置于上述各实施例中的终端中,该计算机可读存储介质可以是前述图3所示实施例中的存储器。该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现前述图1所示实施例中描述的时间序列中异常点的检测方法。进一步地,该计算机可存储介质还可以是u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来。需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。以上为对本发明所提供的一种时间序列中异常点检测方法、装置、电子设备及存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1