建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
温馨提示

抱歉,您需设置社区昵称后才能参与社区互动!

前往修改
我再想想

华为云大赛技术圈

话题 : 467 成员 : 405

加入HCSD

KPI异常检测比赛解题分享--复仇者联盟

小云对小云 2020/11/26 4714

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

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

一、题目分析

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

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

针对此次比赛,我们的主要解题思路如下图所示:

image.png


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

二、有监督学习

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

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

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

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

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

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

三、无监督学习

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

image.png


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

image.png

image.png

image.png

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

四、算法融合

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

五、思考与总结

最后,我们的总结与思考如下:

1.     掌握了kpi异常检测主要流程。

2.     加深了对catboostlgb模型的认识,对时序分解算法也有一定的了解。

3.     熟练使用了华为云平台,对比赛助力颇多。

4.     此外,还可以继续提升方面有可进一步提高模型的泛化能力;可进一步考虑模型的检测效率。

总之,通过此次比赛,我们不仅收获了知识,也认识了一批志同道合的朋友,从他们身上,我们也学到了很多。感谢此次比赛的契机,让我们有机会展示自己的收获与成长。


回复 (0)

没有评论
上划加载中
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

小云对小云

角色:成员

话题:94

发消息
更新于2020年11月26日 15:05:36 47140
直达本楼层的链接
楼主
正序浏览 只看该作者
[参赛经验分享] KPI异常检测比赛解题分享--复仇者联盟

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

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

一、题目分析

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

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

针对此次比赛,我们的主要解题思路如下图所示:

image.png


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

二、有监督学习

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

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

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

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

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

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

三、无监督学习

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

image.png


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

image.png

image.png

image.png

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

四、算法融合

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

五、思考与总结

最后,我们的总结与思考如下:

1.     掌握了kpi异常检测主要流程。

2.     加深了对catboostlgb模型的认识,对时序分解算法也有一定的了解。

3.     熟练使用了华为云平台,对比赛助力颇多。

4.     此外,还可以继续提升方面有可进一步提高模型的泛化能力;可进一步考虑模型的检测效率。

总之,通过此次比赛,我们不仅收获了知识,也认识了一批志同道合的朋友,从他们身上,我们也学到了很多。感谢此次比赛的契机,让我们有机会展示自己的收获与成长。


点赞 举报
分享

分享文章到朋友圈

分享文章到微博

游客

您需要登录后才可以回帖 登录 | 立即注册