掌桥专利:专业的专利平台
掌桥专利
首页

一种基于时间序列数据的异常值检测方法和系统

文献发布时间:2023-06-19 10:06:57


一种基于时间序列数据的异常值检测方法和系统

技术领域

本发明涉及异常检测领域,尤其涉及一种基于时间序列数据的异常值检测方法和系统。

背景技术

传统的异常值检测通过构造概率模型,构造概率函数得到唯一的阈值,根据唯一的阈值将置信区间以外的数据视为异常值,这样获得的异常值的方法精度低下。

发明内容

本发明所要解决的技术问题是针对现有技术的不足,提供一种基于时间序列数据的异常值检测方法和系统。

本发明解决上述技术问题的技术方案如下:

一种基于时间序列数据的异常值检测方法,包括:

S1,读取时间序列数据;

S2,根据预设方法将所述时间序列数据进行划分;

S3,将划分后获得的多个数据集分别设置对应的异常值阈值;

S4,根据所述异常值阈值来判断出所述时间序列数据中的异常值。

本发明的有益效果是:本发明方案通过根据预设方法将时间序列数据进行划分,将划分后获得的多个数据集分别设置对应的异常值阈值,根据异常值阈值来判断出时间序列数据中的异常值;对于检测时间序列上下文异常的数据,根据多数投票原则将时间区间进行分类,根据时间区间的类别将数据划分为对应的数据集合,得到不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

相比较拟合数据构造模型的算法都需要设置参数,每次面对新数据时都要重新设置参数,调参工程量大并且对参数值的选取直接影响模型的好坏。这样会导致模型鲁棒性不强,模型的预测结果准确性不高;本发明方案避免反复调参提高了检测的准确率。

进一步地,所述S1具体包括:

判断采集的时间序列数据是否存在概念漂移点,如果不存在,则读取所述时间序列数据。

采用上述进一步方案的有益效果是:本发明方案通过在读取时间序列数据时判断是否存在概念漂移点,实现了读取的时间序列数据具有原始时间序列的共有特征,应用的过程中无需考虑原始数据的特性,具有普遍适用性。

进一步地,所述S2具体包括:

通过差分法处理所述时间序列数据;

根据第一预设阈值将处理后的所述时间序列数据划分出第一时间区间的数据集;

根据第二预设阈值将处理后的所述时间序列数据划分出第二时间区间的数据集。

将第一时间区间的数据集和第二时间区间的数据集的补集作为第三时间区间的数据集。

采用上述进一步方案的有益效果是:本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据不同时间区间对应的阈值来对相应数据集合进行异常值检测,能够更好的适应不同时间区间之间的特异性,有效提高数据整体的异常值检测准确率。

进一步地,所述S3具体包括:

获取第一时间区间的数据集的预设分位值作为第一异常值阈值;

获取第二时间区间的数据集的预设分位值作为第二异常值阈值;

获取第三时间区间的数据集的预设分位值作为第三异常值阈值。

采用上述进一步方案的有益效果是:本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据对应的数据集合设置不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

进一步地,所述S4具体包括:

根据所述第一异常值阈值来判断出所述第一时间区间的数据集中的异常值;

根据所述第二异常值阈值来判断出所述第二时间区间的数据集中的异常值;

根据所述第三异常值阈值来判断出所述第三时间区间的数据集中的异常值。

采用上述进一步方案的有益效果是:本方案通过数据集对应的异常值阈值判断相应数据集的异常值,根据不同的数据集使用不同的异常值阈值进行判断,通过本方案能够提高整体时间序列数据异常值检测的精确度。

本发明解决上述技术问题的另一种技术方案如下:

一种基于时间序列数据的异常值检测系统,包括:读取模块、数据集划分模块、异常值阈值设置模块和判断模块;

所述读取模块用于读取时间序列数据;

所述数据集划分模块用于根据预设方法将所述时间序列数据进行划分;

所述异常值阈值设置模块用于将划分后获得的多个数据集分别设置对应的异常值阈值;

所述判断模块用于根据所述异常值阈值来判断出所述时间序列数据中的异常值。

