首页> 中国专利> 一种基于回归预测的KPI指标多元异常监测方法

一种基于回归预测的KPI指标多元异常监测方法

摘要

本发明公开了一种基于回归预测方法监测KPI指标中的单点数据异常、连续数据异常、相关性异常等多元数据异常的方法。方法主要包括以下步骤:对数据集进行预处理,分析数据集的周期性,趋势,相关性等统计属性;对数据集通过统计建模或机器学习算法计算预测值;计算实际值与预测值的异常分数,并利用3‑sigma准则进行异常值的监测;针对单点异常,直接通过准则监测;针对连续异常,为降低连续异常对预测的影响,采取一个周期内的预测平均值进行异常分数计算。使用标准度量方法AUC和PRAUC来评估算法精度。在本方法中可以采用多种机器学习回归算法进行预测值计算,针对多元异常提出针对性解决方案,使算法更具灵活性,对数据的异常类型监测也更全面。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-08

    授权

    发明专利权授予

说明书

技术领域

本发明属于智能运维领域,特别涉及一种基于回归预测的KPI指标多元异常监测方法。

背景技术

KPI(Key Performance Indicator)是通过定时采样获取的时间序列数据,具有实际的应用意义。互联网企业中的KPI数据主要包括反映服务系统监控状况及服务质量的服务KPI(调用成功率、调用时间等)和反映实际物理机器运行状况的机器KPI(如磁盘IO,内存、CPU等)。金融行业的KPI主要包括交易量,交易成功率,网页访问量等。实时监控KPI数据,及时准确地发现KPI异常,确保系统稳定运行,对企业有着非常重要的意义。

现在业界常用的异常监测的方法包括:同环比模型、阈值模型、趋势模型、无监督模型、有监督模型、多项式拟合XGBoost、无监督Isolation Forest、有监督Random Forest等等。但在针对不同的业务场景、不同异常类型时,实际异常监测效果各有不同。

由于KPI时序数据可视化成本低、规律明显,所以经常被应用于运维领域,监控系统的运行状态。由于系统日渐复杂,运维数据也逐渐庞大,单纯的人力监测已经不能满足日益增长的智能运维需求。

发明内容

发明目的:为了克服现有技术中的不足,本发明提供了一种基于回归预测的KPI指标多元异常监测方法。该监测方法通过算法来进行自动的KPI异常监测;对不同的业务场景可以构建不同的监测模型,对多种异常监测更具针对性和智能化,克服了对不同异常类型的局限性,提升了异常检测的准确性和鲁棒性,且人力成本低、维护成本低、效果更稳定。

技术方案:一种基于回归预测的KPI指标多元异常监测方法,包括如下方法:

对收集的KPI指标时间序列数据集进行数据预处理;

对通过数据预处理的KPI指标时间序列数集进行特征工程,从KPI指标时间序列数集中提取相关特征中;所述相关特征包括:时间序列的时间特征、时间序列的统计特征、时间序列的拟合特征、以及时间序列的时域特征;全面地提取相关特征以用于后续不同预测算法的使用,并可选择是否采用乘法或加法方式删除趋势成分。

将提取的特征数据集输入所有预测算法类进行运算,所有预测算法类可采用简单统计建模类:WMA、EWMA、ARIMA、Holt-Winters;线性回归类:简单线性回归、Huber回归、Ridge回归;基于树的回归类:回归树、Random Forest、XGBoost进行预测,得到多个对应各个KPI指标时间序列的异常预测值;

对所有预测算法输出的多个异常预测值和实际的KPI时序数据,计算异常度得分,并使用3-sigma准则对异常度得分进行异常监测和进行异常类型判断,且对于不同的异常类型,采用的预测算法类的组合不同;

分别对多个异常度得分进行精度评估,筛选出最高得分,通过计算Precision、Recall、F1-Score,AUC和PRAUC评估算法的精度,进而选取出最优异常监测方法组合;根据所选取的最优异常监测方法组合进行KPI指标多元异常监测。

在进一步的实施例中,在对收集的KPI指标时间序列数据集进行数据预处理时,分析数据集中各个KPI指标的周期性、趋势成分、以及KPI指标之间的相关性,并模拟所有异常类型进行人工标注和注入数据集中未标注的多元异常数据。

