之前种种原因,也没能在 Kaggle 上开始打比赛。这次在公司组织的 MDD Cup 2017 侥幸获得第四。这真得感谢领导支持允许在工作时间参与公司内部这个赛事,感觉这个最重要还是时间投入。
自己也是新手,遇到种种问题,总结一下以为前车之鉴:
- 熟悉模型工具各参数,自动模型调参,调到最优;
- train/val/pred 特征数据分布、缺失比例要一致,( train 覆盖较多的数据,考虑比如处理置空跟 test/pred 一致),特征数据覆盖率尽量高(从过去一周变过去所有);
- 使用稳定的 val set,保证 val set 的分布跟 pred 一致,loss 变化也一致并能对应线上 Public Leaderboard 表现;
- 各种 magic feature、穿越特征、组合特征的尝试及使用(太多后可以用特征选择处理);
- 差异化的模型融合:特征差异、数据采样差异、数据分布修改(线性/非线性、lightgbm/xgboost 融合等);
- 不要有 bugs,产生特征数据都肉眼看看防止不出错(比如我quater/time 计算原来就计算成 UTC 的了);
- EDA 看数据问题、分布、loss 较大的 case 等。
自己遇到的效率问题:数据生产跟 trainning 各中间环节没有解耦开,导致中间数据生成过程延迟而影响最后模型训练,耗费关键的最后两天的太多时间。
听前几名分享的感觉重要的几点值得借鉴的经验:
- label 变换 log, log shift 等
- 融合:特征、label、模型的差异化
其他小伙伴网上分享的也很值得借鉴:
Original post: http://blog.josephjctang.com/2017-11/first-try-on-kaggle/