o2o优惠券使用预测

本赛题提供用户在2016年1月1日至2016年6月30日之间真实线上线下消费行为,预测用户在2016年7月领取优惠券后15天以内的使用情况。

数据分析

  • 数据分为线上和线下,需要合并。
    • 经过观察,线下数据比线下数据多了距离字段,设置线上距离为0,合并。

特征工程

  • CSV提供了基本特征
  • 将数据分为几个实体
    • 用户特征
    • 商家特征
    • 用户—商家交互特征
    • 优惠劵相关的特征
  • 穿越特征( Leakage)

对于使用过去以及当下信息来预测未来的AI算法模型,特征穿越本质上是,特征中包含了未来的信息。

特征穿越的例子

以电商推荐系统为例,对于一条用户A于9:00时发生的行为记录(训练样本),只能使用9:00之前的信息构建特征(例如过去购买、点击、分享的商品,以及用户的一些属性,包括所在城市、性别等),来训练模型。

若使用了9:00之后的信息来构建特征,则会触发典型的特征时间穿越问题,因为特征中包含了未来的信息,这些信息极有可能隐含与标签(Label,即模型预测目标)相关的内容。

通过存在特征穿越的数据集训练的模型,部署上线后,由于预测数据不可能发生穿越(构建特征所使用的信息均来自当下或过去),因此与训练数据存在显著差异,导致模型表现差劲。

模型训练

  • 首先使用XGBoost、LightBoost、RandomForest进行训练,选取表现最好的模型。

  • 基于网格法进行调参

  • 需要cv确定训练步数,否则过拟合会引起性能下降

特征组合

  • 使用相关性分析选取重要特征,删除不重要特征观察模型性能是否下降。
  • 可以使用遗传算法迭代选取特征。

常用库

  • Pandas 读取CSV
  • XGBoost 支持GPU