所述KPI指标时间序列的时间特征包括:年、季度、月、日、星期、时、分、上午、下午、晚上、周末、月末等等;所述时间序列的统计特征:实际值、最大值、最小值、值域、均值、中位数、方差、峰度、同比、环比;时间序列的拟合特征:MA、WMA、EWMA、Holt-Winter、AR、ARIMA;时间序列的时域特征:自相关系数、偏自相关系数、差分、趋势、周期、噪声。

在进一步的实施例中,分析数据集的方法如下:

采用STL分解法对KPI指标时间序列中的周期性和趋势成分进行分析,获取数据集中蕴含的周期特征和趋势成分;对于特征工程中的特征提取和预测算法的参数设置有重要意义。

通过计算不同KPI指标之间的Pearson系数,判断不同KPI指标之间存在的相关性;

如果计算出来的KPI指标之间的Pearson系数在0.8-1.0范围内,则判断当前输入计算的两个KPI指标高度相关。

在进一步的实施例中,对数据集进行人工异常注入及标注过程中,先人工注入,再标注;人工注入和标注出数据集中未标注的异常数据方式包括:随机点标注、随机连续段标注、以及规则标注,并根据原始KPI指标时间序列数据集的异常类型选择人工注入和标注的方式;通过对数据集进行人工异常注入及标注,让数据集中包含单点异常、短暂异常和持续异常,并限制异常数据不超过总数据的2%。

在进一步的实施例中,随机点标注为随机选择时间序列数据集中的KPI指标值进行异常注入;

随机段标注为随机选择时间序列数据集中的至少3段连续的KPI指标值进行异常注入;若为下降类异常则将KPI指标值使用均匀分布按照百分比随机降低,降低比例占该指标实际值的30%-100%和/或50%-100%;若为上升类异常则将KPI指标值按照均匀分布随机上升,该异常注入的百分比与下降类异常一致;对于相关性变化异常则将两个KPI指标其中的一个指标按照均匀分布随机增加或递减,该异常注入的百分比与下降类异常一致;

规则标注则为若原始KPI指标值低于过去2个周期中同一时间的任一KPI指标值20%则为下降类异常,若原始KPI指标值高于过去2个周期中同一时间的任一KPI指标值的180%则为上升类异常,对于相关性类异常,计算高度相关的KPI指标对的2个KPI指标值的变化比率,并进行排序,将前1%和后1%的KPI指标对视为异常。

在进一步的实施例中,从KPI指标数据中提取相关特征方法如下:

通过提取不同的特征,用以针对不同的预测算法,以及不同的异常类型;

在提取特征数据集后选择性地删除数据集中的KPI指标趋势成分。

在进一步的实施例中,在预测时间序列时,首先要判断数据是否具有趋势性或者季节性,除去上述趋势性和季节性的特征,使其达到平稳状态,由于趋势成分会影响异常监测的准确性,平稳的序列中随机变量会大量地减少,有助于进行预测;平稳化序列是时间序列中重要的一步;但删除趋势的效果在实验过程中有好有坏,所以在进行预测之前可选择是否进行趋势删除;删除数据集中的KPI指标趋势成分包括两种方式:加法删除和乘法删除;所述加法删除为实际数据减去趋势,乘法删除即实际数据除以趋势。

在进一步的实施例中,预测算法包括:简单统计建模预测类、线性回归预测类、以及基于回归树类的预测。

简单统计建模预测,使用了WMA、EWMA、ARIMA、Holt-Winters,4个统计建模算法进行预测,对于简单统计建模输入的特征主要是时间特征、统计特征和时域特征。

通过线性回归预测,使用了简单线性回归,Ridge回归,Huber回归,3个线性回归算法进行预测,并输出预测KPI指标时间序列数据;对于线性回归输入时间特征和统计特征。

基于树的回归进行预测,回归树,Random Forest,XGBoost,3个基于树回归的算法进行预测,并输出预测KPI指标时间序列数据。对于基于树的回归输入时间特征,统计特征、拟合特征和时域特征。

在进一步的实施例中,所述异常类型包括:突降异常、突增异常、短时下降异常、短时上升异常、持续下降异常、持续上升异常、以及相关性变化异常。

在进一步的实施例中,所述异常度得分=(实际值-预测值)/预测值;异常度得分越接近0说明数据异常度越低,反之则异常度越高。

