背景
- 严格意义上第一次从头到尾参加的大数据比赛,有很多收获,也有很多遗憾。
- 赛题描述:阿里妈妈搜索广告转化预测,损失函数是logloss,一共两轮,每轮分A、B榜,3.1~5.15,耗时两个半月,共5204队参赛。
- 结果:Top 1.4%
经验教训
- 总体步骤:
- 先审题,关注:题目干什么、采样方式、目标函数。
- 建立pipeline:EDA、划分数据集、预处理、特征工程、模型训练
- EDA很重要
- 做EDA要根据自己猜测(先验)去有目的、有选择地做
- 做和目标相关的
- 形式:有但不局限于统计、画图、图标、排序
- 用于:加特征、划分训练集
- 数据集的划分
- 很重要
- 训练验证数据分布一定要和测试数据分布一致(靠EDA),才能保证线上线下同步!!!
- 尽量保持线上线下同步,有差距没关系。
- 特征工程
- 挑选需要的初始特征列传入特征生成函数,别把所有数据都传进去
- 用多进程/多核跑特征
- 做特征要快,快速尝试、快速迭代,不能把时间浪费在做特征上
- 每个特征的生成代码分开,便于并发运行
- 模型融合很有用:xgb和lgb种虽然自带sample,但是再对这两个模型的输入进行sample,还会有提升
- 每次线上提交只验证一个点,加特征慢慢加(每次加一个或两三个相似的)
- 要对业务很熟悉。
- 多申请点小号,真好用