一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种EPG连接数的实时异常检测系统及方法与流程

2022-02-19 01:18:58 来源:中国专利 TAG:

一种epg连接数的实时异常检测系统及方法
技术领域
1.本发明涉及iptv数据检测技术领域,具体涉及一种epg连接数的实时异常检测系统及方法。


背景技术:

2.iptv业务持续高速发展,业务迭代快,系统和服务较复杂。如何快速的识别系统各项指标的异常,发现问题的根因,并快速解决显得尤为重要。并且随着用户的增多,iptv系统的承载性能要求也越来越高。如何精确的预测出用户连接数的未来趋势,将会给运维人员提供指导性的建议。目前在常规业务指标的监控中,需要手动维护成千上万的告警阈值,不仅成本高,效果也欠佳。
3.异常检测的对象是时序数据,时序数据也是运维主要的监控指标,无论是cpu、内存和网络流量等基础资源指标,还是订单数目、在线用户数等业务指标,均是通过时序数据的来判断当前设备或业务是否运行正常。然而从海量的时序数据监控指标中发现,指标的种类繁多、关系复杂。在指标自身特征上,有的具有周期性、或趋势性,有的随机波动,还有规律性突增突降,整体性的抬升或下降等特征。多数指标受业务影响较大,有随业务增长或下降的趋势,尤其是iptv业务,因此会受到工作日、休息日、节假日、临时活动(开学第一课等)、天气、疫情等多种因素的影响,如图1所示多种时序指标图,时序指标多样、复杂。原有基于zabbix的监控系统采用固定阈值的告警策略,全场景覆盖的难度已经很大,还需要跟随复杂场景进行策略和阈值的变更,人力成本将成倍的增长。
4.而目前的异常检测算法常分为基于统计的算法和深度学习的算法,其中:
5.(1)基于统计的算法,在识别点异常和模式异常,又有所不同。具体为:针对点异常常用的算法有3

sigma、t

检验、箱型图(turkey’s test)等统计分布离群点;针对模式异常,多是基于相似度量的算法,例如基于距离的knn、余弦相似度、皮尔逊相似度,基于密度的lof和kde核密度估计,基于树的孤立森林,基于聚类的k

means等等。上述基于统计的算法,是速度快、可解释性强,但模型的通用性、泛化能力不高。
6.(2)基于深度学习的时间序列异常检测算法,总结归纳有以下二种:
7.一是步步求解的回归:基于时间序列预测的时间序列异常检测,通过测量预测值和原始数据之间的差距来识别异常值。常用的算法有rnn、lstm、seq2seq、deepar、neuralprophet等。此种方案思路简单,可解释强,但是遇到节假日等场景预测不准确,容易导致误报。
8.二是端到端的分类:基于常规的异常分类的时间序列异常检测,通过对时间序列采用滑动窗口之类的方式进行特征抽取,构建特征工程,根据有无标签,可以分别选用有监督或无监督的分类算法进行分类器的训练,原始数据提取特征后使用分类器进行分类预测,判定是否为异常。此种方案为典型的机器学习分类项目,易于实施,常用的分类器有xgboost、dnn、cnn等。但是此类方案依赖一个好的时序数据特征工程,是否能够充分表征时序特征,决定了模型的上线。
9.因此亟需一种智能化的方案,能够学习到业务指标的历史趋势和事故期特征,无需人工设置阈值,自动的进行异常检测。


技术实现要素:

