写点什么

火遍网络的 KPI 异常检测到底什么梗?

作者:卷心菜狗
  • 2022 年 2 月 09 日
  • 本文字数:3133 字

    阅读完需:约 10 分钟

网络 KPI 介绍

  • 什么是 KPI?


KPI 可以看作是一种时间序列,时间序列包含时间戳以及时间戳上对应的取值。(例如股票走势,气温变化,心电图等等都可以被看做时间序列)


  • 什么是网络 KPI?

  • 网络设备在运行的过程中会持续的产生大量的数据,例如告警,KPI,日志,MML 等等。KPI 是能够反映网络性能与设备运行状态的一类指标。比较常见的 KPI 指标有:



网络设备 KPI 也可以看做是时间序列。


KPI 的规模庞大,一个网元的原始 KPI 5000+,衍生 KPI 约 00+


KPI 的表现形式也各不相同,例如


异常检测步骤

网络 KPI 异常检测是工程师的‘眼睛’,帮助工程师看到问题要识得庐山真面目,必须采用有效的 KPI 异常检测方法

举例说明

比如说我们要预测 2019 年 11 月 29 日 1:00 的数据。我们要它进行异常检测,那么我们可以取 11 月 29 号 0:00 到 0:55 分的历史数据。进行构造模型。记作 F,此模型即可以给出 11 月 29 日 1:00 预测的下载成功率是 92.7,得到数据之后与 1:00 的真实结果 71.12 进行对比。用残差的方式进行相见,可以得到相减值为 21.58,假如说我们定义的异常门限为 10。则可以发现残差已经大于门限,此时即可以上报异常。



遇到的难点有:


  1. 时间序列相对复杂

  2. 函数 F()构造复杂


这就需要我们有有效的 KPI 异常检测方法

异常表现形式

成功率指标在某一时刻突降


错误码指标在某一时刻突增


可以看到在图片中出现了明显的突增(错误码)和突降(成功率)



更复杂的表现形式


序列平移异常


此案例来自于某一设备温度时间序列,根据经验来看,此设备温度应该维持在 10 度-20 度之间,可以看到在图片左侧有非常明显的突增,温度突增到 80 度,而右侧的徒增则不是特别明显,但是右侧对于设备的影响非常严重(不允许超过 20 度),这就是对设备门限的控制得当



模式变换


此图为心电图,人的心跳反应在心电图上就是相当于周期波动,可以看到在中间有一段红色相对平坦的信号,可以看出它与正常信号的差异非常明显,由于他没有波动,可以认为此人此时心跳可能骤停


异常定义

离群点与异常

离群点:离群点 Outlier 是一个更广泛的概念,通常指与样本总体差别较大的点异常的定义:异常是样本空间中的一种样本,它们与样本空间中其他样本是如此的不同,以致人们不得不怀疑它们是通过另外一种机制产生的。-Hawkins,1980


如下图所示,正常的预测点位于绿色部分,异常的预测点位于红色圆圈



再如下图所示,身高 2.26 米,是一个离群点身高 3 米,是异常,即认为人类不可能身高 3 米或者身高 2.72 米



离群点与异常的不同:


  • 离群点虽然与样本总体差别较大,但仍在可接受的范围内,只是出现的概率较小一些

  • 异常则完全由不同的机制产生

  • 实践当中通常不加以严格区分

不同领域的异常

异常的定义中没有说明数据类型,因此适用广泛,包括表格数据、图像、文本、时间序列,异常的定义都是一致的


例如下图可以看到右侧黑色车辆有一个轧白线的的违章动作,对于交警处理违章问题帮助很大


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X2qGIPKg-1644336390625)(C:/Users/19867/AppData/Roaming/Typora/typora-user-images/image-20220127110918206.png)]


此图为 NLP 自然语言处理,正常评论为与内容相关的评论,而恶意评论则是一些与内容不相干的评论



总结:异常的两个特点:==明显区别==,==极少出现==

异常检测的主要方法

1 基于距离的方法 1.1 根据样本集 X 计算当前样本 x 的预测值 x~0~


1.2 计算样本真实值 x 与 x~0~的距离 d=|x-x~0~|


1.3 若距离大于阈值 t,则判断为异常



2 基于分布的方法 2.1 根据样本集 X 计算当前样本 x 的分布 f(x)


2.2 根据分布 f 和样本真实值 x 做假设检验,计算 p 值


2.3 若 p 值低于显著性水平 a(0.05),则认为检测到异常


时间序列异常检测的难点

时间序列检测的难点最主要的就是门限的设置,因为不同人对异常的感受是不一样的,有的人可能感受很敏感,有的人觉得无所谓,他们心目中的门限可能有高有低,这是一个很难去统一的标准。


异常是与众不同的,但是这个"众"我们应该怎样去定义,下面通过一个例子来解释