在进一步的实施例中,对于突降异常和短时下降异常则当异常度得分u+3*σ则标记为异常;对于持续下降异常,因为是长时间连续的异常,所以异常度得分公式只用于监测到的第一个异常,当连续监测到10个异常时,后面的时间序列数据的异常度得分=(实际值-最近一周期平均预测值)/最近一周期平均预测值,则当异常度得分

在进一步的实施例中,根据异常监测结果计算Precision和Recall、F1-Score,其中:

计算公式如下:

其中,TP表示真正例;FP表示假正例;FN表示假反例;TN表示真反例;根据Precision和Recall的值计算度量AUC和PRAUC,该度量值在0到1之间,度量值越高则异常监测精度越高。

有益效果:本发明与现有技术相比具有以下优点:

(1)本发明通过收集KPI时间序列数据集、预测算法和异常判断步骤后具有良好的灵活性与扩展性,可以在本发明基础上提取不同的特征信息,更换各种预测算法,监测不同的异常,使用不同的训练集训练模型,可进一步提升异常监测的准确率。

(2)在进行数据预处理时,对数据进行了全面的考虑,包括周期性、趋势成分、相关性等,在进行人工注入异常过程中采取的方法灵活新颖,标注数据具有随机性。

(3)在进行特征工程时,对数据集提取多样的特征,不同的特征有不同的预测效果,可通过实验选取异常监测效果更好的特征信息,使得的异常监测方法更具鲁棒性。

(4)在进行算法预测时,预测算法多样,搭配不同的异常注入方法、不同的特征,预测结果更精准。

(5)在进行异常监测时,能够监测7类异常,包括突降异常、突增异常、短时下降异常、短时上升异常、持续下降异常、持续上升异常、相关性变化异常,能够满足各种异常监测情况,体现本发明健壮实用。

(6)在进行精度评估时,采取Precision、Recall、F1-Score、AUC、PRAUC,5种度量来进行精度评估,以挑选出精度最好的最优搭配。

附图说明

图1为本发明提供的异常监测基础框架图。

图2为本发明提供的算法预测流程示意图。

图3为本发明提供的异常类型示意图。

图4为本发明提供的异常监测流程示意图。

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

实施例一

结合图1说明本发明提供的一种基于回归预测的异常监测方法:

S10:根据收集的KPI指标时间序列数据集进行数据预处理;在收集KPI指标时间序列数据集时,需分析数据集中各个KPI指标的周期性、趋势成分、以及KPI指标之间的相关性,并人工标注和注入数据集中的异常数据,所述人工标注的异常数据占总数据集的2%;对数据集进行人工异常注入及标注过程中,需先人工注入,再标注;

采用STL分解法对KPI指标时间序列中的周期性和趋势成分进行分析,获取数据集中蕴含的周期特征和趋势成分;对于特征工程中的特征提取和预测算法的参数设置有重要意义。

通过计算不同KPI指标之间的Pearson系数,判断不同KPI指标之间存在的相关性;

如果计算出来的KPI指标之间的Pearson系数在0.8-1.0范围内,则判断当前输入计算的两个KPI指标高度相关。

S20:根据数据预处理得出的结果进行特征工程,从KPI指标时间序列数集中提取相关特征;其中,所述相关特征包括:时间特征、统计特征、拟合特征以及时域特征;所述KPI指标时间序列的时间特征包括:年、季度、月、日、星期、时、分、上午、下午、晚上、周末、月末等等;所述时间序列的统计特征:实际值、最大值、最小值、值域、均值、中位数、方差、峰度、同比、环比;时间序列的拟合特征:MA、WMA、EWMA、Holt-Winter、AR、ARIMA;时间序列的时域特征:自相关系数、偏自相关系数、差分、趋势、周期、噪声。

全面地提取相关特征以用于后续不同预测算法的使用,并可选择是否采用乘法或加法方式删除趋势成分。

S30:提取的特征数据集输入预测算法,可采用简单统计建模:WMA、EWMA、ARIMA、Holt-Winters;线性回归:简单线性回归、Huber回归、Ridge回归;基于树的回归:回归树、Random Forest、XGBoost进行预测,得到对应各个KPI指标时间序列的预测值;

S40:对预测算法输出的异常预测值和实际的KPI时序数据,计算异常度得分,并根据3-sigma准则进行异常判断,且对于不同的异常,计算异常度得分的方式不同;其中,所述异常类型包括:突降异常、突增异常、短时下降异常、短时上升异常、持续下降异常、持续上升异常、以及相关性变化异常。

