今天来看看 Instacart Market Basket Analysis competition 的第二名方案,作者是 Yahoo! JAPAN 的一个数据科学家 Kazuki Onodera (aka ONODERA on Kaggle)
这个比赛是要根据顾客的历史购买记录,预测 Instacart 的消费者将再次购买哪种商品,这样可以在顾客需要这个商品的时候,货源是充足的。
模型:
用 XGBoost 建立两个模型,分别预测
-
之前购买的哪种商品会出现在下次购物篮里,
(用 6个GBDT 结果的平均值作为商品出现在用户下次购物中的预测概率) -
顾客的下一次购物是否包含任何一种之前购买过的商品。
(用 17 个 GBDT 的结果的加权平均作为用户下次购物中完全没有之前商品的概率)
特征:
分别从 顾客,商品,用户*商品,时间 的角度建立,下面列其中一些特征
顾客:
- How often the user reordered items
- Time between orders
- Time of day the user visits
- Features based on order sizes
- How many of the user’s orders contained no previously purchased items
商品:
- How often the item is purchased
- How many users buy it as "one shot" item
- Distribution of the day of week it is ordered
- Statistics around the time between orders
- Probability of being reordered within N orders
- Probability it is reordered after the first order
用户*商品:
- Number of orders in which the user purchases the item
- Days since the user last purchased the item
- Replacement items
- Whether the user already ordered the item today
时间:
- Counts by day of week
- Counts by hour
评估指标:
用 F1 得到概率
然后挑选阈值将概率转化为二进制 1/0 (Yes/No)
不同的购物记录它们的阈值也是不同的
推荐阅读 历史技术博文链接汇总
http://www.jianshu.com/p/28f02bb59fe5
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]
网友评论