这个算法比赛是自己第一次打比赛,加入得有点晚了。整体来说这次比赛难度还是比较大的,除了比赛本身的难度外,因为各种规则的限制,导致做起来感觉束手束脚。不过本来就是抱着学习的心态来的,最终的成绩也不是很重要,简单总结一下学到的东西。
1.特征工程
通过这次比赛,算是对特征工程有了一些入门,一些基本的特征工程方法可以说掌握得七七八八了。此外,还学会了如何去处理时间相关特征。
2.python库
2.1pandas
以前对pandas不了解,感觉数据分析有numpy就够了,现在才知道numpy只是数据处理,数据分析pandsa才是主流。对于pandas的groupby, merge, apply, transform等函数都已经初步掌握,此外还可以通过其他库对pandas中如apply操作并行加速。
2.2seaborn
seaborn库封装得很好,在画图时候可以直接拿来用。
3.模型
本次比赛主要尝试了树模型和神经网络两种。
3.1树模型
这次用的是catboost,最主要是catboost使用GPU训练只需要改动几个函数参数,不需要配置环境。catboost这种库封装得太好了,所以可以集中在特征工程上,而且效果要好于神经网络。
3.2神经网络
官方给的baseline是基于tensorflow和deepCTR的DCN模型,相对于树模型要复杂得多。catboost可以自动处理缺失值,自动处理负数,而deepCTR需要自己处理,还要把特征划分为稠密、稀疏、变长序列三种。中间花了不少时间调参, 但是都没什么用,可见盲目调参是没有意义的。个人感觉如果论上限来说,还是神经网络更高,毕竟可以各种trick加魔改模型。
4.总结
历时半个多月,收获蛮大,后续继续加油!