10.为克服所述不足,本发明的目的在于提供一种epg连接数的实时异常检测方法。
11.本发明解决其技术问题所采用的技术方案是:一种epg连接数的实时异常检测系统,包括:
12.底层数据层,用于存储zabbix收集的原始监控指标,包括mysql数据库、时序数据库influxdb;
13.中间逻辑层,包括数据接入模块、实时检测模块、离线训练模块、算法库,其作用是数据接入、实时检测、离线训练;
14.顶层展示层,用于为异常检测告警发送、检测结果和历史曲线的展示、异常检测结果的用户反馈、检测日志查询。
15.一种epg连接数的实时异常检测方法,包括:
16.s1,数据接入,zabbix收集的原始监控指标存储在mysql数据库中,采用中间件将mysql数据库中存储的时序指标转换为实时时序数据转存到时序数据库中,供实时异常检测使用;
17.s2,实时检测,采用基于cnn的指标分类器进行指标分类,将实时时序数据分类成周期指标、趋势型指标、随机行指标,对不同类别的指标采用不同的异常检测算法进行异常检测,将检测结果采用融合方式综合判定是否为异常点;
18.s3,离线训练,异常分类模型,将真实异常标签注入到历史数据中,丰富样本数量,采用模拟异常注入的算法,经过数据预处理、特征提取后进行模型训练、参数调优和模型评估,得到异常分类模型;
19.s4,算法库,将统计类(3

sigma、turkey’s test等)、分类类(xgboost、dnn、cnn)和回归类(arima、prophet、neuralprophet、deepar等)等多种算法封装为统一的api,便于不同的场景使用;
20.s5,异常告警,给某个监控指标配置异常检测及其告警,非常简单。只需在海看智慧运维系统异常检测界面,选中该指标进行如图9的编辑,选择告警级别、检测周期、检测算法、需要识别的异常、以及此指标会受影响的节假日或休息日,最后选择检测的敏感度,此处需要说明下,检测的敏感度高中低,反应的是一个异常点连续发生多少分钟才预警,此为内置参数,会在节假日等进行适当微调。
21.具体地,所述s2中指标分类将所有时序指标抽象为三类:周期型、稳定型、随机型,指标分类流程如下:
22.s211,数据准备:
23.①
多台主机近一段时间内的cpu使用率;
24.②
对应的类型标签;
25.③
训练集和测试集比例;
26.s212,预处理流程:
27.①
异常值剔除、缺失值补全,自动判断数据时间间隔;
28.②
方差标准化;
29.③
降维处理;
30.④
将数据格式化为[样本,时间步长,特征]([samples,timesteps,features]);
[0031]
s213,cnn分类器(顺序模型结构):
[0032]

首先两个1d cnn层,然后是用于规范化的dropout层,然后是用于降采样的池化层;
[0033]

然后是flatten层进行特征展平,之后是全连接层,最后再用输出层进行预测;
[0034]

1d cnn模型配置32个并行特征图,设置kernel大小设置,激活函数选择relu;
[0035]

因是多分类任务,优化器选用随机梯度下降算法adam,损失函数选择分类交叉熵categorical_crossentropy。
[0036]
具体地,所述s2中异常检测算法分别为基于neuralprophet的基线预测算法、基于特征工程 xgboost的异常分类算法、基于统计模型假设检验的算法。
[0037]
具体地,所述基线预测算法采用neuralprophet作为核心算法,其过程为:
[0038]
s221,数据获取:训练数据为过去一定期限内的数据;
[0039]
s222,数据预处理:
[0040]

异常值剔除:采用n

sigma对历史数据进行异常值剔除;
[0041]

缺省值补全:按照时间的连续性,对缺省值采用前一个值补全;
[0042]

若预测时间间隔大于原始数据时间间隔,采用paa降维;否则采用前一个值填充;相等时不做处理;
[0043]
s223,模型超参数配置;
[0044]
s224,模型训练及基线预测,配置好超参数后,neuralprophet模型训练,指定数据步长freq,模型保存在本地文件中,预测基线写入influxdb,
[0045]
其中,触发模型训练及基线预测的有如下几个机制:
[0046]

查询不到当前事件的预测基线,加载模型重新预测未来20分钟的基线;
[0047]

配置了定时训练,例如每日23点定时训练模型;
[0048]

