PAKDD2020 阿里巴巴智能运维算法大赛 初赛复赛代码,初赛18名,复赛39名,虽然排名不太高,但初赛复赛没有修改代码,所以模型泛化能力比较强。
比赛官方网站:https://tianchi.aliyun.com/competition/entrance/231775/rankingList/1 所用数据请到官网下载。
-
训练文件:train.py, 该文件中有具体的说明和执行代码。基本思路为:
1.1 统计有意义的列,去除缺失值列,单一值列等。
1.2 对每个train文件打上label, 并存放到tmp_data中
1.3 内存不够,故将每个硬盘的数据单独保存一个csv
1.4 对每个硬盘的数据进行日期排序,确保不重复,缺失日期进行填充
1.5 准备数据集,按照月份来整合,作为示例,如下只整合201801这一个月份
1.6 使用LGBM训练单个模型,以下训练一个单模型,使用201803,201804月份的数据作为训练集,201806的为valset
1.7 模型融合,为了训练一个融合模型,此处准备训练集:从每个月份中随机抽取一定量的正样本和负样本,组成新的数据集
1.8 划分新数据集为train set, valset
1.9 训练融合模型
1.10 评估融合模型的好坏
-
预测test并提交:main.py,基本思路为:
2.1 准备subTestX,只获取某些列,填充硬盘中缺失的数据。
2.2 添加days列特征,统计某一天时某硬盘的使用天数,作为新的特征列。
2.3 使用多个基本模型来预测subTestX,得到多个概率值。
2.4 使用融合模型来预测这些概率值的类别,并整理后提交结果。
-
代码运行环境:Windows 64bit, 16G RAM, python==3.6.7
-
本项目所用模型下载地址:链接:https://pan.baidu.com/s/1OWzRxsVIiEBMgvaoGXLC4g
提取码:fju1