天池o2o消费券比赛速记

比赛地址https://tianchi.aliyun.com/competition/entrance/231593/introduction

包括了比赛的各种细节、数据等等

我是参考了第一名的方法

特征+xgboost

第一名的代码和思路参考https://github.com/wepe/O2O-Coupon-Usage-Forecast

第一名给出了思路和代码但是不够详细,有些细节也难以理解,在论坛上找到了一位参考第一名的思路但是实现更加完善的方案

https://blog.csdn.net/weixin_42001089/article/details/85013073

重点划分:

算法是通用的、主要难点就是在特征工程,数据本身字段很少,能够提取到的特征很有限(我自己弄了半天的特征+xgboost试了多次AUC都是0.5。哭了 )

首先是简单的数据清洗、异常值处理、类型单位转换、数据分析等

第一名的思路利用了窗口,通过时间窗口将数据分为多个训练和测试集,测试集时间>训练集

训练集特征用到了提取label相关的字段(提取类似消费习惯、付费习惯之类的特征),测试集不涉及label相关字段,最终的特征是训练集和测试集特征的join,因为是通过之前的消费习惯预测未来是否会使用优惠券付费

还有一点有影响的就是调参(这个比较费时)

调参思路:

1、先使用较高的学习率例如0.1并利用xgboost自带的cv函数来获得一个默认参数下树的个数num_round_best即n_estimators

2、接着获得决策树相关的最优参数

3、xgboost正则化(防止过拟合)参数调优

4、降低学习率,获得理想参数

调参参考

https://blog.csdn.net/han_xiaoyang/article/details/52665396

https://zhuanlan.zhihu.com/p/34000803

你可能感兴趣的:(机器学习)