一、比赛背景

O2O:全称Online To Offline,线上线下电子商务,是把线上的消费者带到现实的商店中去:在线支付线下商品、服务,再到线下去享受服务。通过打折(例如团购)、提供信息、服务(例如预定)等方式,把线下商店的消息推送给互联网用户,从而将他们转换为自己的线下客户。这样线下服务就可以用线上来揽客,消费者可以用线上来筛选服务,还有成交可以在线结算。通俗点说,你在网上买个优惠券去麦当劳消费。

二、比赛目标

已知:用户在2016年1月1日至2016年6月30日之间真实线上线下消费行为
预测:用户在2016年7月领取优惠券后15天以内的使用情况
评价标准:优惠券核销预测的平均AUC(ROC曲线下面积)。即对每个优惠券coupon_id单独计算核销预测的AUC值,再对所有优惠券的AUC值求平均作为最终的评价标准。

补充:
AUC的含义:area under ROC curve,ROC曲线下的面积
ROC:受试者工作特征,Receiver operating characteristic,分别以真正例率、假正例率为纵横轴,得到ROC曲线。具体地,给定m+个正例和m-个反例,根据学习器的预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点。然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/(m+));当前若为假正例,则对应标记点的坐标为(x+1/(m-),y),然后用线段连接相邻点即得。
具体计算方法:
假定ROC曲线是由坐标为{(x1x1x_1, y1y1y_1), (x2x2x_2, y2y2y_2),…,(xmxmx_m, ymymy_m)}的点按序连接而形成,则AUC可估算为:

AUC=12∑i=1m−1(xi+1−xi)(yi+yi+1)AUC=12∑i=1m−1(xi+1−xi)(yi+yi+1)

AUC =\frac{1}{2} \sum_{i=1}^{m-1} (x_{i+1}-x_i)(y_i+y_{i+1})

三、数据分析

1、数据介绍
详细介绍见天池新人实战赛O2O优惠券使用预测
2、数据初分析
(1)训练集线下数据中user_id和merchant_id各有很多重复,说明有很多活跃用户和活跃商家
(2)训练集线上数据中coupon_id大部分为null,即无优惠券消费行为
(3)活跃用户更可能使用优惠券,活跃商家的优惠券更容易被使用
(4)用户在周末使用优惠券的可能性更大
3、数据划分
依据消费日期将数据集划分为多份训练集和测试集

- 特征区间 预测区间
训练集1 20160101-20160413 20160414-20160514
训练集2 20160201-20160514 20160515-20160615
测试集 20160315-20160630 20160701-20160731

4、特征工程

(1) 其他特征,8个,从训练集1、训练集2和测试集的预测区间提取:
this_month_user_receive_all_coupon_count # 这个月用户收取的所有优惠券数目
this_month_user_receive_same_coupn_count # 这个月用户收到的相同优惠券的数量
this_month_user_receive_same_coupon_lastone # 这个月优惠券最远接受时间
this_month_user_receive_same_coupon_firstone # 这个月优惠券最近接受时间
this_day_user_receive_all_coupon_count # 一天内用户接收到所有优惠券的数量
this_day_user_receive_same_coupon_count # 一天内用户接收到相同优惠券的数量
day_gap_before # 用户上一次领取优惠券的时间间隔
day_gap_after # 用户下一次领取优惠券的时间间隔

(2) 优惠券相关特征,8个,从训练集1、训练集2和测试集的预测区间提取:
discount_rate # 优惠券折扣率
discount_man # 显示满了多少钱后开始减
discount_jian # 显示满减的减少的钱
is_man_jian # 返回优惠券是否是满减券
day_of_week # 显示时间是第几周
day_of_month # 显示时间是几月
days_distance# 优惠券领取日期和截止日之间的间隔天数
is_weekend //优惠券领取日期是否属于周末

