【竞赛记录】kpi异常检测

搞了个华为的KPI异常检测竞赛,当然搞的时候就没觉得自己会拿奖(我指安慰奖),但没想到有这么悬殊。一方面是没搞过时间序列的东西,好多东西要重新开始学;另一方面是,谁知道我一搞竞赛,一向放羊的导师开始疯狂cue我,怕不是开了个天眼。

首先从数据本身开始吧
KPI就是运维用来判断Web服务是否稳定的时间序列。

KPI时间序列
KPI有周期性的也有非周期性的,非周期的貌似还分稳定的和不稳定的。

周期性
非周期(稳定)
非周期(不稳定)但这次竞赛我只分了周期和非周期两种,周期(好像)一般是7,因为人的工作+休息的周期也是一周七天嘛。

数据预处理
因为周期数据要做回归,所以需要先将数据进行填充和去除异常点的预处理。
填充这一步用的就是python自带的:interpolate()
去除异常点这里用的Lowess(局部加权回归)做了个类似smooth的措施。

制造特征
给的数据中基本上能用的只有kpi的value这个值而已,所以要自己造特征。一开始是我自己算的一堆统计学特征,后来听说有TsFresh这么个好东西,就拿来用了。

from tsfresh.feature_extraction import MinimalFCParameters, EfficientFCParameters
from tsfresh import extract_features

不过有个问题是,我不能debug到TsFresh的数据样子,每次就很自然地,像run一样地跑完了。。。ORZ
也不知道是我的操作问题还是平台问题。

模型训练
好的,终于到这里了。我一想到一开始都是我一个个编写,却在最后一天一个简单粗暴的vote就很委屈 =皿=
周期的kpi序列用的是:XGB
非周期的kpi从一开是高斯混合

from sklearn.mixture import GaussianMixture

到逻辑回归
(话说一开始没找到这个函数,还是我自己对着公式编的)

from sklearn.linear_model import LogisticRegression

SVM和随机森林也搞一搞

from sklearn import preprocessing, svm
from sklearn.ensemble import RandomForestClassifier

到投票把这些都搞进去。

from sklearn.ensemble import VotingClassifier, 

异常点检验
这没什么好说的,用的3-sigma,就是用标准差弄个范围,超出范围的全是异常值。

结论
结论是那个准确率依旧很惨 ORZ
我觉得问题可能在这几个方面吧:
1,看了一下别的大佬做的,说是一开始除了我的数据预处理外,还要自己重新标注异常点,因为给的label未必是准的,然而我木有做。
2,制作特征方面可能还是太糙了,本来应该制作的特征有这~么多↓
时序特征构造
反正作为第一次参加竞赛、一边应付导师的我尽力了(去找下一个竞赛啦~)

参考:KPI异常检测竞赛笔记

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值