检测到模型周期或趋势是否发生变化,则触发模型重新训练;
[0049]
其中周期变化检测,基于stl的趋势拆分,统计窗口数据周期分量的皮尔逊相关系数,然后进行波动分析,判断周期是否发生突变,趋势变点检测,基于开源时序包kats.detectors.cusum_detection方法,通过检测累积值是否发生突变,判定趋势是否突变。
[0050]
s225,异常点判定:
[0051]
基于预测基线,通过计算训练数据和预测基线的差值,统计差值的分位数,构建多层预测上下界,用于判定不同等级的异常点。
[0052]
具体地,所述基于特征工程 xgboost的异常分类算法为:实时数据经过预处理后,经特征工程提取特征,加载离线训练的异常分类模型进行异常检测。
[0053]
具体地,所述s3中采用模拟异常注入的算法得到异常分类模型的方法为:
[0054]
s311,异常注入
[0055]
首先定义了异常场景,然后:
[0056]

给定一段时间序列s,确定注入的异常事件个数n,将时间序列划分为n块;
[0057]

确定异常事件的类型比例,按照此比例,将类型随机的分配给每块时间序列;
[0058]

每块时间序列随机选定一个点,作为异常的开始点;
[0059]

确定异常事件的可能持续时间范围,每个异常事件的持续时间区间在此范围内随机取值,异常事件点连续取两次;
[0060]

异常产生时间在设定时间段内随机取值,异常恢复时间在随后设定时间段内机取值,这两时间段内正常值和异常值之间的值,采用随机插值产生;
[0061]

每个异常区间的异常值,获得此区间日环比、周同比的数据集,生成超过设定参数的值作为其类型对应的异常值;
[0062]
通过上面的异常注入步骤,得到标注后的时序数据,即图10中的标注数据。
[0063]
s312,基于特征工程的特征提取,对上述s311标注后的时序数据,采用同环比的统计量,进行孤立森林特征提取;
[0064]
s313,基于分类器xgboost进行模型训练,先调整树结构参数获得基线,然后调整随机采样参数、正则化参数提高模型泛化能力和降低过拟合风险,最后降低学习率,获得最优的树数目,得到异常分类模型。
[0065]
具体地,所述s2实时检测中的融合方式为:根据业务场景进行选择配置,若检测结果强调可解释性,采用串行的融合方案:先进行基于基线预测的异常检测,若检测为异常后,再进行异常分类或统计模型的进一步判定,若后者也判定为异常,则异常概率加倍,否则保持原有异常概率或判定为无异常;若检测结果强调准确性,则采用并行的融合方案:同时进行所有算法模型的异常检测,检测结果进行有权重或无权重的投票,判定异常的概率值。
[0066]
本发明具有以下有益效果:经实际测试,异常检测部署应用到epg用户连接数等iptv的核心业务指标、cpu和内存等基础资源类指标,对于周期型指标,能够及时准确的发现异常,对异常点进行告警,召回率高达90%以上,基于多种模型融合的检测方案,能够有效的降低误报,精确率能达到95%以上。
附图说明
[0067]
图1为目前多种时序指标图。
[0068]
图2为目前异常场景中点异常图。
[0069]
图3为目前异常场景中群体异常图。
[0070]
图4为本发明实施例中异常检测系统架构图。
[0071]
图5为本发明实施例中异常检测结果示意图一。
[0072]
图6为本发明实施例中异常检测结果示意图二。
[0073]
图7为本发明实施例中基于cnn的指标分类流程图。
[0074]
图8为本发明实施例中neural prophet训练数据、测试数据、预测数据示意图。
[0075]
图9为本发明实施例中异常注入效果图。
[0076]
图10为本发明实施例中模型离线训练和实时检测流程图。
[0077]
图11为本发明实施例中xgboost预测结果。
[0078]
图12为本发明实施例中串行融合方式示意图。
[0079]
图13为本发明实施例中并行融合方式示意图。
[0080]
图14为本发明实施例中指标异常检测配置示意图。
[0081]
图15为本发明实施例中异常检测结果图标展示图。
具体实施方式
[0082]
现在结合附图对本发明作进一步详细的说明。
[0083]
异常定义:
[0084]
在进行异常检测方案设计前,我们首先要定义,哪些场景是异常。通过分析业内文献资料和结合监控业务需求,我们所要检测的异常如下:
[0085]
第一类:点异常,即异常在某些维度上与大部分样本点不同,包括全局异常,也包括局部异常,例如某些尖峰突增或突降,如图2所示。
[0086]
第二类:模式异常,是点异常的一种延申,点异常是单个、或少数量的样本异常,异常结束后还会恢复正常值,而群体异常是指大量样本整体发生周期变化,或者趋势走向的变化,例如因集群扩容,导致单节点流量整体突降1/3,如图3所示。
[0087]
根据图4

