2020PAKDD 阿里巴巴智能运维算法大赛TOP20 ——磁盘故障预测问题比赛思路、难点与问题总结

2020PAKDD 阿里巴巴智能运维算法大赛_磁盘故障预测问题比赛思路、难点与问题总结

这次PAKDD比赛很高兴在钉钉群见到了桑榆、hyd、缺佬、杰少等等诸多大神,也很感谢一路相伴的两位队友,最后也很庆幸能拿到TOP20 (19/1173 )的排名。
比赛很刺激,但赛后的思考更重要。数据竞赛萌新JerryX在此全面总结一下本次比赛中的思路、尝试和遇到的问题,以待接下来进一步深入研究。**
2020PAKDD 阿里巴巴智能运维算法大赛TOP20 ——磁盘故障预测问题比赛思路、难点与问题总结_第1张图片
欢迎大家点赞,评论,提出宝贵的建议!!
[20200429更新]代码具体实现方法感兴趣的小伙伴,可以到github来围观哈!!!欢迎STAR!!
[20200429更新] 我的牛逼队友,对于这次比赛进行了更为全面详细的解题思路介绍,可以到隔壁CSDN博客(这里是博客链接)围观学习、点赞支持哈!!!

下面用思维导图对本场比赛我们队伍的方案做了一个简单的梳理:

【补充】特征工程说明:

主要做了以下特征工程:
在做特征之前,对Nan值进行了处理,采用三次样条差值补全nan。
由于有些数据前后nan值缺失较多,无法插值补齐,故插值之后还有少量nan值,
lgb模型可以自动处理nan值,故插值未对少量nan值做后续处理。
1、时序的差分特征
用当前log的feature与之前log的feature做差值,时间间隔可以取
例如 1 3 7,但由于设备有限,支撑不了这么多特征,
所以选取了部分特征做差值,同时取1 3 7 间隔差值的mean 来将三个
不同时间间隔的特征融合成一个。

2、初始状态变化特征
同样用当前log的feature与serial表中,disk的初始状态做差值,同样由于设备内存
限制,只选了几个做,如果全做,效果会好很多。

3、disk使用时长
一般来说disk 使用的时间越久,坏的机率越大
serve_time=dt-init_dt

4、数据丢失率特征
通过观察数据分布,发现数据缺失越多,越容易发生故障。
miss_data_rate=(disk当前为止所有log数量)/(disk使用时长)

5、其他特征
比如加窗的统计特征,由于是时间序列,可以构建加窗的聚合函数
由于设备原因,以及这些特征构建后发现效果不是很明显,故舍去

6、尝试的特征提取
对于时序数据,采用LSTM提取时序特征,初步尝试,效果不好,可能是数据
预处理不恰当,后期可以继续尝试。对于连续特征和部分可以当作离散特征的高阶
组合,可以采用DNN,FM 进一步挖掘。

对于数据的预处理还尝试用Log平滑化,以及标准化处理,但是从结果上看,
由于分布差异较大,标准化会改变feature一些特性,所以舍去这部分处理

相对于初赛增加了一些特征:

1、curr rate :当天统计分数,即特征在当天log中的评分
2、model count:发现disk分布中 拥有两种model的disk 坏其中一个的概率较大
3、 gather erro: 选取了几种对于错误描述的smart进行累和。
4、 gct_change: 带窗函数的特征变化率
5、 ewm_calculate: 指数平滑 取mean 和std
6、 ewm_var_diff : var*diff 增大变异程度
7、 scale_smart : raw/normlized 一种规范化的方式
8、 diff_cumsum : 在原差分的基础上,做了积分,仿照dpi类似的思想,累计误差
9、 data_smoother: 一种加权的线下处理
10、 tag_predict :给每个disk 打上tag的标签,一定程度上预知坏的类别

你可能感兴趣的:(数据竞赛)