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

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

前往修改
我再想想

华为云大赛技术圈

话题 : 467 成员 : 405

加入HCSD

2020GDE全球开发者大赛·KPI异常检测TOP9思路分享——Excavator

派森挖掘机 2020/12/1 1809

首先感谢华为公司举办的比赛,感谢提供给我们一个提升自己的机会。我们是来自南开大学的Excavator团队(挖机联盟),本次比赛非常有幸能进入前10

一、赛题任务

本次KPI异常检测比赛提供了某运营商的部分网元的KPI真实数据,根据历史一个月的异常标签数据,训练机器学习模型,智能预测后续一周内KPI中的异常。

评价函数为二分类中常用的F1-score

image.png

二、数据初探

训练集数据仅有5列,分别是:

Ø  kpi_id:表示某个KPI名称,本次共分为20KPI_ID

Ø  start timeend time:采样间隔为1小时,用于指示当前KPI值的开始时间和结束时间。

Ø  valueKPI值,本次KPI检测的关键数据,核心特征。

Ø  label:标签值,指示kpi值是否异常。0为正常,1为异常。

除去ID列和标签列,仅有时间特征和kpi特征。其中最为关键的就是KPI值,通过KPI值的时序变化,来判别异常点。

根据上述分析,将本赛题归纳出几个关键字:时序类数据原始特征较少二分类问题。接下来我们进一步分析,发现两个问题:

1.通过绘制value值分布图发现,不同kpi_id value值分布截然不同:有的较为平稳,有的波动很大,且取值区间也相差很大。

image.png

image.png

2.通过对label列的value_counts()函数统计发现,0值较多,1值极少。01取值分布如下图所示,比值约为98.5:1.5,训练集数据极为不平衡。

image.png

      第一时间想到的解决方案是:分ID训练不同模型,根据1/0比值划分阈值。


三、特征工程

时序类数据和时间强相关,上下联系紧密,首先想到的就是窗口特征和差分特征。

1.窗口特征:向上向下取一定数量的值(称为窗口),进行统计分析。可以使用Dataframerolling函数。

2.差分特征:时间移位作差,目的是观察时序变化。可以使用diff函数。

3.卡方分箱:将value值放缩并进行一个映射,便于模型理解。

四、解决方案:

常见的时序类模型会想到lstm等神经网络,但是其训练速度较慢,所以本次并未采用。本次采用数据挖掘比赛常用的Lightgbm模型,并结合数据规则进行综合评判。分ID思路如下:


1.稳定ID

一部分ID具有较稳定的value值,异常点即离群点。针对这个现象,我们根据折线图和散点图,找出这些稳定ID,设置一个KPI正常区间。区间之外的点为异常点,置为1

image.png

image.png


2.不稳定ID

l  直接按照模型概率划分01

对于一部分不稳定ID,我们直接采用LGB模型预测,得到每个点是异常点的概率,再通过计算Train01比例,得到概率划分基准点,再进行微调。划分阈值这里我们的方案如下:五折交叉验证后得到的训练集异常概率,遍历0.0010.5之间阈值,计算训练集F1_score,得到最优的阈值list

image.png


l  经常会出现两个连续1ID

有一部分ID的异常点经常是连续出现的(2个),根据这种情况,我们采用的方案是:

1)确定必然是异常的点(异常概率大,超过0.5)。

2)在异常点的上下寻找概率较大的点,也将其记作异常点。

image.png


l  模型概率加阈值划分

最后一类问题是我们最头疼的一类问题,某些谷底的值,因为下降过程非常平滑,模型有时不能判断其是否是异常,这种我们通过模型概率先找出异常点,再划分阈值来判断异常。

image.png

最终评分0.9403,线上排名第10,复核排名第9

五、总结

1.        首先分ID训练优化模型,对于较少ID的比赛(比如本次比赛)还可以,对于ID多的恐怕会相当复杂,所以还是很期待前排“1”佬们的方案。

2.        我们提供的方案主要还是单模,难免在最后阶段进入瓶颈期。后面还要更多考虑模型融合,发掘不同模型之间的优势,取长补短。

3.        特征挖掘思路较为常规,还需要进行更深入的挖掘,毕竟特征为王,挖到几个强特可能直接分数暴增。

4.        对于华为NAIE平台,刚开始使用的时候还是挺困难的,但是一天的摸索后,就一句话:NAIE真香。

----------------------------------------------------分割线---------------------------------------------------------

5.        对于赛制:没有B榜可能是唯一的槽点吧,全都朝着A棒拟合,模型泛化能力检测不够吧。有点慈善赛的味道(不是为了买代码)。

6.        希望下次还能有机会参加华为的比赛,和各路高手比拼。和GREAT再战300回合!

 

作者:派森挖掘机、爱撒谎的小超


回复 (0)

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

派森挖掘机

角色:成员

话题:2