14所示的一种epg连接数的实时异常检测系统,包括:
[0088]
底层数据层,用于存储zabbix收集的原始监控指标,包括mysql数据库、时序数据库influxdb,zabbix收集的原始监控指标存储在mysql数据库,由于需要异常检测的时序数据需要高频查询,被实时转存到时序数据库influxdb中;
[0089]
中间逻辑层,包括数据接入模块、实时检测模块、离线训练模块、算法库,其作用是,首先是数据接入,通过调用zabbix api进行异常时序指标的配置和告警策略配置,存储在mysql数据库中,需要异常检测的指标,通过canal、kafka、flink等中间件,将mysql数据库存储的时序指标实时转存到时序数据库中,供实时异常检测使用;然后是实时检测,实时时序数据首先经过基于cnn的指标分类器,分类成周期型指标、趋势型指标、随机型指标,然后分别采用不同的算法进行异常检测,例如基于neuralprophet的基线预测、基于特征工程 xgboost的异常分类、基于统计模型的假设检验等,最终采用模型融合的方式进行检测结果的综合判定;其次是离线训练,除了将真实异常标签注入到历史时序数据中,为了丰富样本数量,采用模拟异常注入的算法,在预处理和特征提取后进行模型训练、参数调优和模型评估;算法库是研发过程中积累的相关算法,皆封装为统一的api,便于不同的场景使用;
[0090]
顶层展示层,用于为异常检测告警发送、检测结果和历史曲线的展示、异常检测结果的用户反馈、检测日志查询等。
[0091]
一种epg连接数的实时异常检测方法,包括:
[0092]
s1,数据接入,zabbix收集的原始监控指标存储在mysql数据库中,采用中间件将mysql数据库中存储的时序指标转换为实时时序数据转存到时序数据库中,供实时异常检测使用;
[0093]
s2,实时检测,采用基于cnn的指标分类器进行指标分类,将实时时序数据分类成周期指标、趋势型指标、随机行指标,对不同类别的指标采用不同的算法进行异常检测;
[0094]
s3,离线训练,将真实异常标签注入到历史数据中,丰富样本数量,采用模拟异常注入的算法,经过数据预处理、特征提取后进行模型训练、参数调优和模型评估,得到异常分类模型;
[0095]
s4,算法库,将统计类(3

sigma、turkey’s test等)、分类类(xgboost、dnn、cnn)和
回归类(arima、prophet、neuralprophet、deepar等)等多种算法封装为统一的api,便于不同的场景使用;
[0096]
s5,异常告警,给某个监控指标配置异常检测及其告警,非常简单。只需在海看智慧运维系统异常检测界面,选中该指标进行如图9的编辑,选择告警级别、检测周期、检测算法、需要识别的异常、以及此指标会受影响的节假日或休息日,最后选择检测的敏感度,此处需要说明下,检测的敏感度高中低,反应的是一个异常点连续发生多少分钟才预警,此为内置参数,会在节假日等进行适当微调。
[0097]
具体地,所述s2中指标分类具体方法为,前文所述时序指标的多样性,通过分析时序数据的特点,并结合业内的实践经验,我们将所有时序指标抽象为三类:周期型、稳定型、随机型,目前时序指标分类主要有两种思路:无监督聚类和有监督分类,无监督聚类多是基于互相关、核密度或者距离的聚类,此类算法不依赖数据标注,效率高,但是准确性不足,监督性的分类算法多是经典算法,准确率较高,例如svm、xgboost等,但是依赖数据标注和复杂的特征工程,结合业内经验,我们参考其他领域的human activity recognition(har)项目,决定采用一元卷积神经网络(cnn)进行时序分类,因为cnn在训练时能够逐层学习时序数据特征,减少了构建复杂特征工程的工作量,指标分类流程如下:
[0098]
s211,数据准备:
[0099]