S50:对异常判断的结果进行精度评估,通过计算Precision、Recall、F1-Score,AUC和PRAUC评估算法的精度,从而选取出最优异常监测方法组合,并根据所选取的最优异常监测方法组合进行KPI指标多元异常监测。

结合图2进一步地说明如何根据数据预处理得出的结果进行特征工程以及预测算法的选择:

特征工程的实施例:

S201:通过提取不同的时间特征,用以针对不同的预测算法,以及不同的异常类型;其中通过提取时间特征:年、季度、月、日、星期、时、分、上午、下午、晚上、周末、月末等等;统计特征:实际值、最大值、最小值、值域、均值、中位数、方差、峰度、同比、环比;拟合特征:MA、WMA、EWMA、Holt-Winter、AR、ARIMA;时域特征:自相关系数、偏自相关系数、差分、趋势、周期、噪声;例如在实验中针对Random Forest算法,选取了以日和时作为特征输入;对于ARIMA模型,选取了自相关系数、偏自相关系数、MA、AR和一阶差分等作为特征输入。

S202:选择性删除数据集中的KPI指标趋势成分;KPI指标趋势成分可对不同异常类型的异常监测结果影响程度不同。

删除数据集中的KPI指标趋势成分包括两种方式:加法删除和乘法删除;所述加法删除为实际数据减去趋势,乘法删除即实际数据除以趋势。在时间序列预测的过程中,首先要判断数据是否具有趋势性或者季节性,除去上述趋势性和季节性的特征,使其达到平稳状态,由于趋势成分会影响异常监测的准确性,平稳的序列中随机变量会大量地减少,有助于进行预测。平稳化序列是时间序列中重要的一步。但删除趋势的效果在实验过程中有好有坏,所以在进行预测之前可选择是否进行趋势删除。

预测算法的选择实施例:

所述S30中提到预测算法包括:简单统计建模预测类、线性回归预测类、以及基于回归树类的预测。

简单统计建模预测,使用了WMA、EWMA、ARIMA、Holt-Winters,4个统计建模算法进行预测,对于简单统计建模输入的特征主要是时间特征、统计特征和时域特征。

通过线性回归预测,使用了简单线性回归,Ridge回归,Huber回归,3个线性回归算法进行预测,并输出预测KPI指标时间序列数据;对于线性回归输入时间特征和统计特征。

基于树的回归进行预测,回归树,Random Forest,XGBoost,3个基于树回归的算法进行预测,并输出预测KPI指标时间序列数据。对于基于树的回归输入时间特征,统计特征、拟合特征和时域特征。

简单统计建模预测类、线性回归预测类、以及基于回归树类的预测,根据业务场景和监测模型的异常类型的不同来选择组合使用:

本发明实施例中是删除趋势后的基于树的回归的预测效果最好,AUC和PRAUC多次实验平均都达到0.9以上。

结合图3和图4对S40中的异常监测和异常判断进行进一步的说明:

S401:对实际数据和预测数据计算异常度得分;对实际数据和预测数据计算异常度得分过程中,所述异常度得分=(实际值-预测值)/预测值;异常度得分越接近0说明数据异常度越低,反之则异常度越高。

S402:使用3-sigma准则对异常度得分进行异常监测时,针对不同类型的异常采用不同的监测方法;图3中曲线图直观地对比出突降异常、突增异常、短时下降异常、短时上升异常、持续下降异常、持续上升异常、以及相关性变化异常之间的差异;

因此,对于突降异常和短时下降异常则当异常度得分u+3*σ则标记为异常。对于持续下降异常,因为是长时间连续的异常,所以的异常度得分公式只用于监测到的第一个异常,当连续监测到10个异常时,后面的时间序列数据的异常度得分=(实际值-最近一周期平均预测值)/最近一周期平均预测值,则当异常度得分

此外,人工注入和标注出数据集的异常数据方式包括:随机点标注、随机连续段标注、以及规则标注;并根据原始时间序列数据集中的KPI指标值在上周期内的异常类型选择人工注入和标注出数据集的多元异常数据方式;

随机点标注为随机选择时间序列数据集中的KPI指标值进行异常注入;

