[参赛经验分享]揭开KPI异常检测顶级AI模型面纱4(复仇者联盟团队)

举报
就挺突然 发表于 2021/01/05 10:42:45 2021/01/05
【摘要】 团队:复仇者联盟很高兴能有机会通过这个方式与大家分享我们的比赛收获。通过参加2020GDE全球开发者大赛·KPI异常检测,我们团队在这个过程中获得了极大的成长,感谢华为。接下来,我们就介绍一下我们团队针对此次比赛的一些思路与想法。我将从题目分析、有监督学习、无监督学习以及算法融合这四个方面向大家具体阐述下我们团队的解题思路。1、题目分析题目分析这部分我们首先总结了赛题的特点,紧接着根据赛题特...

团队:复仇者联盟

很高兴能有机会通过这个方式与大家分享我们的比赛收获。通过参加2020GDE全球开发者大赛·KPI异常检测,我们团队在这个过程中获得了极大的成长,感谢华为。接下来,我们就介绍一下我们团队针对此次比赛的一些思路与想法。

我将从题目分析、有监督学习、无监督学习以及算法融合这四个方面向大家具体阐述下我们团队的解题思路。



1、题目分析



题目分析这部分我们首先总结了赛题的特点,紧接着根据赛题特点进行了一些思考­——怎么去解决这些问题。熟悉题目后,我们自然而然地判断这是一个二分类问题,异常标记为1,正常则为0。我们通过观察发现,数据集中是时间连续的序列型数据,每个时间戳是一个小时;KPI_ID一共20类,分别对应二十种异常情况;且异常发生的概率极低,0多1少,样本极不平衡。数据集现有的特征有四列,其中,只有value值表征了kpi的异常情况。

接下来,我们首先考虑了如何解决样本不平衡的问题,想到了两种方法,一是不均衡采样,但这会破坏时间连续性;二是设置一个合适的判决阈值,此法可以保留时间连续性,但需要多次调整。综合考虑之后,我们选用了第二种方式。
针对此次比赛,我们的主要解题思路如下图所示:
图片

我们主要是做了两部分工作,一部分是有监督学习、另一部分是无监督学习,有监督学习中用机器学习模型进行预测,无监督学习采用时序分解算法进行预测,然后二者结果进行取交处理。
 



2、有监督学习



针对有监督学习部分,我们首先进行特征处理。
1

针对KPI_ID进行编码。由于KPI_ID是字符型数据,因此需要将KPI_ID进行数字编码,编码后分别对应于0-19,随后将其作为特征输入到模型中。

1

针对时序数据增加特征。上一时刻的核心网状态( value值体现)可能对下一个时刻的状态有所影响,所以采用时序移位与减操作来丰富数据特征。经过调整,最终针对每一个时间戳生成的特征数一共为104个。


接下来,我们采用了Catboost模型。由于采用了上述的特征处理,可以看到特征数量较多,因此优先采用catboost模型。Catboost的优点在于自动采用特殊的方式处理类别型特征(categorical features)。首先对categorical features做一些统计,计算某个类别特征(category)出现的频率,之后加上超参数,生成新的数值型特征(numerical features)。catboost还使用了组合类别特征,可以利用到特征之间的联系,这极大的丰富了特征维度,有利于寻找特征之间的关联性,得到正确的预测结果。

此外,我们采用LGB模型,我们思考的是针对单一模型检测能力有限这一问题,进一步使用其他模型来进行融合,以期望能够提高异常检测的准确率。而LightGBM是个快速的、分布式的、高性能的基于决策树算法的梯度提升框架。可用于排序、分类、回归以及很多其他的机器学习任务中。该模型预测精度高,能够减少内存占用,提高运行速度!

接下来,我们将两个模型进行融合处理。首先将两个模型的预测结果输出;其次对于Catboost与LGB判定某一时刻值标签值不同的情况,我们选择将两个模型中输出结果概率大的值作为最终的有监督学习输出概率,同时认为这些点是疑似异常点;最后,我们对模型融合后的结果进一步做阈值处理,尽可能多的包含预测结果为1 的点,以有利于后续和时序分解得到的结果进行融合处理,提高预测准确率!





3、无监督学习



针对无监督学习部分,我们选择采用时序分解算法来检测测试集数据中的异常点,主要是通过观察每一类异常中全量数据的统计分布规律来进行筛选。
图片
第五类(时序分解图)

上图展示的是第五类异常的时序分解图。下面是我们选择的KPI_ID中比较有代表性的几类的异常检测情况,可以看到异常点(红点标注)与正常点之间有明显的差异。
图片
第四类(value值过大检测为异常)

图片
第五类(value值过大过小均检测为异常)

图片
第十二类(value值过小检测为异常)

通过时序分解算法,我们可以判决异常点,得到这一部分的输出结果。




4、算法融合



算法融合部分,我们将有监督学习算法中两个模型融合得到的疑似异常点与时序分解算法中得到的异常点进行取交操作,得到最终的预测结果文件,并提交!




5、思考与总结



最后,我们的总结与思考如下:
1.掌握了kpi异常检测主要流程。
2.加深了对catboost和lgb模型的认识,对时序分解算法也有一定的了解。
3.熟练使用了华为云平台,对比赛助力颇多。
4.此外,还可以继续提升方面有可进一步提高模型的泛化能力;可进一步考虑模型的检测效率。

总之,通过此次比赛,我们不仅收获了知识,也认识了一批志同道合的朋友,从他们身上,我们也学到了很多。感谢此次比赛的契机,让我们有机会展示自己的收获与成长。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。