电商用户行为分析——淘宝用户的行为模式分析

2
回复
164
查看
[复制链接]

微信扫一扫 分享朋友圈

1

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2023-1-9 09:11:40 | 显示全部楼层 |阅读模式
一、分析背景

淘宝是中国电商市场当之无愧的“王者”,其用户量规模之大达到了亿级。但是随着电商行业的迅速发展,该行业的红利期已经走到了尾声,单单靠着中国市场的庞大人口红利不是电商企业发展的第一策略。电商企业现在渐渐转入精细化运营的阶段,从注重增量转向注重存量。本文以淘宝用户一周的行为数据,探究淘宝用户的购物模式存在的问题。
二、理解数据

本数据集(UserBehavior.csv)包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的组织形式和MovieLens-20M类似,即数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。本数据来来源于阿里云天池。
数据集中有以下字段:
名称含义
用户ID字符串类型,用户ID
商品ID字符串类型,商品ID
商品类目ID字符串类型,商品所属类目ID
行为类型字符串,枚举类型,包括【'pv'(点击), 'buy'(购买), 'cart(加入购物车)', 'fav'(收藏)】
时间戳整型,行为发生的时间戳
数据集的大小情况为:用户数量有987,944条,商品数量为4,162,024条,商品类目数量为9,439条,所有行为数量为100,150,807。
由于数据量巨大,本报告只使用了10万条数据作为样本,得出的结论存在一定偏差。
三、分析思路

本报告从两个角度进行分析。第一个角度是研究淘宝用户的转化率,发现转化率低这个问题,接着从用户购物流程和淘宝的推荐机制两个可能存在的问题根源进行分析。第二个角度是淘宝用户不同时间的行为模式,旨在探究用户活跃的高峰和低谷,同时比较一天内用户的活跃节点。
四、数据清洗

1.选择子集
本报告将使用所有数据条目进行分析,对时间戳进行分解,得到购物日期和购物时间。使用以下命令。
alter table ub add dates varchar(255);
update ub
set dates=from_unixtime(timestamps,'%Y-%m-%d');
alter table ub add hours varchar(255);
update ub
set hours=from_unixtime(timestamps,'%h:%i:%s');2.列表重命名
为了方便分析,用英文对列进行命名。


3.删除重复值
因为每个用户每一秒钟不可能重复出现两次行为,所以对每个用户同一时间内的行为计数检查是否存在重复值。
select userid, time, itemid
from ub
group by userid,time,itemid
having count(userid)>1;结果显示不存在重复值。
4.缺失值
将每列数据设置成不是null,并且对每一列进行计数
select count(*), count(userid), count(itemid), count(categoryid), count(behavior),
count(time)
from ub;

结果显示没有缺失值。
5. 异常值处理
检查所有行为是否都出现在2017年11月25日至2017年12月3日之间之间。
使用
select dates
from ub
where dates > '2017-12-3' or dates < '2017-11-25';得到了44条范围日期之外的数据,将这些数据删除,
delete dates
from ub
where dates > '2017-12-3' or dates < '2017-11-25';至此,数据清洗工作结束。
五、分析过程

1.基础研究
首先对整体数据的概况做一个总结归纳,使用以下命令
select count(distinct userid) as 用户总数, count(distinct itemid) as 商品总数,
count(distinct categoryid) as 商品类型总数, count(distinct behavior) as 行为类型总数,
count(distinct dates) as 天数
from ub;得到以下数据


可以看到,在这10万条数据里,一共记录了983位用户在9天内的行为信息。在这9天内,所有行为涉及的商品总数为64440件,一共包含了3128中种商品类型。
2.淘宝用户转化率分析
首先对淘宝用户在购物的整个流程中的转化率进行分析研究。使用以下命令,
select
sum(case when behavior='pv' then 1 else 0 end) as pv人数,
sum(case when behavior='cart' then 1 else 0 end) as cart人数,
sum(case when behavior='fav' then 1 else 0 end) as fav人数,
sum(case when behavior='buy' then 1 else 0 end) as buy人数
from ub;



从图中可以看出,点击行为占所有行为比例最高,达到了89.71%。其他行为的占比急剧下降,添加购物车行为占比5.45%,收藏行为人数占比2.75%,购买人数占比2.1%。这说明从点击到达成购买行为这一过程中,转化率并不高,那么是什么导致这个现象的发生呢?
我们提出两个假设,第一个是购物流程不同对用户购物存在影响。电商存在的夹点就是用户在确定购买前的流程,我们探究流程的繁琐程度对用户决策的影响,同时探究用户在淘宝购物时的购物模式。第二个假设是淘宝的推荐机制推荐的商品是否与用户购买的商品不匹配,导致了用户购买转化率低。


假设一:购物流程对转化率有影响
首先从整个购物流程出发,上述图表是用户行为的概况,但是不是所有流程详细的转化率数据。因为淘宝的购买流程可以分成几个不同类型,我们研究不同的购物流程的消费模式有何不停。
淘宝的购物流程可以分成以下几类:

  • 点击→购买
  • 点击→收藏→购买
  • 点击→加入购物车→购买
  • 点击→收藏→加入购物车→购买
