# 基于LSTM的异常检测
## Introduction(简介)
这是AIOps的一个[异常检测竞赛项目](http://iops.ai)。
### Datasets(数据集)
数据集是从5个互联网公司收集的26个KPIs,分为有标记的训练集(data/train.csv)和无标记的测试集(data/test.csv)。
![image](./img/data.png)
几个KPI的示意图
![image](./img/kpi_1.png)
![image](./img/kpi_2.png)
![image](./img/kpi_3.png)
### Evaluation Metric(评估算法)
如果在规定时间内检测出异常点,则这整个区间都算作被你检测出来。否则,这个区间都算作没被检测出来。最后是在测试集上的f_score进行评测。
![image](./img/metric.png)
|Name|Description|
|:-:|:-:|
|preprocessing.py|使用线性插值填充missing points|
|lstm_train.py|基于LSTM的预测算法(训练)|
|predict.py|基于模型进行预测|
## Dependencies(环境依赖)
|Name|Version|
|:-:|:-:|
|python|3.6.6|
|tensorflow|>=1.10.0|
|keras|>=2.2.2|
## Model(模型)
采用的模型很简单,使用的是双层LSTM(没有尝试三层,因为训练时间直接double...)。
输入是当前时间点的前120(2小时)个点所构成的sliding window, 输出是next sliding window(即向后滑动一步),也可以输出当前时间点。
即120 -> 120 或 120 -> 1。
|Parameter|Name|
|:-:|:-:|
|batch size|128|
|dropout|0.2|
|optimizer|Adam|
|classifier|Softmax|
评估是针对验证集上的f_score进行评估。将有异常的数据平均分为2份,保证验证集上也有一定数量的异常点。
而对于一些异常点非常少的KPI,在实验过程中发现,其验证集上的f_score始终为0。
于是我们重写loss函数,针对其FN(漏报)的部分进行惩罚(penalty)。如果在验证集上,FN很多,则相应的loss也会很大。
这样可以迫使模型尽可能的检测出异常点。
## Result(结果)
最后取得的f_score是0.746,相比于第一名少了0.02。
![image](./img/score.png)
有几个部分是可以改进的(第一名的小组采用的方法)
1. post-processing: 输出的结果可以针对Evaluation Metric进行优化,比如一连串anomalies,只选择几个点,从而可以降低FP(误报率)。
2. over sampling: 简单的重复anomaly的部分,使得异常点和正常点达到1:1的比例。(本来是打算采用这个方法的,好像在看到哪里看到说这种方法不太好...后来就采用FN penalty的方法了)
奋斗奋斗再奋斗的ajie
- 粉丝: 1235
- 资源: 3031
最新资源
- "DBO-DHKELM算法:基于蜣螂优化算法优化混合核极限学习机的数据分类预测系统",DBO-DHKELM基于蜣螂优化算法优化深度混合核极限学习机的数据分类预测 Matlab语言 程序已调试好,无需更
- 基于Web的高校毕业论文选题系统的设计与实现
- Account statement - 2024-12-31.pdf
- 基于扰动观测器的伺服系统摩擦补偿与位置环可选Matlab仿真研究,基于扰动观测器的伺服系统摩擦补偿Matlab仿真(可以选择是否带位置环) 1.模型简介 模型为基于扰动观测器的摩擦补偿仿真,仿真
- 基于Spring Boot + MySQL的大学毕业生选题系统设计与实现-提升毕业设计管理效率和学生体验的技术方案
- 基于python实现的多元线性回归及其可视化+源码+项目文档(毕业设计&课程设计&项目开发)
- "A*算法与动态窗口法DWA融合的机器人路径规划算法研究-基于Matlab平台的实现与应用",A*融合动态窗口法DWA,机器人路径规划算法,matlab平台 ,核心关键词:A*算法;融合动态窗口法
- 基于MATLAB Simulink的光伏发电机模型构建与最大功率跟踪研究:包含光伏阵列与电池模型分析及其参考文献,光伏发电机模型 本模型使用MATLAB Simulink对光伏发电机进行建模 包含对
- covid19-china.csv
- "电动汽车动力电池SOC估算模型与寿命预测算法合集:涵盖多种电池参数辨识与充放电数据整合分析",soc锂电池寿命预测 整理了锂电池的多种算法合集:涵盖电动汽车Simulink模型、电动汽车动力电池S
- "Simulink整车控制器VCU应用层模型:实车应用、仿真与代码生成一体化解决方案",Simulink整车控制器vcu应用层模型,实车在用的,支持仿真和生成代码 文件分类明确,每个普通功能和核心功
- 基于SpringBoot的毕业设计选题系统设计与实现
- 电动汽车充放电调度响应率计算方法研究:放电奖励差异下的车主参与度分析与应用matlab、yalmip及cplex优化技术,【电动汽车响应率】考虑的是针对电动汽车充放电调度问题,由于放电奖励不同导致部分
- 辐射型配电网络的Distflow与线性化计算:以IEEE33节点系统为实例的Matlab编程实现 ,辐射型配电网络的Distflow matlab编程 针对不同辐射状的配电网络进行,进
- 大厂设计进阶实战课.zip
- 基于C#+unity实现二维波方程交互水面与实时焦散+源码+demo演示(毕业设计&课程设计&项目开发)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