300台主机近7日的cpu使用率;
[0100]

对应的类型标签;
[0101]

训练集和测试集比例为7:3;
[0102]
s212,预处理流程:
[0103]

异常值剔除、缺失值补全,自动判断数据时间间隔;
[0104]

方差标准化;
[0105]

降维处理:分段聚合近似(paa)处理,窗口大小10分钟;
[0106]

将数据格式化为[样本,时间步长,特征]([samples,timesteps,features]);
[0107]
s213,cnn分类器(顺序模型结构):
[0108]

首先两个1d cnn层,然后是用于规范化的dropout层,然后是用于降采样的池化层;
[0109]

然后是flatten层进行特征展平,之后是全连接层,最后再用输出层进行预测;
[0110]

1d cnn模型配置32个并行特征图(32个filters),kernel大小设置为11,激活函数选择relu;
[0111]

因是多分类任务,优化器选用随机梯度下降算法adam,损失函数选择分类交叉熵categorical_crossentropy。
[0112]
此cnn模型结构中,两个一组的cnn层能够很好的学习到输入数据特征,添加dropout层可以随机使某些节点权重为0,池化层可以将学习到的特征降采样到原来的四分之一,这两层都能够降低数据量、提高学习速度、降低过拟合的风险,有助于提高模型的泛化能力;全连接层可以作为学习特征和输出之间的缓冲区,目的是在进行预测之前解释学习的特征,该模型选择epoch为20,批次大小为60,即在更新模型权重之前,将60个数据窗口输入模型,重复20次,模型拟合后,在测试数据集上对其进行评估,并返回测试数据集上的拟合模型的准确性。
[0113]
上述基于cnn的时序数据分类流程,评估的分类准确率达到89%,能够满足后续流程的需求。后续异常检测方案,目前主要针对分类出的周期型指标。
[0114]
具体地,所述s2中异常检测采用3条检测线路,第一条为基于neuralprophet的基线预测算法,第二条为基于特征工程 xgboost的异常分类算法,第三条为基于统计模型假设检验的算法,其中基线预测和异常分类算法适用于周期型和稳定型指标,统计模型适用于随机型指标,周期型指标异常检测精召率高。
[0115]
具体地,所述基线预测算法通过学习历史数据的特征,如周期、趋势、节假日、残差噪音等,对未来数据的基线进行预测,当前值与基线的差异超过某个置信度度时,判定为异常,因此其中最重要的算法就是基线预测,通过对比业内常用的预测算法如表1,我们选用neuralprophet作为最终的预测算法。
[0116]
表1预测类算法对比
[0117][0118]
[0119]
neuralprophet是一个受facebook prophet和ar

net的启发,在pytorch上构建的基于神经网络的时间序列模型,目前还处于开源开发阶段,它是在一个完全模块化的架构中开发的,能够在未来添加任何额外的组件,它不光保留了prophet的原有功能优势,如可解释性、可配置性,还通过使用pytorch作为后端,提供了自回归网络(ar),将神经网络的可扩展性和ar模型的可解释性进行了完美结合,提高了整体的准确性和可扩展性,因此我们采用neuralprophet作为基线预测的核心算法,下面介绍下基线预测的整个过程:
[0120]
s221,数据获取:训练数据为过去27天(4周)的数据;
[0121]
s222,数据预处理:
[0122]

异常值剔除:采用n

sigma对历史数据进行异常值剔除;
[0123]

缺省值补全:按照时间的连续性,对缺省值采用前一个值补全;
[0124]