随机段标注为随机选择时间序列数据集中的至少3段连续的KPI指标值进行异常注入;若为下降类异常则将KPI指标值使用均匀分布按照百分比随机降低,降低比例占该指标实际值的30%-100%和/或50%-100%;若为上升类异常则将KPI指标值按照均匀分布随机上升,该异常注入的百分比与下降类异常一致;对于相关性变化异常则将两个KPI指标其中的一个指标按照均匀分布随机增加或递减,该异常注入的百分比与下降类异常一致;

规则标注则为若原始KPI指标值低于过去2个周期中同一时间的任一KPI指标值20%则为下降类异常,若原始KPI指标值高于过去2个周期中同一时间的任一KPI指标值的180%则为上升类异常,对于相关性类异常,计算高度相关的KPI指标对的2个KPI指标值的变化比率,并进行排序,将前1%和后1%的KPI指标对视为异常,并且保证异常的数据占总数据的2%。

根据异常监测结果计算Precision和Recall、F1-Score,其中:

计算公式如下:

其中,TP表示真正例;FP表示假正例;FN表示假反例;TN表示真反例;根据Precision和Recall的值计算度量AUC和PRAUC,该度量值在0到1之间,度量值越高则异常监测精度越高。

这里所讨论的不同功能可以以不同顺序执行和/或彼此同时执行。此外,如果期望的话,以上所描述的一个或多个功能可以是可选的或者可以进行组合。

实施例二:

再次假设给定训练集是一个KPI指标的时间序列,包括时间戳和KPI指标值。

S1:通过进行数据预处理,通过STL分解法分析得到该数据集具有以一周为单位的周期性,且具有昼夜变化,并含有上升趋势。然后对该数据进行下降类异常的人工注入,分别为单点异常、连续性异常和规则异常注入,注入异常的降低比例为30%-100%。

S2:根据S1得到的预处理过的数据进行特征工程。由于周期为一周,且有显著昼夜变化,提取时间特征为周,日,时,并提取统计特征、拟合特征和时域特征,同时采用乘法方式删除趋势项。

S3:根据S2得到的特征,进行算法预测。选择Random Forest作为预测算法,按照是否删除趋势分别进行两次实验,输出预测后的预测值。

S4:根据S3得到的预测值,进行异常监测。根据S401进行异常得分的计算,然后通过3-sigma准则,分别进行突降异常监测、短时下降异常监测和持续下降异常监测,异常值被标记为True。

S5:通过计算Precision,Recall和F1-Score,可以推出PRAUC和AUC的值。通过以上实例步骤得到的结果为:

可以看出在本次实验中,删除趋势让时序数据平稳,能够使异常监测的准确率,有小幅提升。

本发明中所讨论的各步骤并不限于各实施例中的执行顺序,不同步骤可以以不同顺序执行和/或彼此同时执行。此外,在其他实施例中,以上所描述的一个或多个步骤可以是可选的或者可以进行组合。

本发明在进行数据预处理时,对数据进行了全面的考虑,包括周期性、趋势成分、相关性等,在进行人工注入异常过程中采取的方法灵活新颖,标注数据具有随机性。

本发明在进行特征工程时,对数据集提取多样的特征,不同的特征有不同的预测效果,可通过实验选取异常监测效果更好的特征信息,使得的异常监测方法更具鲁棒性。

本发明在进行算法预测时,预测算法多样,搭配不同的异常注入方法、不同的特征,预测结果更精准。

本发明在进行异常监测时,能够监测七类异常,包括突降异常、突增异常、短时下降异常、短时上升异常、持续下降异常、持续上升异常、相关性变化异常,能够满足各种异常监测情况,体现本发明灵活度高,适用范围广泛。

本发明在进行精度评估时,采取Precision、Recall、F1-Score、AUC、PRAUC,5种度量来进行精度评估,以挑选出精度最好的最优搭配。

因此,本发明通过收集KPI时间序列数据集、预测算法和异常判断步骤后具有良好的灵活性与扩展性,可以在本发明基础上提取不同的特征信息,更换各种预测算法,监测不同的异常,使用不同的训练集训练模型,可进一步提升异常监测的准确率。

以上以附图说明的方式对本发明作了描述,本领域的技术人员应当理解,本公开不限于以上描述的实施例,在不偏离本发明的范围的情况下,可以做出各种变化、改变和替换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号