发消息
发表于2020年12月01日 20:01:15 18090
直达本楼层的链接
楼主
正序浏览 只看该作者
[参赛经验分享] 2020GDE全球开发者大赛·KPI异常检测TOP9思路分享——Excavator

首先感谢华为公司举办的比赛,感谢提供给我们一个提升自己的机会。我们是来自南开大学的Excavator团队(挖机联盟),本次比赛非常有幸能进入前10

一、赛题任务

本次KPI异常检测比赛提供了某运营商的部分网元的KPI真实数据,根据历史一个月的异常标签数据,训练机器学习模型,智能预测后续一周内KPI中的异常。

评价函数为二分类中常用的F1-score

image.png

二、数据初探

训练集数据仅有5列,分别是:

Ø  kpi_id:表示某个KPI名称,本次共分为20KPI_ID

Ø  start timeend time:采样间隔为1小时,用于指示当前KPI值的开始时间和结束时间。

Ø  valueKPI值,本次KPI检测的关键数据,核心特征。

Ø  label:标签值,指示kpi值是否异常。0为正常,1为异常。

除去ID列和标签列,仅有时间特征和kpi特征。其中最为关键的就是KPI值,通过KPI值的时序变化,来判别异常点。

根据上述分析,将本赛题归纳出几个关键字:时序类数据原始特征较少二分类问题。接下来我们进一步分析,发现两个问题:

1.通过绘制value值分布图发现,不同kpi_id value值分布截然不同:有的较为平稳,有的波动很大,且取值区间也相差很大。

image.png

image.png

2.通过对label列的value_counts()函数统计发现,0值较多,1值极少。01取值分布如下图所示,比值约为98.5:1.5,训练集数据极为不平衡。

image.png

      第一时间想到的解决方案是:分ID训练不同模型,根据1/0比值划分阈值。


三、特征工程

时序类数据和时间强相关,上下联系紧密,首先想到的就是窗口特征和差分特征。

1.窗口特征:向上向下取一定数量的值(称为窗口),进行统计分析。可以使用Dataframerolling函数。

2.差分特征:时间移位作差,目的是观察时序变化。可以使用diff函数。

3.卡方分箱:将value值放缩并进行一个映射,便于模型理解。

四、解决方案:

常见的时序类模型会想到lstm等神经网络,但是其训练速度较慢,所以本次并未采用。本次采用数据挖掘比赛常用的Lightgbm模型,并结合数据规则进行综合评判。分ID思路如下:


1.稳定ID

一部分ID具有较稳定的value值,异常点即离群点。针对这个现象,我们根据折线图和散点图,找出这些稳定ID,设置一个KPI正常区间。区间之外的点为异常点,置为1

image.png

image.png


2.不稳定ID

l  直接按照模型概率划分01

对于一部分不稳定ID,我们直接采用LGB模型预测,得到每个点是异常点的概率,再通过计算Train01比例,得到概率划分基准点,再进行微调。划分阈值这里我们的方案如下:五折交叉验证后得到的训练集异常概率,遍历0.0010.5之间阈值,计算训练集F1_score,得到最优的阈值list

image.png


l  经常会出现两个连续1ID

有一部分ID的异常点经常是连续出现的(2个),根据这种情况,我们采用的方案是:

1)确定必然是异常的点(异常概率大,超过0.5)。

2)在异常点的上下寻找概率较大的点,也将其记作异常点。

image.png


l  模型概率加阈值划分

最后一类问题是我们最头疼的一类问题,某些谷底的值,因为下降过程非常平滑,模型有时不能判断其是否是异常,这种我们通过模型概率先找出异常点,再划分阈值来判断异常。

image.png

最终评分0.9403,线上排名第10,复核排名第9

五、总结

1.        首先分ID训练优化模型,对于较少ID的比赛(比如本次比赛)还可以,对于ID多的恐怕会相当复杂,所以还是很期待前排“1”佬们的方案。

2.        我们提供的方案主要还是单模,难免在最后阶段进入瓶颈期。后面还要更多考虑模型融合,发掘不同模型之间的优势,取长补短。

3.        特征挖掘思路较为常规,还需要进行更深入的挖掘,毕竟特征为王,挖到几个强特可能直接分数暴增。

4.        对于华为NAIE平台,刚开始使用的时候还是挺困难的,但是一天的摸索后,就一句话:NAIE真香。

----------------------------------------------------分割线---------------------------------------------------------

5.        对于赛制:没有B榜可能是唯一的槽点吧,全都朝着A棒拟合,模型泛化能力检测不够吧。有点慈善赛的味道(不是为了买代码)。

6.        希望下次还能有机会参加华为的比赛,和各路高手比拼。和GREAT再战300回合!

 

作者:派森挖掘机、爱撒谎的小超


点赞 举报
分享

分享文章到朋友圈

分享文章到微博

游客

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