本发明的有益效果是:本发明方案通过根据预设方法将时间序列数据进行划分,将划分后获得的多个数据集分别设置对应的异常值阈值,根据异常值阈值来判断出时间序列数据中的异常值;对于检测时间序列上下文异常的数据,根据多数投票原则将时间区间进行分类,根据时间区间的类别将数据划分为对应的数据集合,得到不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

相比较拟合数据构造模型的算法都需要设置参数,每次面对新数据时都要重新设置参数,调参工程量大并且对参数值的选取直接影响模型的好坏。这样会导致模型鲁棒性不强,模型的预测结果准确性不高;本发明方案避免反复调参提高了检测的准确率。

进一步地,所述读取模块具体用于判断采集的时间序列数据是否存在概念漂移点,如果不存在,则读取所述时间序列数据。

采用上述进一步方案的有益效果是:本发明方案通过在读取时间序列数据时判断是否存在概念漂移点,实现了读取的时间序列数据具有原始时间序列的共有特征,应用的过程中无需考虑原始数据的特性,具有普遍适用性。

进一步地,所述数据集划分模块具体用于通过差分法处理所述时间序列数据;

根据第一预设阈值将处理后的所述时间序列数据划分出第一时间区间的数据集;

根据第二预设阈值将处理后的所述时间序列数据划分出第二时间区间的数据集。

将第一时间区间的数据集和第二时间区间的数据集的补集作为第三时间区间的数据集。

采用上述进一步方案的有益效果是:本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据不同时间区间对应的阈值来对相应数据集合进行异常值检测,能够更好的适应不同时间区间之间的特异性,有效提高数据整体的异常值检测准确率。

进一步地,所述异常值阈值设置模块具体用于获取第一时间区间的数据集的预设分位值作为第一异常值阈值;获取第二时间区间的数据集的预设分位值作为第二异常值阈值;获取第三时间区间的数据集的预设分位值作为第三异常值阈值。

采用上述进一步方案的有益效果是:本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据对应的数据集合设置不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

进一步地,所述判断模块具体用于根据所述第一异常值阈值来判断出所述第一时间区间的数据集中的异常值;根据所述第二异常值阈值来判断出所述第二时间区间的数据集中的异常值;根据所述第三异常值阈值来判断出所述第三时间区间的数据集中的异常值。

采用上述进一步方案的有益效果是:本方案通过数据集对应的异常值阈值判断相应数据集的异常值,根据不同的数据集使用不同的异常值阈值进行判断,通过本方案能够提高整体时间序列数据异常值检测的精确度。

本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。

附图说明

图1为本发明的实施例提供的一种基于时间序列数据的异常值检测方法的流程示意图;

图2为本发明的实施例提供的一种基于时间序列数据的异常值检测系统的结构框图;

图3为本发明的其他实施例提供的概念漂移点的示意图;

图4为本发明的实施例提供的概念漂移点两侧等距的数据均值的示意图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实施例只用于解释本发明,并非用于限定本发明的范围。

如图1所示,为本发明实施例提供的一种基于时间序列数据的异常值检测方法,该方法包括:

S1,读取时间序列数据;

需要说明的是,在某实施例中,S1可以包括:判断原始时间序列数据是否存在概念漂移点,只读取不存在概念漂移点的合理且有效的数据;由于软件更新、配置变化等现象,数据会出现突升或突降,该点可以称为概念漂移点,如图3所示的圈出来的部分。

其实突变的本质是发生了均值的漂移,判断概念漂移点只需比较两侧等距的数据均值:

其中r(t)表示概念漂移点两侧等距的数据均值,x表示时间序列数据在不同时间点的数值,得到比值如图4所示,最大值则为概念漂移点的比值。

由于概念漂移点之后主机的环境发生变化,所以算法仅根据概念漂移点之后的数据做分析。

为了使算法具有普适性,必须依据数据的共有规律进行建模。但是不同的原始数据的时间序列图或频数图都呈现不同的形态,所以从原始数据入手构造普适性无需调参的算法不可能。然而,用差分法处理不同的原始数据之后的差分数据均在y=0上下波动并且差分数据的频数图均呈现近似正态分布。

