KPI聚类算法——ROCKA

mac2025-06-18  17

文章目录

问题场景问题挑战算法框架算法细节实验对比辅助异常检测 论文: Robust and Rapid Clustering of KPIs for Large-Scale Anomaly Detection

问题场景

运维场景下需要对KPI做监控和各种算法处理(比如异常检测),但是KPI数量和维度都太多,每一条单独训练成本太高,所以希望能对KPI进行聚类,每个聚类蔟内用同一个模型。

问题挑战

聚类首先要判别距离,KPI曲线上噪声/异常/相位偏差和振幅会造成相似度计算的困难。KPI曲线时间跨度从几天到数周,维度通常较高,进一步增加了对聚类的挑战。

算法框架

预处理:消除振幅差异基线提取:消除噪声和异常点相似性度量:基于形状的SBD距离作为相似性度量,消除相位差异聚类:为每个类别计算聚类中心,新来曲线直接与中心计算相似度并聚类

算法细节

预处理 缺失值:线性插值填充振幅差异:标准化(均值0方差1) 基线提取 目的:降低噪声和异常的影响 去异常点:去除异常点并用相邻点做线性填充(本文是去除离均值最远的5%点,也可以用箱线图等)去噪声:滑动平均,将曲线分成基线和余项 公式如下: 效果: 相似性度量 相似性计算:对基线使用基于互相关距离度量SBD来比较相似性。

互相关计算两条kpi的滑动内积,对相位偏差有天然鲁棒性。两条kpi曲线x,y和相位偏差s,标准化互相关NCC及距离度量SBD计算如下:

解释:移动s后,x,y无相位差,此时内积最大。NCC范围是[-1,1],SBD范围是[0,2]。SBD越小则相似度越高。 特别的!利用卷积和傅立叶变换可以计算两条长度为m的kpi时间复杂度降低为(mlogm) 4. 聚类

基于密度的聚类算法DBSCAN

实验对比

聚类效果和微软YADING的对比: 算法内技术的对比 DTW计算曲线相似度 DTW可以准确地捕获具有相移的KPI之间的相似性。 但是,它也可以使两个具有不同周期性或季节性的KPI完美对齐。 例如,关于网页浏览量的KPI和关于搜索响应时间的KPI可能具有相似的形状,但季节性不同(例如,一天与一周之间)。 在DTW距离下它们是相似的,但是根据前面所述的运营商规则,不同类型的KPI不能归为同一簇。 此外,DTW计算时间更长。

辅助异常检测

与DONUT结合

E1: 仅使用原始DONUT为每条KPI训练模型进行异常检测,按原作者的方法为每条KPI调优寻找能取得最佳F-score的阈值。E2: ROCKA+DONUT。利用ROCKA对KPI曲线进行聚类并求出聚类中心。仅在聚类中心曲线上训练DONUT模型,并选出最佳阈值。将聚类中心的模型及阈值应用于同聚类簇的其他KPI曲线上。E3: ROCKA+DONUT+重选阈值。仍使用聚类中心曲线训练模型应用于同类其他KPI上。但在有足够标注的情况下,我们可以为每条KPI重新调优阈值来取得最佳F-score。

结果:

相比于E1,E2的方法节省了90%的模型训练时间,而异常检测的平均F-score下降不超过15%,仍能达到0.76的平均F-score。而在与E1有相同标注量的情况下采用E3的方法,平均F-score下降不超过5%。同时,在面对更大规模的KPI时,同一聚类簇中将包含更多相似曲线,从而能够节省更多的模型训练时间。
最新回复(0)