下面研究每个流程的转化率
首先将每件商品与每个用户产生联系后所涉及的流程进行计算,当pv为1,其他为0时,说明该用户只对该商品进行了点击行为。当pv为1,buy为1时,说明该用户点击这个商品后直接达成了购买行为。
select userid, itemid,
sum(case when behavior='pv' then 1 else 0 end) as pv,
sum(case when behavior='fav' then 1 else 0 end) as fav,
sum(case when behavior='cart' then 1 else 0 end) as cart,
sum(case when behavior='buy' then 1 else 0 end) as buy
from ub
group by userid, itemid;

使用上述命令后,得到了表格内的数据格式,将这段命令存储为视图并命名为process,方便后续使用。

  • 点击→购买 和 点击→流失
使用以下代码
select count(userid) as 点击→流失
from process
where pv>0 and fav=0 and cart=0 and buy=0;
select count(userid) as 点击→购买
from process
where pv>0 and fav=0 and cart=0 and buy>0;得到





  • 点击→收藏→购买 和  点击→收藏→购物车→购买
select count(userid) as 点击→收藏
from process
where pv>0 and fav>0;
select count(userid) as 点击→收藏→购买
from process
where pv>0 and fav=0 and cart=0 and buy>0;
select count(userid) as 点击→收藏→购物车
from process
where pv>0 and fav>0 and cart>0 and buy=0;
select count(userid) as 点击→收藏→购物车→购买
from process
where pv>0 and cart>0 and fav>0 and buy>0;








  • 点击→加入购物车→购买
select count(userid) as 点击→加入购物车
from process
where pv>0 and cart>0 and fav=0;
select count(userid) as 点击→加入购物车→购买
from process
where pv>0 and cart>0 and fav=0 and buy>0;



综合得到的数据,得到下图


可以看到,经过点击页面查询商品后直接购买只占了点击后行为的1.4%,转化率非常低。但是在用户将商品加入购物车和收藏栏里后,直接购买的转化率分别是9.2%和8.5%。在收藏后再加入购物车后,购买的转化率提高到了31%。这说明用户在使用淘宝时,更多是有目的性的购物,非主动性的受到界面推荐引导的购物占比很低。
假设二:推荐机制推荐商品与用户意愿不匹配
要研究推荐机制推荐的商品是否与用户意愿匹配,首先要找出淘宝推荐的商品种类。这里我们使用点击数排名前十的商品类别代表商家推荐的商品。
select categoryid, count(behavior) as 点击量
from ub
where behavior='pv'
group by categoryid
order by 点击量 desc
limit 10;

点击量最高的是4756105类商品,第二位和第三位分别是3607361和4145813类商品。
再研究用户购买的商品类别前十
select categoryid, count(behavior) as 购买数
from ub
where behavior='buy'
group by categoryid
order by 点击量 desc
limit 10;

购买量最高的类别是2735466类商品。
对比点击量前十和购买量前十的商品类别,我们发现有五类商品是重合的。


这说明50%推荐的类别进入了购买量前十,这个数据没有对比无法得到相对高低,那么我们来研究商品的点击量和用户购买的商品是否一致。同理,我们得到
select itemid, count(behavior) as 商品点击量
from ub
where behavior='pv'
group by itemid
order by 商品点击量 desc
limit 10;
select itemid, count(behavior) as 商品购买量
from ub
where behavior='buy'
group by itemid
order by 商品购买量 desc
limit 10;



经过对得到的数据进行比对,我们发现用户购买的商品前十与推荐商品前十没有重合,说明推荐的商品与用户的意愿不匹配。综合上面分析得到的图表,淘宝的推荐机制没有起到激励消费者的作用,推荐的类别与用户购买的类别仅仅有50%的重合度,用户购买的商品与推荐的商品的重合度更低。说明假设二成立。


综上,用户转化率低的原因主要是淘宝的推荐机制不合理造成的。用户的购物流程没有明显的对决策产生影响的表现,但是数据表现出用户主要行购物偏多,对首页的商品推荐的转化率非常低,从侧面反映出淘宝推荐机制的不合理。
3.用户购买行为与时间的关系
我们研究时间对用户消费行为的影响,主要考虑两个方面,分别是以天为单位,工作日和周末客户购买行为的区别,另一个是每天以小时为单位,客户在一天中的活跃高峰和低谷期。下面是研究时间与用户行为的思路导图。



  • 工作日和周末的日活区别
本报告将行为发生的数量为用户活跃度。
select dates, count(behavior) as 活跃度
from ub
group by dates
order by dates asc;

以上是2017年11月25号到12月3号每天的活跃度,从表中可以看到在12月3号和12月3号两天出现了一个明显的活跃高峰期,而这两天恰巧是周末,这说明用户在拥有更多空闲时间的周末,会更加频繁访问淘宝,发生购买行为。那么从另一个角度进行分析,用户购买商品的数量是否也同样呈现这样的分布呢?
select dates, count(behavior) as 日购买
from ub
where behavior='buy'
group by dates
order by dates asc;

