写在最前面,第一场比赛的第一轮早已结束,lz组的团队已被淘汰~跟lz组队的人跟lz一样也是新手菜鸟,参加比赛只是兴趣与好奇。现在第二场比赛开始了,lz还会继续玩下去(虽然lz校内科研、项目压力都很大)~
官方给了两个集合表——用户在商品全集上的移动端行为数据表和商品子集表。行为数据里面分别有用户名、商品名、行为类型(浏览、收藏、加购物车、购买)、地理位置、商品类别、行为时间。商品子集里面有商品名、商品类别、地理位置。
题目是根据官方给的一个月的用户行为数据,预测这个月过完的第一天在商品子集中用户可能购买的商品。评分使用的是正确率与召回率的加权。
首先,我们想到的是根据行为的统计特征进行购买的预测,简单的说就是假如用户加入购物车,那么购买的可能性就很大,收藏,浏览产生购买行为的可能性递减。
同时还有地理位置这组信息,从经验判断,地理位置相近购买可能性也越大,在武汉的童鞋一般不会买杭州的电影票或者餐券吧。(这里要说明下,因为是移动端行为数据,很大一部分是类似电影票、门票、代金券、外卖等等商品,当然也肯定会有我们熟知的淘宝物品。)
还有一点,很显然商品子集里的商品是行为数据表中商品的子集(也就是说假如购买了pad,会继续购买个pad套,而这个pad套在子集里,pad只在行为数据表里,需要寻找出这样一种规律)。
初期,我们把侧重点放在题目的“推荐”两个字上了,搜集并研究了大量的“推荐算法”,然后也分析整理出了一套模型,但是在最后要得出结果那一步发现,根本不是题目要的结果。题目要的就是在那一天用户会购买那些商品,而不是用户可能对那些商品感兴趣。这样我们就推翻了我们的这条路,当然我们自己在这条“黑路”上也学到了不少,后面我会单独总结整理一下,我们关于“推荐算法”的种种。
后来,看了一些官方给的建议。我们才明确,简单的说我们要做就是二分法的预测,买还是不买。然后我们就想到对用户行为抽象为特征向量,利用时间划分数据,使用机器学习的方法训练模型,对某一天的购买行为进行预测。我们在这方面也是从开始学习,到做了一些工作,分析总结。虽然最后的结果还是差强人意,最终是948名,但是中间有最好排名303过(最终取前500进入第二轮)。关于这部分的工作,后面我也会单独总结整理的。这里就先开个总结的头,逼自己把做过的东西整理出来~~~