若预测时间间隔大于原始数据时间间隔,采用paa降维;否则采用前一个值填充;相等时不做处理;
[0125]
s223,模型超参数配置:
[0126]
经过超参数调优过的参数如下表2所示,其中events需要拆分为训练和预测分别给入。
[0127]
表2 neuralprophet超参数配置
[0128][0129][0130]
s224,模型训练及基线预测
[0131]
配置好超参数后,neuralprophet模型训练,指定数据步长freq,模型保存在本地文件中,因指定了预测步长n_forecasts,因此每次只能预测指定步长,例如本案例中的20
分钟,预测基线写入influxdb。
[0132]
其中,触发模型训练及基线预测的有如下几个机制:
[0133]

查询不到当前事件的预测基线,load模型重新预测未来20分钟的基线;
[0134]

配置了定时训练,例如每日23点定时训练模型;
[0135]

检测到模型周期或趋势是否发生变化,则触发模型重新训练;
[0136]
其中周期变化检测,基于stl的趋势拆分,统计窗口数据周期分量的皮尔逊相关系数,然后进行波动分析,判断周期是否发生突变,趋势变点检测,基于开源时序包kats.detectors.cusum_detection方法,通过检测累积值是否发生突变,判定趋势是否突变。
[0137]
s225,异常点判定:
[0138]
prophet支持置信度interval_width参数,用于预测出基线之外的上下界,可以根据当前值是否超出预测上下界,判定为突增或突降的异常点,但是neural prophet不支持置信度参数,因此本文基于预测基线,通过计算训练数据和预测基线的差值,统计差值的分位数,例如[0.1,0.9]、[0.05,0.95]、[0.01,0.99],构建多层预测上下界,用于判定不同等级的异常点。
[0139]
通过上述流程,neuralprophet预测的结果如下图8所示,图中训练数据为结尾的2日,周末的数据,预测数据为连续预测了2日,周一、周二,可以看出,模型对工作日、休息日的特征学习的很充分。
[0140]
具体地,基于异常分类的异常检测流程,因为符合机器学习的工程套路,业内有很多案例可以参考,论文opprentice、腾讯开源的metis、美团horae都采用监督学习的方式进行异常检测,其流程基本一致:首先,进行样本标注得到样本数据集,然后进行特征提取得到特征数据集,使用特征数据集在指定的学习系统上进行训练,得到异常分类模型,最后把模型用于实时检测,所不同是异常注入、特征工程和分类器模型,需要根据业务场景和数据特征自行研发相应的算法,结合自身的指标数据特征和异常检测需求,本技术中异常分类算法如下所述:
[0141]
s311,异常注入
[0142]
在实际生产环境中,由于系统稳定性要求较高,在做监督性学习的异常检测时,样本数据集中,正负样本极度不平衡,正样本(异常事件)非常少,只使用真实生产环境的数据进行样本标注,会导致正负样本的比例严重失衡,进而影响分类器的精确率召回率不能够满足需求,为了解决这个问题,我们设计了一个周期型监控指标自动注入异常的算法,能够模拟异常事件,丰富异常场景和数量。
[0143]
首先根据上文中定义了点异常场景:突增、突降。通常情况下,异常会突然出现,短时间内上升或下降,然后持续一段时间,最后逐步恢复,恢复过程或快或慢,影响异常两侧的值,称为涟漪效应。同时我们也发现,有些突增后会伴随着急速的突降,例如某个中间件被大流量打爆后中间件不可用的场景。因此异常模拟的算法如下:
[0144]

给定一段时间序列s,确定注入的异常事件个数n,将时间序列划分为n块;
[0145]

确定异常事件的类型比例,例如“突增:突降:突增 突降”=4:4:2,按照此比例,将类型随机的分配给每块时间序列;
[0146]

每块时间序列随机选定一个点xi,作为异常的开始点;
[0147]

确定异常事件的可能持续时间范围,例如[5,60]分钟,每个异常事件的持续时间区间在此范围内随机取值,突增 突降为连续取两次;
[0148]