S2,根据预设方法将时间序列数据进行划分;

在某实施例中,还可以包括:通过差分法处理原始数据,对处理后的数据记录大于阈值1对应的日期时间区间;将上述日期时间区间按照时间区间进行汇总,频数大于数据天数的一半的时间区间标记为尖锐忙时;记录原始数据小于阈值2对应的日期时间区间,将上述日期时间区间按照时间区间进行汇总,频数大于数据天数的一半的时间区间标记为闲时,将尖锐忙时和闲时的时间区间的补集标记为平稳忙时。

S3,将划分后获得的多个数据集分别设置对应的异常值阈值;

在某实施例中,通过获取尖锐忙时的数据集的90%的分位值作为尖锐忙时时间区的阈值。其中闲时和平稳忙时的时间区的阈值获取方法可以同尖锐忙时时间区一样。

S4,根据异常值阈值来判断出时间序列数据中的异常值。

在某实施例中,针对待分析的主机数据可以保存在excel表格或存储在数据库表中均可,本方案可以将时间区间的分类、时间区间对应的阈值以及阈值在时间序列数据的图像进行展示。

本发明方案通过根据预设方法将时间序列数据进行划分,将划分后获得的多个数据集分别设置对应的异常值阈值,根据异常值阈值来判断出时间序列数据中的异常值;对于检测时间序列上下文异常的数据,根据多数投票原则将时间区间进行分类,根据时间区间的类别将数据划分为对应的数据集合,得到不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

相比较拟合数据构造模型的算法都需要设置参数,每次面对新数据时都要重新设置参数,调参工程量大并且对参数值的选取直接影响模型的好坏。这样会导致模型鲁棒性不强,模型的预测结果准确性不高;本发明方案避免反复调参提高了检测的准确率。

优选地,在上述任意实施例中,S1具体包括:

判断采集的时间序列数据是否存在概念漂移点,如果不存在,则读取时间序列数据。

本发明方案通过在读取时间序列数据时判断是否存在概念漂移点,实现了读取的时间序列数据具有原始时间序列的共有特征,应用的过程中无需考虑原始数据的特性,具有普遍适用性。

优选地,在上述任意实施例中,S2具体包括:

通过差分法处理时间序列数据;

根据第一预设阈值将处理后的时间序列数据划分出第一时间区间的数据集;

在某实施例中,第一预设阈值可以根据一下公式计算得出,其中阈值1为第一预设阈值:

阈值1=原始数据均值+差分数据80%的分位值,

根据第二预设阈值将处理后的时间序列数据划分出第二时间区间的数据集。

在某实施例中,第二预设阈值可以根据一下公式计算得出,其中阈值2为第二预设阈值:

阈值2=原始数据均值+铲粪数据30%的分位值,

将第一时间区间的数据集和第二时间区间的数据集的补集作为第三时间区间的数据集。

在某实施例中,大于阈值1的原始数据所对应的日期时间区间按照时间区间进行汇总,根据多数投票原则将该时间区间标注为尖锐忙时;小于阈值2的原始数据所对应的日期时间区间按照时间区间进行汇总,根据多数投票原则将该时间区间标注为闲时;尖锐忙时和闲时时间区间的补集标记为平稳忙时。

本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据不同时间区间对应的阈值来对相应数据集合进行异常值检测,能够更好的适应不同时间区间之间的特异性,有效提高数据整体的异常值检测准确率。

优选地,在上述任意实施例中,S3具体包括:

获取第一时间区间的数据集的预设分位值作为第一异常值阈值;

获取第二时间区间的数据集的预设分位值作为第二异常值阈值;

获取第三时间区间的数据集的预设分位值作为第三异常值阈值。

在某实施例中,将数据按照时间区间分类为等时间区间的数据存储集合,算法取数据集合90%的分位值作为对应时间区间的阈值。其中预设分位值可以为90%的分位值或者85%的分位值。

本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据对应的数据集合设置不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

优选地,在上述任意实施例中,S4具体包括:

根据第一异常值阈值来判断出第一时间区间的数据集中的异常值;