下面这个图为时间序列,可能很难发现他有与众不同的点



但是将时间序列拉长后如下图所示



可以看出红色部分本身即为异常

异常检测常见方法

Z-score 方法

一组正态分布样本中,偏离均值 3 倍标准差之外的区间的概率密度很低,若样本落在这个区间,则很可能是异常


Zscore 是衡量正态分布样本的偏离程度的指标



将时间序列每个时间戳的点视为一个样本用 z-score 计算每个时间点的偏离程度,若大于阈值(3)则判断为异常


注明:只能检测明显的值异常,不能检测序列异常



我们可以看到下图中间的绿色线为均值,上下面的绿线为标准差,且有 3 个值 Outlier 位于绿线外面



Z-score 方法弊端:没有用到任何时间序列的信息,也就是说这个时间序列是否有序,检测出的异常不会发生变化这显然是不符合我们需求的,因为很多异常可能是一些局部的特征,所以此方法不能用于检测序列的异常

滑动平均法(Moving Average,MA)

MA 的方法利用到了序列的特征,滑动平均法基于最近时刻的值估计当前时刻的取值



例如在下面的时间序列,我们要预测 1:00 的下载成功率,那就把 0:00 到 0:55 的下载成功率取平均值,即可以得到 1:00 滑动平均的结果为 3



此图展示了美国佛罗里达州的新冠人数,蓝色线为真实值,红色线基于 7 天平均值的预测值


指数加权滑动平均法(Exponential Weighted Moving Average,EWMA)

由于序列的距离-相似性,越近的点相似度越高,因此在做滑动平均时采取等权重是不合适的,直观上来说应当给较近的点较高的权重第 i 时刻的加权求和满足:




S~i~为当前时刻的真实值,α为衰减因子,值越大则最近数据的权重越高,历史数据的权重越低



采用 EWMA,设 a=0.5,则预测下一时刻 2019/10/22 1:00 的取值为 93.166

同比与环比

环比:当前时刻与前一时刻之比



例如国家统计局计算 GDP 以月为单位,比如算 2020 年 2 月份的 GDP 有没有达到预期,就需要和上个月进行对比,这就叫做环比,环比是当前时刻与前一时刻之比。


如果是 2020 年 2 月份和 2019 年 12 月份对比,这就叫做同比,同比是当前时刻与上一周期同一时刻之比。


下图为典型的时间序列



使用同比可以较容易的预测出下一个高峰的出现时间,而环比则很难预测

Boxplot 方法

环比和同比在时间序列检测中的应用为 Boxplot 方法


Boxplot 双线图是数据科学家在分析数据分布的情况下经常用的一种方法



下图为 100 名学生的考试成绩,中位数为第 50 名的学生成绩,上四分数为第 25 名孩子的成绩,下四分数为第 75 名孩子的成绩


IQR 为



超过上限和下限的值均为异常值


下图为用 Boxplot 检测异常值实例(蓝色线为预测值,绿线为真实值)



Boxplot(箱线图)通过绘制数据分布分位数的方式检测异常点分位数相比于 3 sigma:无需假设正态分布,适用更广



基于同比数据,更符合当前数据的分布

算法总结

z-score:异常+检测 MA,EWMA:序列+异常+检测


Boxplot:时间+序列+异常+检测异常:==零维==,样本之间是独立同分布的,不存在任何顺序关系序列



异常:==一维==,样本仅与前后样本有关,只在一个方向上演化



时间序列异常:==二维==,样本不仅与前后样本有关,也与上一周期内的样本有关,在两个方向演化


例如此飞镖盘有很多块组成,可以形成不同的分数,分数与所在的环有关,在同一个环,击中的概率相同(同比),在不同的环环比情况下外侧击中概率较大,分值相对较小(环比)


KPI 异常检测实例

KPI 异常检测帮助运营商提前 5 小时发现问题,保障四地市用户体验



及时发送信息


总结异常检测

异常检测的方法有很多,总结起来分为三类


0 维:只看整体,不看轮廓


1 维:只看轮廓,不看整体


2 维:既看整体,又看轮廓



要做好时间序列异常检测,必须同时做好‘时间’、‘序列’、‘异常三个层面的工作,三者相辅相成,缺一不可。

异常检测演示

涵盖数据预处理、特征提取、模型训练、模型验证、推理执行和重训练全流程。该服务提供开发环境和模拟验证环境,内嵌华为在电信领域 30 多年积累的的知识和经验沉淀,内置 50+电信领域资产,包括项目模板,算法、特征分析及处理 SDK。帮助开发者降低开发门槛,提升开发效率,保障模型应用效果

发布于: 刚刚阅读数: 2
用户头像

卷心菜狗

关注

还未添加个人签名 2021.03.16 加入

还未添加个人简介

评论

发布
暂无评论
火遍网络的KPI异常检测到底什么梗?