https://mp.weixin.qq.com/s/okKnaqJVV7bfS1_iUtdIWg
1.概览
异常检测是智能运维(AIOps)系统中一项基础且重要功能,其旨在通过算法自动地发现KPI时间序列数据中的异常波动,为后续的告警、自动止损、根因分析等提供决策依据。在实际场景下,由于异常点数据稀少,异常类型多样以及KPI类型多样,给异常检测带来了很大的挑战。
本文整理了LogicMonitor-AI团队在AIOps决赛暨首届AIOps研讨会中的分享内容,主要介绍了我们在AIOps异常检测竞赛中的算法设计思路和实现细节。
接下来主要分三部分来介绍:
• 首先介绍这次竞赛的背景和需求,在此基础上给出我们方案的设计原则
• 第二部分会详细介绍这次竞赛中使用的算法方案
• 最后探讨方案的不足与改进计划
2.需求分析
问题描述
在竞赛中,主办方提供了两份数据集,分别用作训练和测试,数据集由若干KPI时间序列组成,这些数据都来源于真实的运维场景。训练数据事先由运维人员手工标注出了异常段,要求根据训练数据生成模型并对测试数据进行异常检测(即对每个数据点标注是否为异常点)。
评估
通过对比测试集上模型的检测结果与真实标注数据,计算F-Score作为算法的评估标准,考察算法的精准率和召回率。通常情况下,运维人员往往只关心异常检测算法能否检测到某一连续异常区间,而非检测到该异常区间的每一个异常点。因此,对于连续的异常段,规定了时效性窗口,只要在窗口内检出异常点,那么该异常段都算作成功检出,否则都判为失败。
考虑到算法的实用性,竞赛还补充了几点规则:
• 禁用手工干预:在模型训练阶段,不允许手动地建立从“KPI曲线ID或KPI曲线计算得出的特征”到“算法和参数”的一