大赛连接算法
https://tianchi.aliyun.com/getStart/information.htm?spm=5176.100067.5678.2.6d75153cK2qkgK&raceId=231522测试
总之,就是给你必定量用户在一个月时间(11.18~12.18)以内的移动端行为数据(D),而后去判断这些用户在(12.19)对商品子集(P)的购买数据编码
刚看到这个题目,一头雾水,哪些是训练集?怎么测试?.net
结合通常的购物习惯,用户把商品加入购物车之后的当天或者次日是最可能产生购买行为的,过了一个月以后极可能想买的欲望会下降不少,也就是说,把用户前一个月的行为进行加权平均,越靠近12.19号的行为权重更大,这不是妥妥的指数加权平均算法吗?设计
关于指数加权平均数,能够参考此文:https://blog.csdn.net/u014525760/article/details/79331898orm
具体思路和步骤:htm
1.给定的数据集只提取user_id,item_id,behavior_type,time,空间标识和商品标识先不用吧blog
2.把time的时间简化为1-30的int数据get
3.去重,去掉同一用户对同一商品在同一天的屡次相同行为it
4.把behavior_type用3个one-hot编码表示,用0-没有添加购物车,1-添加购物车,0-没有收藏,1-收藏,0-未购买,1-购买
5.到底前一天的添加购物车或者收藏行为对次日的购物行为的权重有多大呢?能够用12.18是否购买和前29天的购物行为推算
6,初步肯定计算公式(迭代公式):
某一日的购买指数是前一天的心仪指数和前一天的购买指数的加权平均(初步估计系数为0.8,加购物车购买系数先设计个0.8,收藏购买系数先设计个0.2吧,不要问我为何,我也不知道,先试试)
依次计算每个用户对一个商品的心仪指数,例如:
只在12.17日加了购物车而且收藏的话就是:0.2*(0.8*1+0.2*1)
分别在12.15日收藏和在12.18日加入购物车的话就是:0.2^3*0.8*(0.8*0+0.2*1)+0.8*(0.8*1+0.2*0)
7.由于无论是加购物车仍是收藏,以后购买的几率都是很小的,因此,咱们最后求到的购买指数都不是反映实际购买率的,购买指数从大到小选择前1%做为咱们最后筛选的最终结果
ok,这就是个人所有思路,如今开始代码阶段