异常产生时间在[1,3]分钟内随机取值,异常恢复时间在[3,6]分钟内随机取值,这两时间段内正常值和异常值之间的值,采用随机插值产生;
[0149]

每个异常区间的异常值,获得此区间日环比、周同比的数据集,生成<q1

3iqr、或者>q3 3iqr的值作为其类型对应的异常值;
[0150]
注:上述皆为建议的参数,可根据实际异常事件的特征,进行修改。
[0151]
通过上面的异常注入步骤,得到标注后的标注数据,能比较好地模拟出周期型指标在生产环境中的各种异常场景,效果如图9所示。
[0152]
s312,基于特征工程的特征提取
[0153]
上述s311标注后的时序数据,需要设计特征工程进行时序特征的描述,特征工程的异常分类算法经过分析业内的案例,其特征大致分为四种:一是统计特征,包括均值、方差、mad等统计值;二是拟合残差,通过滑动平均、指数加权等简单预测模型的结果与实际值做差值;三是相关性特征,例如自相关、互相关等;四是同环比特征,通过与周同比、日环比等值进行异常判定。本文综合上述几种特征,采用同环比的统计量,进行孤立森林特征提取,具备解释性强、泛化能力强等特点。详细特征如下表3所示:
[0154]
表3特征工程及其说明
[0155]
[0156][0157]
s313,基于分类器xgboost的模型训练
[0158]
监督性学习分类器的应用主要包含模型离线训练和实时检测,如图10所示,离线训练是根据上述标注后的数据集,经过预处理、构建特征工程,然后训练分类器,并存储为本地文件,实时检测是实时数据经过预处理和构建特征工程后,加载离线训练的分类器,进行异常类别预测,其中关键点在于分类器模型的选择及其参数优化;
[0159]
经对比了常用的监督性分类器svm、xgboost、dnn等,综合考虑模型分类的精召率和训练时长,我们选择了xgboost作为分类器模型,其参数优化比较复杂,先调整树结构参数获得基线,然后调整随机采样参数、正则化参数提高模型泛化能力和降低过拟合风险,最后降低学习率,获得最优的树数目,测试集预测结果如图11所示,蓝色为注入的异常,红色为预测结果。测试数据的预测召回率、精确率都能达到94%以上,能够符合线上需求,得到异常分类模型。
[0160]
具体地,为了提高异常检测的检测准确率,提高项目的泛化能力,我们采用机器学习领域常用的模型融合的思想,将基线预测、异常分类、统计模型等算法的检测结果进行融合,综合判定是否为异常点;
[0161]
所述s2中模型融合方式如图12、13所示,可以根据业务场景进行选择配置,若检测结果强调可解释性,采用串行的融合方案:先进行基于基线预测的异常检测,若检测为异常后,再进行异常分类或统计模型的进一步判定,若后者也判定为异常,则异常概率加倍,否则保持原有异常概率或判定为无异常;若检测结果强调准确性,则采用并行的融合方案:同时进行所有算法模型的异常检测,检测结果进行有权重或无权重的投票,判定异常的概率值。
[0162]
采用以上系统及方法给某个监控指标配置异常检测及其告警,非常简单,只需在运维系统异常检测界面,选中该指标进行如图14的编辑。选择告警级别、检测周期、检测算法、需要识别的异常、以及此指标会受影响的节假日或休息日。最后选择检测的敏感度,此处需要说明下,检测的敏感度高中低,反应的是一个异常点连续发生多少分钟才预警。此为内置参数,会在节假日等进行适当微调。
[0163]
异常检测告警通过微信公众号发送给运维值班同事进行确认,指标实际数值、预测基线、检测到的异常点、历史同环比数据等曲线可以通过检测结果面板查看,也提供了异常检测告警日志的查询功能,如图15所示。
[0164]
本发明不局限于所述实施方式,任何人应得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。
[0165]
本发明未详细描述的技术、形状、构造部分均为公知技术。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献