可以看到,在周末两天,购买量也呈现一个小高峰,说明用户在周末确实会更加活跃,浏览更多商品以及发生更多购买行为。

  • 一天内不同时间段的用户行为区别
select hour(hours), count(behavior) as 活跃度
from ub
where behavior='pv'
group by hour(hours)
order by hour(hours);
select hour(hours), count(behavior) as 购买量
from ub
where behavior='buy'
group by hour(hours)
order by hour(hours);



从两个表的整体趋势可以看出,用户在每天使用淘宝的过程中,以凌晨2点开始,到晚上的12点,活跃度一直在逐渐上升,一般在每天的22点或23点迎来高峰。而淘宝用户的下单时间有几个高峰,分别是中午的12点,下午2点,和晚上的10点。
综上所述,淘宝用户行为与时间存在联系。周末的时间里,淘宝用户更加活跃,有更高的商品购买行为。在每一天内,淘宝用户的活跃度从早上开始上升,一直到晚上10点后11点达到顶峰。淘宝用户在每天的空闲时间有更多购买行为,如中午午休和晚上睡觉前的时间。
4.RFM分析(客户价值分析)
RFM模型是衡量客户价值和客户创利能力的重要工具和手段。本报告使用RFM模型,对用户进行分类,方便淘宝对客户进行针对性运营。
RFM代表了三个指标,分别是
R(Recency):上次消费到现在的时间间隔
F(Frequency):用户在一段时间内购买的频率
M(Monetary):用户在一段时间内消费的金额
本报告将时间范围设定在2017年11月25日到12月3日这段时间范围内。使用RFM模型进行分析的步骤如下:


由于本报告使用的数据缺乏消费金额,这里我们不对消费金额进行分析。以下是本报告设定的RFM的评分标准。
分值RF
17-8天1-5次
25-6天5-10次
33-4天10-15次
42天以内15次以上
首先计算R和F的平均值,先创建两个视图r和f,再对其求平均值
create view f as
select `ub`.`userid` AS `userid`,
sum((case when (`ub`.`behavior` = 'buy') then 1 else 0 end)) AS `F`
from `ub`
group by `ub`.`userid`;
create view r as
select `ub`.`userid` AS `userid`,
(to_days('2017-12-03') - to_days(max(`ub`.`dates`))) AS `R`
from `ub` where (`ub`.`behavior` = 'buy') group by `ub`.`userid`;
select avg(F)
from f;
select avg(R)
from r;得到


接下来计算各个用户的分值
select userid,R,
(case when r=7 or r=8 then 1
when r=5 or r=6 then 2
when r=3 or r=4 then 3
when r<=2 then 4 else 0 end) as r评分
from r

select userid,F,
(case when f between 1 and 5 then 1
when f between 6 and 10 then 2
when f between 11 and 15 then 3
when f>=15 then 4 else 0 end) as f评分
from f;

select 用户类型, count(userid) as 用户数量
from(select userid,
(case when r评分>2.4501 and f评分>2.1373 then '重要价值客户'
when r评分>2.4501 and f评分<2.1373 then '重要发展客户'
when r评分<2.4501 and f评分>2.1373 then '重要保持客户'
when r评分<2.4501 and f评分<2.1373 then '重要挽留客户'
end) as '用户类型'
from 评分 ) as a
group by 用户类型;得到


可以看到,淘宝用户集中在重要发展客户这个群体中,说明这些用户最近都有购物行为,但是购物频率并不高,淘宝应该专注于提高这些用户的消费频率。比如可以针对这些用户推荐他们购买商品配套的系列商品来吸引消费。对于重要挽留客户,淘宝应该尽快调查这些用户停止消费的原因。对于重要价值用户,淘宝应该使用vip会员的方式给予他们优惠,留住这些珍贵的客户群体。
六、结论及建议

1.淘宝的推荐机制存在问题,用户在进入页面或者app首页后看到的商品与自己的意愿不相符,造成淘宝用户购买商品时更多是主动性购物,而不是被推荐机制吸引购物。淘宝应该调整其推荐机制,找到用户真正的购物需求,向其有针对性的推荐商品。
2.用户的活跃度和购买量具有相关性。在周末时,淘宝的用户活跃度明显增高,并且会有更多用户购买商品。在一天之中,淘宝的用户活跃度从早上开始上升,到22点达到顶峰。淘宝用户的购买行为多出现在一天之内的闲暇时刻,比如中午午休以及晚上入睡前夕。淘宝可以针对用户购物时间的特性,进行精细化的宣传和运营。
3.经过RFM分析,淘宝的用户群体集中早重要发展用户身上,说明需要提高用户的消费频率。
回复

使用道具 举报

3

主题

12

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2025-6-27 02:39:15 | 显示全部楼层
看起来不错
回复

使用道具 举报

3

主题

10

帖子

20

积分

新手上路

Rank: 1

积分
20
发表于 2025-8-17 19:12:49 | 显示全部楼层
为了三千积分!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表