根据第二异常值阈值来判断出第二时间区间的数据集中的异常值;

根据第三异常值阈值来判断出第三时间区间的数据集中的异常值。

在某实施例中,可以将超过异常值阈值的时间序列数据判断为异常值。

本方案通过数据集对应的异常值阈值判断相应数据集的异常值,根据不同的数据集使用不同的异常值阈值进行判断,通过本方案能够提高整体时间序列数据异常值检测的精确度。

在某一实施例中,如图2所示,一种基于时间序列数据的异常值检测系统,该系统包括:读取模块11、数据集划分模块12、异常值阈值设置模块13和判断模块14;

读取模块11用于读取时间序列数据;

数据集划分模块12用于根据预设方法将时间序列数据进行划分;

异常值阈值设置模块13用于将划分后获得的多个数据集分别设置对应的异常值阈值;

判断模块14用于根据异常值阈值来判断出时间序列数据中的异常值。

本发明方案通过根据预设方法将时间序列数据进行划分,将划分后获得的多个数据集分别设置对应的异常值阈值,根据异常值阈值来判断出时间序列数据中的异常值;对于检测时间序列上下文异常的数据,根据多数投票原则将时间区间进行分类,根据时间区间的类别将数据划分为对应的数据集合,得到不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

相比较拟合数据构造模型的算法都需要设置参数,每次面对新数据时都要重新设置参数,调参工程量大并且对参数值的选取直接影响模型的好坏。这样会导致模型鲁棒性不强,模型的预测结果准确性不高;本发明方案避免反复调参提高了检测的准确率。

优选地,在上述任意实施例中,读取模块11具体用于判断采集的时间序列数据是否存在概念漂移点,如果不存在,则读取时间序列数据。

本发明方案通过在读取时间序列数据时判断是否存在概念漂移点,实现了读取的时间序列数据具有原始时间序列的共有特征,应用的过程中无需考虑原始数据的特性,具有普遍适用性。

优选地,在上述任意实施例中,数据集划分模块12具体用于通过差分法处理时间序列数据;

根据第一预设阈值将处理后的时间序列数据划分出第一时间区间的数据集;

根据第二预设阈值将处理后的时间序列数据划分出第二时间区间的数据集。

将第一时间区间的数据集和第二时间区间的数据集的补集作为第三时间区间的数据集。

本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据不同时间区间对应的阈值来对相应数据集合进行异常值检测,能够更好的适应不同时间区间之间的特异性,有效提高数据整体的异常值检测准确率。

优选地,在上述任意实施例中,异常值阈值设置模块13具体用于获取第一时间区间的数据集的预设分位值作为第一异常值阈值;获取第二时间区间的数据集的预设分位值作为第二异常值阈值;获取第三时间区间的数据集的预设分位值作为第三异常值阈值。

本发明方案通过根据时间区间的类别将数据划分为对应的数据集合,根据对应的数据集合设置不同时间区间对应的阈值,相对于构造概率函数得到唯一的阈值提高了精确度。

优选地,在上述任意实施例中,判断模块14具体用于根据第一异常值阈值来判断出第一时间区间的数据集中的异常值;根据第二异常值阈值来判断出第二时间区间的数据集中的异常值;根据第三异常值阈值来判断出第三时间区间的数据集中的异常值。

本方案通过数据集对应的异常值阈值判断相应数据集的异常值,根据不同的数据集使用不同的异常值阈值进行判断,通过本方案能够提高整体时间序列数据异常值检测的精确度。

可以理解,在一些实施例中,可以包含如上述各实施例中的部分或全部可选实施方式。

需要说明的是,上述各实施例是与在先方法实施例对应的产品实施例,对于产品实施例中各可选实施方式的说明可以参考上述各方法实施例中的对应说明,在此不再赘述。

读者应理解,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例仅仅是示意性的,例如,步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可以结合或者可以集成到另一个步骤,或一些特征可以忽略,或不执行。

上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种基于时间序列数据的异常值检测方法和系统
  • 一种基于EEMD的时间序列数据异常值检测和校正方法
技术分类

06120112422801