CN115858606A - 时序数据的异常检测方法、装置、设备及存储介质 - Google Patents
时序数据的异常检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115858606A CN115858606A CN202111117353.6A CN202111117353A CN115858606A CN 115858606 A CN115858606 A CN 115858606A CN 202111117353 A CN202111117353 A CN 202111117353A CN 115858606 A CN115858606 A CN 115858606A
- Authority
- CN
- China
- Prior art keywords
- model
- time
- abnormal
- data
- series data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种时序数据的异常检测方法、装置、设备及存储介质。该方法包括:将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个异常检测模型分别输出的异常检测结果;基于每个异常检测模型分别输出的异常检测结果和每个异常检测模型的权重,确定时序数据的最终异常检测结果;其中,每个异常检测模型均是基于与时序数据类型相同的样本时序数据训练得到的;每个异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索后确定的。从而能够在提升整体模型算法的准确率的同时,使得模型能够适配各种不同类型的时间序列数据的异常检测任务。
Description
技术领域
本发明涉及大数据挖掘技术领域,具体涉及一种时序数据的异常检测方法、装置、设备及存储介质。
背景技术
信息时代的高速发展下,网络规模和系统规模日益增长,软件系统和服务的更新迭代更加频繁。为了保证向海量用户提供高效可靠的服务,运维人员从生产系统采集主机、容器、中间件等的关键指标数据,从日志系统中提取各种业务数据,并通过监控这些关键指标数据来监测应用的服务状态,帮助运维人员发现系统故障。
从计算机采集的关键指标数据一般是<时间戳,指标值>的时间序列数据(以下简称时序数据),这些时序数据的异常往往可以反映出系统的异常,比如内存泄漏、服务宕机、数据库死锁等,针对时序数据的异常检测有助于帮助尽早发现服务状态异常和系统故障。
目前针对这些时序数据的检测方法一般可分为三类:第一类是基于经验阈值的检测方法,这种方法依赖专家经验,且面临指标数量多,业务调整频繁等问题;第二类是基于有监督的检测方法,比如xgboost(eXtreme Gradient Boosting,极端梯度提升)、logistic(逻辑)回归、随机森林、神经网络等方法,有监督算法依赖于有标注数据,但系统和应用异常在日常中属于极小概率事件,能积累的异常数据非常少,这就导致了哪怕能提供标注数据,其正负样本也极度不均衡,并且只能检测数据集中出现过的故障;第三类是基于无监督的检测方法,如线性回归、ARIMA(Autoregressive Integrated Moving Average model,整合移动平均自回归模型)、移动平均、Holt-Winter(霍尔特-温特)、聚类等方法,但时序数据类型多样,这些无监督算法都面临难以应对全部时序数据类型的问题。
发明内容
针对现有技术存在的问题,本发明提供一种时序数据的异常检测方法、装置、设备及存储介质。
第一方面,本发明提供一种时序数据的异常检测方法,包括:
将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个所述异常检测模型分别输出的异常检测结果;
基于每个所述异常检测模型分别输出的异常检测结果和每个所述异常检测模型的权重,确定所述时序数据的最终异常检测结果;
其中,每个所述异常检测模型均是基于与所述时序数据类型相同的样本时序数据训练得到的;
每个所述异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对所述多个异常检测模型的候选权重组合进行网格搜索后确定的。
可选地,所述预设评价指标包括以下至少一项:
平均绝对误差MAE;均方误差MSE;均方根误差RMSE;平均绝对百分比误差MAPE;绝对百分比误差中位数MEAPE;异常比例。
可选地,所述基于预设评价指标在测试样本集上的交叉验证结果,对所述多个异常检测模型的候选权重组合进行网格搜索,包括:
针对每次网格搜索,基于所述多个异常检测模型和所述每次网格搜索对应的候选权重组合,获取测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值;
基于所述测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值,以及测试样本集中每个时间戳的时序数据真实值,得到所述预设评价指标的值;
基于每次网格搜索得到的所述预设评价指标的值,确定所述多个异常检测模型的最优权重组合。
可选地,所述基于每个所述异常检测模型分别输出的异常检测结果和每个所述异常检测模型的权重,确定所述时序数据的最终异常检测结果,包括:
基于每个所述异常检测模型分别输出的异常检测结果,确定输出检测结果为异常的第一异常检测模型;
将各所述第一异常检测模型的权重之和与所有异常检测模型的权重之和的比值,确定为所述时序数据的异常概率;
若所述异常概率大于预设阈值,则确定所述时序数据异常;或者,
若所述异常概率小于或等于预设阈值,则确定所述时序数据正常。
可选地,所述异常检测模型包括3Sigma模型、Quantile模型、EWMA模型和IForest模型中的至少一种。
可选地:所述3Sigma模型包括多个不同时间粒度的子模型;和/或,所述Quantile模型包括多个不同时间粒度的子模型。
可选地,所述时间粒度包括不分组、日、周、月、工作日/周末、月初/月中/月末和节假日/非节假日。
第二方面,本发明还提供一种时序数据的异常检测装置,包括:
检测模块,用于将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个所述异常检测模型分别输出的异常检测结果;
确定模块,用于基于每个所述异常检测模型分别输出的异常检测结果和每个所述异常检测模型的权重,确定所述时序数据的最终异常检测结果;
其中,每个所述异常检测模型均是基于与所述时序数据类型相同的样本时序数据训练得到的;
每个所述异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对所述多个异常检测模型的候选权重组合进行网格搜索后确定的。
第三方面,本发明还提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述计算机程序时实现如第一方面所述时序数据的异常检测方法的步骤。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述时序数据的异常检测方法的步骤。
本发明提供的时序数据的异常检测方法、装置、设备及存储介质,通过集成多个无监督异常检测模型对待检测时序数据进行检测,并根据各模型权重对检测结果进行综合判定,各模型的权重基于预设评价指标在测试样本集上的交叉验证结果通过网格搜索确定,从而能够在提升整体模型算法的准确率的同时,使得模型能够适配各种不同类型的时间序列数据的异常检测任务。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的时序数据的异常检测方法的流程示意图;
图2是本发明提供的以天是时间粒度提取的均值特征的示意图;
图3是本发明提供的时间粒度是天的3Sigma模型的示意图;
图4是本发明提供的时间粒度是天的Quantile模型的示意图;
图5是本发明提供的时序数据的异常检测方法的实施流程示意图;
图6是本发明提供的BDTS模型的构建过程示意图;
图7是本发明提供的时序数据的异常检测装置的结构示意图;
图8是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在运维监控的领域中,时序数据一般有三种类型:周期型、阶梯型和无规律型。一般涉及到具体业务的,比如在线用户数量、业务量等有较为明显的,以日、周、月、节假日等为周期的规律。以磁盘使用率为代表的时序数据一般为阶梯增长,而CPU(CentralProcessing Unit,中央处理器)使用率、内存使用率等则大多为无规律型。
这些时序数据具有以下两个典型特点:
1、指标数量多,无标注,且历史记录的异常非常少,缺乏已标注的异常数据。
2、类型多。时序数据一般可分为周期型、阶梯型和无规律型。但同样是CPU使用率,可能有周期性,也可能是无规律型,并且可能因为业务变更导致该指标从一种类型(比如无规律型)变换为另一种(比如周期型)。
现有时序数据的异常检测方法中,经验阈值方法依赖专家经验;有监督算法依赖于有标注数据;而单一的无监督算法则面临时序数据类型多样,难以使用一个算法应对全部类型的问题。
针对上述问题,本发明提供一种基于时间序列集成检测(Bagging Detection onTime-Series,BDTS)算法的解决方案,从统计学习出发,以学习数据的统计分布为目的,将数据中不符合统计分布的小概率数据视为异常点,并采用集成学习bagging的策略,在算法上集成3Sigma、Quantile(分位数)、EWMA(Exponentially Weighted Moving-Average,指数加权移动平均)、IForest(Isolation Forest,独立森林)等算法,在时间上提取不同粒度的统计特征,集成多类型、多时间粒度层次的无监督学习算法,并通过自行设计的多个评价指标监控模型性能,并在交叉验证中自动调整子模型权重,使得模型能够自动适配周期型、阶梯型和无规律型时序数据的异常检测任务,检测出时序上的离群点、不一致点和突变点。
图1为本发明提供的时序数据的异常检测方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤100、将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个异常检测模型分别输出的异常检测结果;其中,每个异常检测模型均是基于与该时序数据类型相同的样本时序数据训练得到的;
具体地,为提升对各种不同类型的时序数据的异常检测的准确率,适应各种不同的时序数据的异常检测任务,本发明实施例中,集成多个无监督异常检测模型对时序数据进行检测,每个异常检测模型均是基于与待检测的时序数据类型相同的样本时序数据训练得到的,例如,若待检测的时序数据为周期型,则样本时序数据也应为周期型。进一步,为更好地提升模型的准确率,样本时序数据可以和待检测的时序数据为同一指标类型的数据,如待检测的时序数据为在线用户数量的时序数据,则可以使用在线用户数量的样本时序数据进行模型训练。
每个异常检测模型均对输入的目标待检测时刻的时序数据进行异常检测,并分别输出异常检测结果。
可选地,所述异常检测模型可以包括3Sigma模型、Quantile模型、EWMA模型和IForest模型中的至少一种。其中,3Sigma模型和Quantile模型还可以分别包括多个不同时间粒度的子模型,时间粒度可以包括不分组、日(即天)、周、月、工作日/周末、月初/月中/月末、节假日/非节假日等等。
下面通过具体实施例分别对上述各异常检测模型进行介绍。
(1)3Sigma模型
3Sigma模型常用于检测时序数据的离群点。当数据符合正态分布时,其68.2%的数据分布在(μ-σ,μ+σ)的范围内,95.4%的数据分布在(μ-2*σ,μ+2*σ)的范围内,99.7%的数据分布在(μ-3*σ,μ+3*σ)的范围内。因此,若检测到某时刻的时序数据在该时刻对应的(μ-3*σ,μ+3*σ)范围之外,则可以判断出该时序数据异常。
假设现有数据序列{x0,x1,x2,…,xn},则均值μ,标准差σ的计算方式如下:
基于3Sigma模型进行时序数据的异常检测,首先需要构建3Sigma模型,可以对训练数据进行特征工程,提取均值和标准差等统计特征,基于均值和标准差构建3Sigma模型。对于不同时间粒度的3Sigma模型,则需要提取不同时间粒度的均值和标准差等统计特征。
图2为本发明提供的以天为时间粒度提取的均值特征的示意图,如图2所示,图中曲线上的每个数据点均为训练数据中在该数据点所对应时刻的所有数据取平均值得到的,例如,若训练数据为历史上某6个月的某指标数据,则图中曲线上08:00时刻所对应的数据点,可以通过对这6个月中每一天08:00时刻的指标数据求取平均值得到。对于训练数据较少的情况,例如训练数据为历史上某一周的指标数据,考虑到每个时刻只有7个数据点求取平均值,数据较少,可以针对每个时刻,提取其前后各5分钟的数据填充,如获取这一周中每一天07:55~08:05的数据,然后对这些数据求取平均值,从而08:00时刻可以有70个数据点求取平均值,解决了数据量较少的问题。
再例如,以工作日(或周末)为时间粒度提取均值特征,仍然以训练数据为历史上某6个月的某指标数据为例,则其均值曲线上08:00时刻所对应的数据点,可以通过对这6个月中每一个工作日(或周末)08:00时刻的数据求取平均值得到。
本领域技术人员应当理解,对于其他时间粒度的统计特征提取,都可以采用上述方法依次类推,在此不再赘述。例如,以周为时间粒度的均值特征提取,其均值曲线对应的时间长度可以为一周;以月为时间粒度的均值特征提取,其均值曲线对应的时间长度可以为一个月,等等。
提取不同时间粒度的统计特征后,就可以基于不同时间粒度提取的均值和标准差,构建不同时间粒度的3Sigma模型。例如,图3为本发明提供的时间粒度为天的3Sigma模型的示意图,如图3所示,图中包括上界和下界两条曲线,该上界和下界之间的区域即为3Sigma模型的(μ-3*σ,μ+3*σ)区域,图中上界和下界之间的中间曲线为上界和下界的平均值曲线,即该中间曲线中的每一点均为该点对应时刻的上界和下界的数据平均值,该中间曲线也可以称为预测值曲线,即该中间曲线中的每一点代表了该3Sigma模型对该点对应时刻的数据预测值。
(2)Quantile模型
Quantile(分位数)模型不对数据的分布做假设,假设数据分布中的(1-α)为正常区间,α为异常区间,当α=0.05,则(0%~2.5%)和(97.5%~100%)为异常区间。假设数据集中有1000个数据,将其从小到大排列,排行第25的则为2.5%分位数,排行第975的则为97.5%分位数。因此,若检测到某时刻的时序数据在该时刻对应的2.5%分位数至97.5%分位数范围之外,则可以判断出该时序数据异常。
与3Sigma模型类似,基于Quantile模型进行时序数据的异常检测,需要基于2.5%分位数和97.5%分位数构建Quantile模型。对于不同时间粒度的Quantile模型,则需要提取不同时间粒度的2.5%分位数和97.5%分位数等统计特征。
提取2.5%分位数和97.5%分位数等统计特征的方法可参考上述均值和标准差特征的提取方法,在此不再赘述。例如,若训练数据为历史上某6个月的某指标数据,则可以首先获取这6个月中每一天08:00时刻的指标数据,然后将这些数据从小到大排列,得到位于2.5%分位的数据点,作为以天为时间粒度的2.5%分位数特征图中曲线上08:00时刻所对应的数据点;得到位于97.5%分位的数据点,作为以天为时间粒度的97.5%分位数特征图中曲线上08:00时刻所对应的数据点。
提取不同时间粒度的2.5%分位数和97.5%分位数特征后,就可以基于不同时间粒度提取的2.5%分位数和97.5%分位数,构建不同时间粒度的Quantile模型。例如,图4为本发明提供的时间粒度为天的Quantile模型的示意图,如图4所示,图中包括上界和下界两条曲线,该上界和下界之间的区域即为Quantile模型的2.5%分位数至97.5%分位数范围所构成的区域,图中上界和下界之间的中间曲线为上界和下界的平均值曲线,即该中间曲线中的每一点均为该点对应时刻的上界和下界的数据平均值,该中间曲线也可以称为预测值曲线,即该中间曲线中的每一点代表了该Quantile模型对该点对应时刻的数据预测值。
(3)EWMA模型
EWMA模型,即指数加权移动平均模型,它通过计算局部的平均值来描述数值的变化趋势。
假设现有数据序列{x0,x1,x2,…,xn},则有:
v0=x0;
vt=β*vt-1+(1-β)*xt;
式中,vt是t时刻的局部平均值,而β是自由量,当β越大,曲线抖动越剧烈,β越小,则曲线越平稳。
基于局部平均值,可以计算局部标准差,即:
σt=(xt-vt)2;
θ0=0;
式中,σt是t时刻的局部方差,θt是t时刻的局部标准差。
获得局部平均值和局部标准差后,则可以采用与3Sigma模型类似的原理构建EWMA模型。与3Sigma模型不同之处仅在于,3Sigma模型中采用的是不同时间粒度对应的均值和标准差,而EWMA模型中采用的是局部平均值和局部标准差,局部平均值和局部标准差不区分多个时间粒度,因此仅构建一个EWMA模型。
可以理解,与3Sigma模型类似,EWMA模型同样包括上界和下界两条曲线,上界曲线和下界曲线之间的区域即为EWMA模型的(vt-3*θt,vt+3*θt)区域,上界和下界之间的中间曲线为上界和下界的平均值曲线,即该中间曲线中的每一点均为该点对应时刻的上界和下界的数据平均值,该中间曲线也可以称为预测值曲线,即该中间曲线中的每一点代表了该EWMA模型对该点对应时刻的数据预测值。
(4)IForest模型
IForest全称Isolation Forrest,即独立森林模型,常用做异常检测。与随机森林类似,都是由大量的决策树构成。
假设数据集中有n个数据,从中随机采样出m个数据来作为IForest中的一颗决策树的训练样本。该决策树在特征空间上对训练样本进行不断划分,每次取一个特征值,小于该特征值的样本划分到左子树,大于该特征值的样本划分到右子树,循环往复,直到训练数据集只有一个样本或者达到了树的限定高度。
由于异常数据量少,并且其特征与正常数据差异较大,因此构建子树时,异常数据离树的根节点更近,正常数据则更远。应用IForest做异常检测时,计算样本在每颗子树的深度,整合计算平均深度就可以确定输出的异常检测结果。
步骤101、基于每个异常检测模型分别输出的异常检测结果和每个异常检测模型的权重,确定时序数据的最终异常检测结果;
每个异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索后确定的。
具体地,通过集成的多个异常检测模型对待检测的时序数据进行检测后,可以基于每个异常检测模型输出的异常检测结果和每个异常检测模型的权重,来确定待检测的时序数据的最终异常检测结果,即时序数据的最终异常检测结果是综合多个异常检测模型的检测结果以及模型各自的权重来确定的,从而可以提升集成模型的准确率。
可选地,所述基于每个异常检测模型分别输出的异常检测结果和每个异常检测模型的权重,确定时序数据的最终异常检测结果,包括:
基于每个异常检测模型分别输出的异常检测结果,确定输出检测结果为异常的第一异常检测模型;
将各第一异常检测模型的权重之和与所有异常检测模型的权重之和的比值,确定为时序数据的异常概率;
若异常概率大于预设阈值,则确定时序数据异常;或者,
若异常概率小于或等于预设阈值,则确定时序数据正常。
具体地,综合多个异常检测模型的检测结果以及模型各自的权重来确定待检测的时序数据的最终异常检测结果,可以首先从各个模型的检测结果中,确定出检测结果为异常的第一异常检测模型,例如,在k个异常检测模型输出的检测结果中,有k1个异常检测模型的检测结果为异常,则可以通过以下公式计算出待检测的时序数据的异常概率d:
式中,表示异常检测模型Gi的权重。若异常概率d大于预设阈值(该预设阈值可根据实际需要设置,在此不做限制),则可以判定待检测的时序数据的最终异常检测结果为异常。反之,若异常概率d小于或等于预设阈值,则可以判定待检测的时序数据的最终异常检测结果为正常。
本发明采用基于集成的多个异常检测模型的Bagging投票策略,对时序数据进行异常检测,以提升模型整体的准确率。而采用Bagging策略需要明确每个异常检测模型的权重,以匹配不同的时序数据特征。
本实施例中,可以基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索,确定出能够准确匹配待检测的时序数据特征的,对应各异常检测模型的最优权重组合。
可选地,所述预设评价指标可以包括以下至少一项:
平均绝对误差MAE;均方误差MSE;均方根误差RMSE;平均绝对百分比误差MAPE;绝对百分比误差中位数MEAPE;异常比例P。
其中,各预设评价指标的计算公式如下:
式中,q为测试样本集中的数据点个数,也可以理解为时间戳的个数;yi为时间戳i的时序数据真实值,为时间戳i的时序数据预测值;X为测试样本集的各个数据点中,该集成模型最终预测为异常值的数据点的数量,Y为测试数据的总量;MEAPE则是绝对百分比误差(即/>)的中位数。这些预设评价指标默认越小越好。
需要说明的是,式中时序数据预测值可以通过各个异常检测模型在时间戳i对应时刻的数据预测值和权重来确定,由于IForest模型只用于异常检测,无法输出预测值,因此IForest模型不参与时序数据预测值的计算。举例来说,若集成模型采用了3Sigma模型、Quantile模型、EWMA模型和IForest模型,其中每种模型仅采用一个,各模型的权重分别为1、1、0和1,各模型在时间戳i对应时刻的数据预测值可以通过前文所述方法获得,在此不再赘述,则将各模型在时间戳i对应时刻的数据预测值分别乘以各自的权重,进行加权求和,加权求和的结果再除以权重为1的模型个数(即1+1=2,忽略IForest模型),即可得到时序数据预测值/>
可选地,所述基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索,包括:
针对每次网格搜索,基于多个异常检测模型和每次网格搜索对应的候选权重组合,获取测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值;
基于测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值,以及测试样本集中每个时间戳的时序数据真实值,得到预设评价指标的值;
基于每次网格搜索得到的预设评价指标的值,确定多个异常检测模型的最优权重组合。
具体地,交叉验证和网格搜索是模型自适应调整权重的关键。可以对每个异常检测模型设置候选权重,例如每个模型的默认权重选择为{0,1},对所有异常检测模型进行排列组合,得到多个候选权重组合。基于预设评价指标在测试样本集上的交叉验证结果,对这些候选权重组合进行网格搜索,每次网格搜索得到一组预设评价指标的值,最终选择在预设评价指标上表现最好的一个权重组合作为该集成模型的最优权重组合,即得到各异常检测模型的权重。
以选择上述6个评价指标为例进行具体举例说明,通过网格搜索得到多组评价指标的值后,可以首先去除掉异常比例P大于一定阈值(如5%)的权重组合,然后对剩余的候选权重组合分别按照每个评价指标的值进行相应的评分,最终根据每个候选权重组合的综合评分确定最优的权重组合。其中,若两个候选权重组合的综合评分相等,则优先选择异常比例P值更小的候选权重组合。
本发明提供的时序数据的异常检测方法,通过集成多个无监督异常检测模型对待检测时序数据进行检测,并根据各模型权重对检测结果进行综合判定,各模型的权重基于预设评价指标在测试样本集上的交叉验证结果通过网格搜索确定,从而能够在提升整体模型算法的准确率的同时,使得模型能够适配各种不同类型的时间序列数据的异常检测任务。
以下通过具体实施例对上述时序数据的异常检测方法进行举例说明。
图5为本发明提供的时序数据的异常检测方法的实施流程示意图,如图5所示,该实施流程包括如下步骤:
步骤500、获取数据。
具体地,采集的数据来源主要分两部分,第一部分是在主机、容器和中间件中部署Agent采集数据,包括CPU使用率、内存使用率、磁盘使用率等,网络设备采集的内容还包括吞吐量、会话数、丢包数等指标,数据库主机类似。第二部分则是从日志系统,类似于log4x中采集的日志数据,通过对日志数据的聚合得到集群、进程的业务量、错误数、耗时等指标。采集的数据实时传输到数据平台(可使用Mongodb,Elasticsearch等NoSQL平台),为后续分析挖掘提供数据支撑。
步骤501、读取数据。
具体地,读取数据的方式有两种。第一种从数据平台中读取离线数据和在线数据,离线数据是之前采集积累的,而在线数据则是实时的数据流。如果因为安全策略等因素不适合直接接入数据平台,则可以考虑第二种方式,从数据平台将数据导出为文件,读取文件获取数据用作分析挖掘。
步骤502、数据预处理。
具体地,数据预处理主要分两部分,有时候因为采集Agent的重启或者流程重复等因素,采集的数据存在时间戳重复和缺失的情况。一般处理重复时间戳可以考虑直接去除,或者是合并的方式,具体采用哪种跟指标类型有关。一般填补缺失时间戳指标值的方式可以使用统计值,比如均值和中位数来填充,具体统计的时间粒度根据需求而定。
步骤503、特征工程。
具体地,特征工程的内容包括:提取不同类型和不同时间粒度的统计特征。类型包括均值、标准差、分位数等。时间粒度上,一般默认7种,不分组的、日、周、月、工作日/周末、月初/月中/月末、节假日/非节假日。此外还可以根据业务指定一些特定的周期。
1)时间粒度:不分组,从全部的数据中提取全局均值、标准差、分位数等。
2)时间粒度:日,将每天中的同一时刻(如8:00)分为一组,并提取前后各5分钟的数据填充,则按分钟采样的数据集可以分为24×60=1440组,从每一组中提取均值、标准差、分位数等。
3)时间粒度:周,将每周一(周二、周三、周四、周五、周六和周日同理)的同一时刻(如8:00)分为一组,并提取前后各5分钟的数据填充,则按分钟采样的数据集可以分为7×24×60=10080组,从每一组中提取均值、标准差、分位数等。
4)其它的时间粒度的数据分组和提取统计特征的方式可依次类推。
步骤504、构建训练BDTS模型。
具体地,图6为本发明提供的BDTS模型的构建过程示意图,如图6所示,BDTS模型中,3Sigma模型默认有7个子模型,Quantile模型默认有7个子模型,加上IForest模型和EWMA模型,BDTS模型默认由16个子模型组成,各子模型的构建训练过程如前文所述,在此不再赘述。
步骤505、时序异常检测的交叉验证。
具体地,交叉验证是模型自适应调整权重的关键。首先设定6个评价指标,分别是平均绝对误差MAE、均方误差MSE、均方根误差RMSE、平均绝对百分比误差MAPE、绝对百分比误差中位数MEAPE和异常比例P,各评价指标的计算方式如前文所述,在此不再赘述。
在时间序列数据上,将数据划分为训练集和测试集。比如以前80%的数据用于训练,后20%的数据用于测试。在训练集中训练模型,在测试集中测试模型的检测性能。
每个子模型的默认权重选择为{0,1}。对子模型的权重组合进行网格搜索,共有16个子模型,每个模型有2个权重选择。设置网格搜索,基于测试集上的交叉验证结果,选择模型在6个评价指标上表现最好的权重组合作为BDTS的最终权重组合。
例如,单次交叉验证的测试结果如下:
测试结果:length of data:17712,length of alarmindex:1168,ratio ofalarm:0.06594399277326106。
测试集上的交叉验证结果:{'mse':11509086.199975856,'rmse':3392.504414142428,'mae':2781.7581495514783,'mape':4.431627250964234,'meape':0.8136832204716027,'p':0.064056007226739}。
需要注意的是,如果模型在测试集上的最佳测试结果中,异常比例P>5%,则需要做三点检查:1)训练数据的量是否足够,最好需要至少最近1个月的数据作为训练数据;2)模型是否学习到了数据的统计分布;3)测试数据的分布和训练数据是否一致。
步骤506、检测结果可视化。
具体地,测试集上对模型的性能进行评估之后,在全部的数据(即包括所有训练集和测试集)上对BDTS模型进行重新训练,并将模型部署为在线服务,持续从数据平台中接收实时采集的数据流,在实时数据流上进行异常检测,并展现异常检测结果。展示内容包括时序图、检测到的异常点及其异常概率以及整体异常比例等,当异常比例高于5%时进行告警。
相比现有的异常检测技术,本实施例提供的时序数据的异常检测方法具有以下优点:
1、本实施例主要采用Bagging的思想,在时间上提取不同粒度的统计特征,集成多类型、多时间粒度层次的算法,用不同偏好的无监督模型对未知数据进行投票,基于投票结果计算异常概率,当异常概率高于指定阈值时则视为异常。
2、本实施例中采用自行设计的6个评价指标,用于监控模型在数据上的拟合性能,并在交叉验证中自动调整每个子模型的权重,提升算法的准确率的同时,使得模型自动适配不同类型的时间序列数据的异常检测任务。
下面对本发明提供的时序数据的异常检测装置进行描述,下文描述的时序数据的异常检测装置与上文描述的时序数据的异常检测方法可相互对应参照。
图7为本发明提供的时序数据的异常检测装置的结构示意图,如图7所示,该装置包括:
检测模块700,用于将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个异常检测模型分别输出的异常检测结果;
确定模块710,用于基于每个异常检测模型分别输出的异常检测结果和每个异常检测模型的权重,确定时序数据的最终异常检测结果;
其中,每个异常检测模型均是基于与时序数据类型相同的样本时序数据训练得到的;
每个异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索后确定的。
可选地,所述预设评价指标包括以下至少一项:平均绝对误差MAE;均方误差MSE;均方根误差RMSE;平均绝对百分比误差MAPE;绝对百分比误差中位数MEAPE;异常比例。
可选地,所述确定模块710,还用于:针对每次网格搜索,基于多个异常检测模型和每次网格搜索对应的候选权重组合,获取测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值;基于测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值,以及测试样本集中每个时间戳的时序数据真实值,得到预设评价指标的值;基于每次网格搜索得到的预设评价指标的值,确定多个异常检测模型的最优权重组合。
可选地,所述确定模块710,用于:基于每个异常检测模型分别输出的异常检测结果,确定输出检测结果为异常的第一异常检测模型;将各第一异常检测模型的权重之和与所有异常检测模型的权重之和的比值,确定为时序数据的异常概率;若异常概率大于预设阈值,则确定时序数据异常;或者,若异常概率小于或等于预设阈值,则确定时序数据正常。
可选地,所述异常检测模型包括3Sigma模型、Quantile模型、EWMA模型和IForest模型中的至少一种。
可选地:所述3Sigma模型包括多个不同时间粒度的子模型;和/或,所述Quantile模型包括多个不同时间粒度的子模型。
可选地,所述时间粒度包括不分组、日、周、月、工作日/周末、月初/月中/月末和节假日/非节假日。
在此需要说明的是,本发明实施例提供的时序数据的异常检测装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
图8为本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communication Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的计算机程序,以执行上述各实施例提供的任一所述时序数据的异常检测方法的步骤,例如包括:将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个异常检测模型分别输出的异常检测结果;基于每个异常检测模型分别输出的异常检测结果和每个异常检测模型的权重,确定时序数据的最终异常检测结果;其中,每个异常检测模型均是基于与时序数据类型相同的样本时序数据训练得到的;每个异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索后确定的。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各实施例提供的任一所述时序数据的异常检测方法的步骤,例如包括:将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个异常检测模型分别输出的异常检测结果;基于每个异常检测模型分别输出的异常检测结果和每个异常检测模型的权重,确定时序数据的最终异常检测结果;其中,每个异常检测模型均是基于与时序数据类型相同的样本时序数据训练得到的;每个异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索后确定的。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例提供的任一所述时序数据的异常检测方法的步骤,例如包括:将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个异常检测模型分别输出的异常检测结果;基于每个异常检测模型分别输出的异常检测结果和每个异常检测模型的权重,确定时序数据的最终异常检测结果;其中,每个异常检测模型均是基于与时序数据类型相同的样本时序数据训练得到的;每个异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对多个异常检测模型的候选权重组合进行网格搜索后确定的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种时序数据的异常检测方法,其特征在于,包括:
将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个所述异常检测模型分别输出的异常检测结果;
基于每个所述异常检测模型分别输出的异常检测结果和每个所述异常检测模型的权重,确定所述时序数据的最终异常检测结果;
其中,每个所述异常检测模型均是基于与所述时序数据类型相同的样本时序数据训练得到的;
每个所述异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对所述多个异常检测模型的候选权重组合进行网格搜索后确定的。
2.根据权利要求1所述的时序数据的异常检测方法,其特征在于,所述预设评价指标包括以下至少一项:
平均绝对误差MAE;均方误差MSE;均方根误差RMSE;平均绝对百分比误差MAPE;绝对百分比误差中位数MEAPE;异常比例。
3.根据权利要求2所述的时序数据的异常检测方法,其特征在于,所述基于预设评价指标在测试样本集上的交叉验证结果,对所述多个异常检测模型的候选权重组合进行网格搜索,包括:
针对每次网格搜索,基于所述多个异常检测模型和所述每次网格搜索对应的候选权重组合,获取测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值;
基于所述测试样本集的最终异常检测结果和测试样本集中每个时间戳的时序数据预测值,以及测试样本集中每个时间戳的时序数据真实值,得到所述预设评价指标的值;
基于每次网格搜索得到的所述预设评价指标的值,确定所述多个异常检测模型的最优权重组合。
4.根据权利要求1所述的时序数据的异常检测方法,其特征在于,所述基于每个所述异常检测模型分别输出的异常检测结果和每个所述异常检测模型的权重,确定所述时序数据的最终异常检测结果,包括:
基于每个所述异常检测模型分别输出的异常检测结果,确定输出检测结果为异常的第一异常检测模型;
将各所述第一异常检测模型的权重之和与所有异常检测模型的权重之和的比值,确定为所述时序数据的异常概率;
若所述异常概率大于预设阈值,则确定所述时序数据异常;或者,
若所述异常概率小于或等于预设阈值,则确定所述时序数据正常。
5.根据权利要求1至4任一项所述的时序数据的异常检测方法,其特征在于,所述异常检测模型包括3Sigma模型、Quantile模型、EWMA模型和IForest模型中的至少一种。
6.根据权利要求5所述的时序数据的异常检测方法,其特征在于:
所述3Sigma模型包括多个不同时间粒度的子模型;和/或,
所述Quantile模型包括多个不同时间粒度的子模型。
7.根据权利要求6所述的时序数据的异常检测方法,其特征在于,所述时间粒度包括不分组、日、周、月、工作日/周末、月初/月中/月末和节假日/非节假日。
8.一种时序数据的异常检测装置,其特征在于,包括:
检测模块,用于将目标待检测时刻的时序数据分别输入多个异常检测模型,获得每个所述异常检测模型分别输出的异常检测结果;
确定模块,用于基于每个所述异常检测模型分别输出的异常检测结果和每个所述异常检测模型的权重,确定所述时序数据的最终异常检测结果;
其中,每个所述异常检测模型均是基于与所述时序数据类型相同的样本时序数据训练得到的;
每个所述异常检测模型的权重是基于预设评价指标在测试样本集上的交叉验证结果,对所述多个异常检测模型的候选权重组合进行网格搜索后确定的。
9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述时序数据的异常检测方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述时序数据的异常检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111117353.6A CN115858606A (zh) | 2021-09-23 | 2021-09-23 | 时序数据的异常检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111117353.6A CN115858606A (zh) | 2021-09-23 | 2021-09-23 | 时序数据的异常检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115858606A true CN115858606A (zh) | 2023-03-28 |
Family
ID=85652396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111117353.6A Pending CN115858606A (zh) | 2021-09-23 | 2021-09-23 | 时序数据的异常检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858606A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056171A (zh) * | 2023-09-22 | 2023-11-14 | 北京博点智合科技有限公司 | 一种基于AI算法的Kafka异常监控方法及装置 |
-
2021
- 2021-09-23 CN CN202111117353.6A patent/CN115858606A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056171A (zh) * | 2023-09-22 | 2023-11-14 | 北京博点智合科技有限公司 | 一种基于AI算法的Kafka异常监控方法及装置 |
CN117056171B (zh) * | 2023-09-22 | 2024-01-09 | 北京博点智合科技有限公司 | 一种基于AI算法的Kafka异常监控方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475804B (zh) | 一种告警预测方法及系统 | |
CN106991145B (zh) | 一种监测数据的方法及装置 | |
CN113556258B (zh) | 一种异常检测方法及装置 | |
CN112800116B (zh) | 一种业务数据的异常检测方法及装置 | |
CN105677791B (zh) | 用于分析风力发电机组的运行数据的方法和系统 | |
CN113887616B (zh) | 一种epg连接数的实时异常检测方法 | |
CN111984503A (zh) | 一种监控指标数据异常数据识别的方法及装置 | |
CN111309539A (zh) | 一种异常监测方法、装置和电子设备 | |
CN112989332B (zh) | 一种异常用户行为检测方法和装置 | |
CN115454778A (zh) | 大规模云网络环境下的时序指标异常智能监控系统 | |
CN111310139A (zh) | 行为数据识别方法、装置及存储介质 | |
CN114201374A (zh) | 基于混合机器学习的运维时序数据异常检测方法及系统 | |
CN113918367A (zh) | 一种基于注意力机制的大规模系统日志异常检测方法 | |
CN116823496A (zh) | 基于人工智能的智能保险风险评估和定价系统 | |
CN111949496B (zh) | 一种数据检测方法及装置 | |
CN115858606A (zh) | 时序数据的异常检测方法、装置、设备及存储介质 | |
CN113891342B (zh) | 基站巡检方法、装置、电子设备及存储介质 | |
Khoshgoftaar et al. | Assessment of a new three-group software quality classification technique: An empirical case study | |
CN116485020B (zh) | 一种基于大数据的供应链风险识别预警方法、系统及介质 | |
CN116545867A (zh) | 一种监控通信网络网元性能指标异常的方法及装置 | |
CN114566964B (zh) | 一种配电网馈线自动化控制方法、装置、设备及存储介质 | |
CN116126807A (zh) | 一种日志分析方法及相关装置 | |
CN109978038B (zh) | 一种集群异常判定方法及装置 | |
CN113837481A (zh) | 一种基于区块链的金融大数据管理系统 | |
CN113807716A (zh) | 一种基于人工智能的网络运维自动化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |