阿里巴巴移动推荐算法离线赛(一)数据初步分析
详细的学习了该篇https://blog.youkuaiyun.com/Snoopy_Yuan/article/details/72454636,自己也分享一次
1 题目分析
移动推荐算法赛题如下:
根据阿里巴巴平台上20000名用户于2014.11.18—2014.12.18时间段的某一时刻(精确到小时)对商品总体的行为数据(有四种行为:点击、收藏、加购物车、购买),构建一个模型预测2014.12.19日用户对商品子集的购买行为。数据采用CSV格式文件给出,如图1-1所示。结果评分采用准确率于召回率来计算,如图1-2所示。
图1-1 数据
图1-2 评分公式
由于赛题暗示的原因认为是要做推荐算法,但是比较了推荐算法和本赛题之后发现本赛题于推荐算法几乎没有关系。因为推荐算法的核心思想在于推荐用户可能会购买但他们自身并未发现的商品,而本赛题的核心在于从用户已经发现的商品里找到用户会在某天会购买的商品,这两者之间区别很大。
经过思考发现本赛题可以构建为一个二分类问题:将用户集合与商品集合组成用户商品对,然后构建模型对这些UI对分类到购买或不购买这两类。
2 初步数据分析
之所以需要这一步是因为需要对数据有一个初步的认识,初步观察出是否存在什么规律或者异常。
第一是使用python对20000名用户的在一个月的总行为数做一个统计。统计结果如图2-1与图2-2所示,其中图2-1横坐标为用户标签,纵坐标为用户数量,图2-2横坐标为行为数量,纵坐标为行为数量区间的用户数量。两图从不同方面反映了用户行为数量的特性。可以发现大部分用户行为数量都在3000以下,但是也存在用户行为数量超过20000的,这部分必然不是正常用户。
图2-1 用户行为数量
图2-2 用户行为数量分布
第二是一个月期间的商品全集与商品子集每天总行为数量的变化情况,统计结果如图2-3与2-4所示。可以发现商品全集与商品子集的数据有一定差异,而行为数量以周为单位周期性变化,每周五行为数量最少,周日行为数量最多,但是因为双12购物节导致2014.12.12附近的数据异常。
图2-3 商品全集一个月期间的每天总行为数量
图2-4 商品子集一个月期间的每天总行为数量
第三是统计每天24小时的用户行为数量变化情况,这里采用2014-12-17到2014-12-18两天的数据进行统计,结果如图2-5与2-6所示。可以发现四种行为数量均随着时间的推移周期性变化,周期为一天,而且图像一定程度上反映了人们休闲娱乐的时间规律。
图2-5 两日内各行为数量随时间变化情况
图2-6 两日内加购物车行为数量随时间变化情况
第四是统计用户行为的转化率,观察行为之间的关联。根据统计,点击后会购买的比率非常低;加购物车后会购买的比例为0.3;收藏后会购买的比例为0.65;被购买的商品其中0.87都曾经被加入购物车;被购买的商品其中0.12都曾经被收藏。显然加入购物车这一行为与购买具有极强的联系。
第五是统计购买与其他行为之间的时间差,因为题目中体现了时间差因素特别重要。统计结果如图2-7与图2-6所示。由此可以发现加入购物车或者收藏后时间越久购买的可能性越低。且如果商品被加入购物车,大部分购买都在加入购物车8小时内。
图2-7 behavior3 to behavior4 time interval
图2-8 behavior2 to behavior4 time interval