IJCAI18大数据比赛经验总结

背景

  • 严格意义上第一次从头到尾参加的大数据比赛,有很多收获,也有很多遗憾。
  • 赛题描述:阿里妈妈搜索广告转化预测,损失函数是logloss,一共两轮,每轮分A、B榜,3.1~5.15,耗时两个半月,共5204队参赛。
  • 结果:Top 1.4%

经验教训

  • 总体步骤:
    • 先审题,关注:题目干什么、采样方式、目标函数。
    • 建立pipeline:EDA、划分数据集、预处理、特征工程、模型训练
  • EDA很重要
    • 做EDA要根据自己猜测(先验)去有目的、有选择地做
    • 做和目标相关的
    • 形式:有但不局限于统计、画图、图标、排序
    • 用于:加特征、划分训练集
  • 数据集的划分
    • 很重要
    • 训练验证数据分布一定要和测试数据分布一致(靠EDA),才能保证线上线下同步!!!
    • 尽量保持线上线下同步,有差距没关系。
  • 特征工程
    • 挑选需要的初始特征列传入特征生成函数,别把所有数据都传进去
    • 用多进程/多核跑特征
    • 做特征要快,快速尝试、快速迭代,不能把时间浪费在做特征上
    • 每个特征的生成代码分开,便于并发运行
  • 模型融合很有用:xgb和lgb种虽然自带sample,但是再对这两个模型的输入进行sample,还会有提升
  • 每次线上提交只验证一个点,加特征慢慢加(每次加一个或两三个相似的)
  • 要对业务很熟悉。
  • 多申请点小号,真好用