单指标时序异常检测学习笔记
Metis 开源项目
Metis 采用 Tsfresh 和 XGBoost 组件进行时序异常检测,采用了三个时间窗口去进行预测
特征数据格式
时间窗默认 180 分钟,数据粒度 1 分钟
数据 | 上一时间窗 | 当前时间 | 下一时间窗 |
---|---|---|---|
当前时刻 A | √ | √ | |
昨日同期时刻 | √ | √ | √ |
上周同期时刻 | √ | √ | √ |
算法思路
先使用三种非监督方法进行检测,当某一方法输出异常时使用全监督的 XGBOOST 进行检测
非监督算法
Statistic 方法
3sigma 法,检测当前时刻点数值与历史数值均值相差是否大于三倍标准差
EWMA 方法
指数加权移动平均法,相比于 3sigma 法给予历史数据一个指数级递减的权重,距离当前数据点越近则权重越大
阈值为一下公式所示,其中\alpha为学习率
Polynomial Interpolation 方法
多项式回归
IForest 方法(未使用)
孤立森林方法
全监督训练方法
XGBOOST
XGBOOST 是 GBDT(Gradient Boosting Decision Tree)的高效实现方法,并在 Kaggle 竞赛上获奖颇多。
参考
ARIMA(差分整合移动平均自回归模型)
ARIMA 更是一种类似于 EWMA 的时间序列预测模型
进行预测的一般步骤
- 数据获取与清洗:包括对数据进行预处理(比如利用数据平滑消除数据抖动)
- 数据预处理:时序图(原始图),自相关、偏自相关(消除序列的周期性与时间相关性),差分(消除自增减趋势,会损失数据)
- 模型识别:通过算法分析数据特征来确定使用何种检测算法或预测算法
- 模型定阶
- 参数估计
- 模型验证
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于