(3) 商户相关特征,9个,从训练集1、训练集2和测试集的特征区间提取:
total_sales # 显示每个商品的销售数量
sales_use_coupon # 显示使用了优惠券消费的商品
total_coupon # 显示了商品的优惠券的总数量
coupon_rate = sales_use_coupon/total_sales # 卖出商品中使用优惠券的占比
merchant_coupon_transfer_rate = sales_use_coupon/total_coupon # 优惠券的使用率

merchant_mean_distance # 所有使用优惠券消费的用户与商户的距离平均值
merchant_median_distance # 所有使用优惠券消费的用户与商户的距离中位值
merchant_min_distance # 所有使用优惠券消费的用户与商户的距离最小值
merchant_max_distance # 所有使用优惠券消费的用户与商户的距离最大值

(4) 用户相关特征,14个,从训练集1、训练集2和测试集的特征区间提取:
count_merchant # 用户消费商户数量
user_avg_distance # 所有使用优惠券消费的商户与用户的平均距离
user_min_distance # 所有使用优惠券消费的商户与用户的最小距离
user_max_distance # 所有使用优惠券消费的商户与用户的最大距离
user_median_distance # 所有使用优惠券消费的商户与用户的中位距离
buy_use_coupon # 每个用户使用优惠券消费次数
buy_total # 用户消费次数
coupon_received # 用户领取优惠券次数
avg_user_date_datereceived_gap # 用户从领取优惠券到消费的平均时间间隔
min_user_date_datereceived_gap # 用户从领取优惠券到消费的最小时间间隔
max_user_date_datereceived_gap # 用户从领取优惠券到消费的最大时间间隔
user_coupon_transfer_rate = buy_use_coupon/coupon_received # 用户优惠券转化为实际消费比例
buy_use_coupon_rate = buy_use_coupon/buy_total # 用户使用优惠券消费占总消费的比例
user_date_datereceived_gap # 接受到优惠券的日期和使用之间的间隔

(5)用户-商户相关特征,9个,从训练样本date,date_received提取特征:
user_merchant_buy_total # 用户在商户消费次数
user_merchant_received # 用户领取商户优惠券次数
user_merchant_buy_use_coupon # 用户在商户使用优惠券消费次数
user_merchant_any # 用户在商户的所有消费次数
user_merchant_buy_common # 用户在商户普通消费次数
user_merchant_coupon_transfer_rate # 用户对商户的优惠券转化率
user_merchant_coupon_buy_rate # 用户对商户使用优惠券消费占总消费比例
user_merchant_rate # 用户对商户消费占总交互比例
user_merchant_common_buy_rate # 用户对商户普通消费占总消费比例

四、模型训练

选择xgboost模型,它是一种迭代提升方法,由多个弱分类器组成,其中底层的弱分类器一般是由决策树实现的,每棵树所学习的是上一棵树的残差。

模型训练部分后续再补充。

参考资料

第一名代码
O2O优惠券预测——思路总结
『 天池竞赛』O2O优惠券使用预测思路总结
天池大赛o2o优惠券第一名代码笔记之_extral_feature(1)
天池大赛o2o优惠券第一名代码笔记之_extral_feature(2)
天池O2O优惠券使用预测比赛–总结

