复制这段内容后打开百度网盘手机App,操作更方便哦
7月中旬答辩结束,大概三个月后才抽空完成这篇比赛总结,争取参加过比赛都有一个总结分享。
队伍:珞珈山第一菜鸡
这次比赛是和腾讯广告算法大赛同步进行的,在这场比赛中自己的工作并不是很多,主要还是队友给力,另外B榜前的一次组队也提升不少,同时呢能进入最终决赛答辩非常感谢前排两个小号,在此向你们致敬!
接下来奉上此次比赛完全方案,干货满满!!
本文内容:
目的:本次大赛通过给出近3个月购买过目标商品的用户以及他们在前一年的浏览、购买、评价等数据信息,需要参赛者预测下个月可能购买的用户以及相应用户第一次购买的时间。
数据理解:数据主要包括用户的基本信息,商品的基本信息,用户订单信息,用户浏览信息,用户评论信息。由于需要预测的是9月份购买的用户以及对应的第一次购买时间,因此时间的相关信息显得尤为重要。
目标解读:本次大赛分为两个部分,一个是预测购买的用户集合,一个是相应的第一次购买时间。第一个目标毫无疑问是个二分类问题,通过预测的购买概率并从大到小排序就能够确定对应的50000个用户。第二个问题可以看成回归问题或者多分类问题,通过模型预测出对应的天数(如果回归就取整)。
评价指标:
(1)用户评价
其中,
表示选手预测的第 i 个用户的正确标志,当预测正确时
=0。N为选手提交的记录数。
(2)用户下单日期评价
其中,
为答案用户集合,
表示用户 u 的预测日期与真实日期之间的距离。
我们主要分析的是用户购买间隔的来做的数据分析,如下图
数据预处理
由于S1,S2可以看作两个问题,所以特征部分我们分为两个部分进行构造
S1:
用户订单特征:用户订单数,用户有过购买的月份数,订单中商品的属性特征(统计值)等。
用户行为特征:用户浏览的天数,用户浏览的月份数,浏览商品的属性特征(统计值)等。
时间特征:用户订单的时间分布特征,用户浏览的时间分布特征,用户评论的时间分布特征,订单的时间间隔特征,浏览的时间间隔特征,最后订单、浏览、评论的时间特征等。
S2:
基本特征:用户基本特征(age,user_lv_cd等),商品的基本特征(para_1,priced等)
统计特征:
时间特征:
比率特征 : 购买非目标的数量/购买目标的数量等
S1:
由于线上需要我们预测9月份是否购买,因此在线下我们可以假设8月份未知,用8月份之前的数据来提取用户集和特征。同时,为了扩大样本量,我们进行了滑窗采样:
同时,为了保证线上线下一致性,我们取了标签区间前3个月购买过目标品类的用户集作为我们构建训练数据的用户集合,标签日前9个月提取特征。
S2:
由于线上需要我们预测9月份是否购买,因此在线下我们可以假设8月份未知,用8月份之前的数据来提取用户集和特征。同时,为了扩大样本量,我们进行了滑窗采样,分为两组训练集,一组测试集:
(我们放弃了6月,因为分析数据得知618出现流量异常,同时我们也用了去除流量异常的节日,发现效果不佳。)
为了保证线上线下一致性以及其他用户的干扰,我们取了标签区间前3个月购买过目标品类的用户集作为我们构建训练数据的用户集合,标签日前1,3,6,9个月提取特征。
S1:
S2:
S1合并S2:
S1我们获得购买用户的集合,S2获得每个用户下次购买的时间
res1=pd.read_csv('../submit/S1.csv')
res2=pd.read_csv('../submit/S2.csv')
# s1,s2合并
res1=res1.merge(res2,on='user_id',how='inner')
# 进行排序
res1=res1.sort_values(by='pre',ascending=False)