天池比赛:o2o优惠券使用预测
一、比赛背景
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 =\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优惠券使用预测相关推荐
- 天池o2o优惠券使用预测(入门)
一.前言 近期学习了一下天池中o2o优惠券使用预测的学习赛,主要任务是通过分析建模,精准预测用户是否会在规定时间内使用相应优惠券.这次的参与主要是学习为主,牛刀小试. 二.解决方案 数据分析:对于给定 ...
- 天池 O2O 优惠券使用预测思路解析与代码实战
个人网站:redstonewill.com 前阵子因为机器学习训练营的任务安排,需要打一场 AI 比赛.然后就了解到最近热度很高且非常适合新人入门的一场比赛:天池新人实战赛o2o优惠券使用预测.今天, ...
- 【机器学习】天池O2O优惠券使用预测_系统性总结与心得
Preface:上半年参加天池的O2O优惠券预测赛排名第二,同时参加了学校数据仓库老师的课程改革建设团队,于是把参赛经验总结成文,准备分享给该课程的学弟学妹.现在我把总结的参赛教程文章也发到CSDN上 ...
- Sklearn:天池新人实战赛o2o优惠券使用预测 part1
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 阿里云官网:天池新人实战赛o2o优惠券使用预测 数据集下载链接 ...
- Sklearn:天池新人实战赛o2o优惠券使用预测 part2
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 阿里云官网:天池新人实战赛o2o优惠券使用预测 数据集下载链接 ...
- O2O优惠券使用预测项目总结
O2O优惠券使用预测笔记 前言 项目介绍 数据 评价方式 赛题分析 基本思路 数据集划分 特征工程 模型选取 过程及代码 导入python库 导入与划分数据集 特征工程 模型训练与调参 预测测试集 总 ...
- W12 - 999、O2O优惠券使用预测
初学耗时:999h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 『 因为要去见那个不一般的人,所以我就不能是一般人.』 W99.阿里大学征服路 - W系列总纲 ...
- 『 天池竞赛』O2O优惠券使用预测思路总结
目录 数据与评价方式 解决方案 数据划分 特征工程 算法及模型融合 模型融合 应用 线下评估 回顾 赛题地址:https://tianchi.shuju.aliyun.com/competition/ ...
- 天池O2O优惠券使用预测
参考文献: 题目简介: https://tianchi.aliyun.com/getStart/information.htm?raceId=231593 https://blog.csdn.net/ ...
最新文章
- C语言 基础60题(5)
- 初次使用MyEclipse || Servlet 的生命周期
- C/C++语言函数中参数的入栈顺序
- OpenSessionInViewFilter作用及配置
- 用公式求e^x的近似值
- 使用OpenSSL工具制作X.509证书的方法及其注意事项总结
- 【译】技能测试解决方案:Python中的数据科学(一)
- HashMap 的深入学习
- java hsqldb_java – 运行脚本以使用HSQLDB创建表
- 把Sublime添加到Mac右键菜单
- vue-版的老虎机抽奖活动效果折腾小记
- 一年经验Java面试之MySQL事务隔离级别和MVCC
- Echarts折线图动态获取数据实例(附java后台代码)
- 自动驾驶系列(七)——聊聊人机交互中的DMS驾驶员监控系统
- QQ揭秘:如何实现窗体靠边隐藏?【低调赠送:QQ高仿版GG 4.2 最新源码】
- IDEA 中添加@author注释(live templates)
- Linux内核Makefile.txt文件翻译
- 2021计算机会议截稿时间,ICCV 2021即将截稿、NeurIPS 大会征稿通知... | AI 顶会动态一览...
- android 根据宽度调整字体大小,android 字体大小 根据分辨率 自动调整
- 《零基础学C语言》前言
热门文章
- [-128,127]内十进制转二进制
- 诱人的低代码,未到狂欢时 | 钛媒体深度
- 如何用Mac自带的QuickTime Player录制视频并制作GIF动图
- 行业 | 谷歌和亚马逊在赌场门口拉客,你上谁的船?
- 学界丨我这样预测了医疗AI的发展,或许你也可以(附论文链接)
- LifeKeeper 双机软件 集群软件 双机热备份软件
- 吃瓜(西瓜书-南瓜书)1、2章
- 使用IBM Rational Application Developer对Java应用程序进行性能分析
- 多普达(dopod)的来历与公司结构
- 【COCI11-12 #4】纠结的数【枚举+二分+容斥】