天池比赛:o2o优惠券使用预测相关推荐

  1. 天池o2o优惠券使用预测(入门)

    一.前言 近期学习了一下天池中o2o优惠券使用预测的学习赛,主要任务是通过分析建模,精准预测用户是否会在规定时间内使用相应优惠券.这次的参与主要是学习为主,牛刀小试. 二.解决方案 数据分析:对于给定 ...

  2. 天池 O2O 优惠券使用预测思路解析与代码实战

    个人网站:redstonewill.com 前阵子因为机器学习训练营的任务安排,需要打一场 AI 比赛.然后就了解到最近热度很高且非常适合新人入门的一场比赛:天池新人实战赛o2o优惠券使用预测.今天, ...

  3. 【机器学习】天池O2O优惠券使用预测_系统性总结与心得

    Preface:上半年参加天池的O2O优惠券预测赛排名第二,同时参加了学校数据仓库老师的课程改革建设团队,于是把参赛经验总结成文,准备分享给该课程的学弟学妹.现在我把总结的参赛教程文章也发到CSDN上 ...

  4. Sklearn:天池新人实战赛o2o优惠券使用预测 part1

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 阿里云官网:天池新人实战赛o2o优惠券使用预测 数据集下载链接 ...

  5. Sklearn:天池新人实战赛o2o优惠券使用预测 part2

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 阿里云官网:天池新人实战赛o2o优惠券使用预测 数据集下载链接 ...

  6. O2O优惠券使用预测项目总结

    O2O优惠券使用预测笔记 前言 项目介绍 数据 评价方式 赛题分析 基本思路 数据集划分 特征工程 模型选取 过程及代码 导入python库 导入与划分数据集 特征工程 模型训练与调参 预测测试集 总 ...

  7. W12 - 999、O2O优惠券使用预测

    初学耗时:999h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 『   因为要去见那个不一般的人,所以我就不能是一般人.』  W99.阿里大学征服路 - W系列总纲   ...

  8. 『 天池竞赛』O2O优惠券使用预测思路总结

    目录 数据与评价方式 解决方案 数据划分 特征工程 算法及模型融合 模型融合 应用 线下评估 回顾 赛题地址:https://tianchi.shuju.aliyun.com/competition/ ...

  9. 天池O2O优惠券使用预测

    参考文献: 题目简介: https://tianchi.aliyun.com/getStart/information.htm?raceId=231593 https://blog.csdn.net/ ...

最新文章

  1. C语言 基础60题(5)
  2. 初次使用MyEclipse || Servlet 的生命周期
  3. C/C++语言函数中参数的入栈顺序
  4. OpenSessionInViewFilter作用及配置
  5. 用公式求e^x的近似值
  6. 使用OpenSSL工具制作X.509证书的方法及其注意事项总结
  7. 【译】技能测试解决方案:Python中的数据科学(一)
  8. HashMap 的深入学习
  9. java hsqldb_java – 运行脚本以使用HSQLDB创建表
  10. 把Sublime添加到Mac右键菜单
  11. vue-版的老虎机抽奖活动效果折腾小记
  12. 一年经验Java面试之MySQL事务隔离级别和MVCC
  13. Echarts折线图动态获取数据实例(附java后台代码)
  14. 自动驾驶系列(七)——聊聊人机交互中的DMS驾驶员监控系统
  15. QQ揭秘:如何实现窗体靠边隐藏?【低调赠送:QQ高仿版GG 4.2 最新源码】
  16. IDEA 中添加@author注释(live templates)
  17. Linux内核Makefile.txt文件翻译
  18. 2021计算机会议截稿时间,ICCV 2021即将截稿、NeurIPS 大会征稿通知... | AI 顶会动态一览...
  19. android 根据宽度调整字体大小,android 字体大小 根据分辨率 自动调整
  20. 《零基础学C语言》前言

热门文章

  1. [-128,127]内十进制转二进制
  2. 诱人的低代码,未到狂欢时 | 钛媒体深度
  3. 如何用Mac自带的QuickTime Player录制视频并制作GIF动图
  4. 行业 | 谷歌和亚马逊在赌场门口拉客,你上谁的船?
  5. 学界丨我这样预测了医疗AI的发展,或许你也可以(附论文链接)
  6. LifeKeeper 双机软件 集群软件 双机热备份软件
  7. 吃瓜(西瓜书-南瓜书)1、2章
  8. 使用IBM Rational Application Developer对Java应用程序进行性能分析
  9. 多普达(dopod)的来历与公司结构
  10. 【COCI11-12 #4】纠结的数【枚举+二分+容斥】