https://tianchi.aliyun.com/dataset/649
由于userbehavior数据集的数据量较大,本次分析使用Navicat将前10万条数据导入MySQL。
选取10万条数据导入MySQL构成本次分析的数据集。
给导入的数据各字段命名
用户id:userid
商品ID:itemid
商品类目id:categoryid
行为类型:behavior
时间戳:timestamps
在导入数据时,将userid、itemid和timestamps设为主键,确保数据没有重复值。
select * from userbehavior
where userid is null or itemid is null
or categoryid is null or behavior is null
or timestamps is null;
将时间戳变为可读形式,并在原表中添加datetimes、dates和times两列用于存放时间戳、日期和时刻数据。
alter table userbehavior add datetimes varchar(255);
update userbehavior
set datetimes = from_unixtime(timestamps);
alter table userbehavior add dates varchar(255);
update userbehavior
set dates = from_unixtime(timestamps,'%Y-%m-%d');
alter table userbehavior add times varchar(255);
update userbehavior
set times = from_unixtime(timestamps,'%H:%i:%s');
查询日期的最大、最小值,判断是否存在不属于2017.11.25至2017.12.3之间的异常数据,结果如下。
select max(dates),min(dates)
from userbehavior;
删除异常值,并验证结果。
delete from userbehavior where dates < '2017-11-25';
select max(dates),min(dates) from userbehavior;
通过对用户进行统计并可视化,可以发现整个购买流程的用户转化率很低。具体表现为点击商品详情页的占比将近90%,但将商品加入购物车和收藏的仅为8.2%,且最终下单购买的行为仅占2.1%。
业务问题1:用户在不同购物流程下的流失情况如何?
首先,根据用户的4种行为,对用户的购买流程进行归纳,得到以下4种情况。
--用户行为视图
create view userb as
select userid,itemid,
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 userbehavior
group by userid,itemid;
#点击次数
select count(PV) 点击次数 from userb;
#情况1:用户点击后购买
select count(userid) 点击后购买 from userb
where pv>0 and (cart=0 and fav=0) and buy>0;
#情况1:用户点击后流失
select count(userid) 点击后流失 from userb
where pv>0 and (cart=0 and fav=0) and buy=0;
#情况3:点击、加入购物车或收藏后购买
select count(userid) 点击加购后或收藏后购买
from userb
where pv>0 and (cart>0 or fav>0) and buy>0;
#点击后加入购物车或收藏
select count(userid) 点击加购后或收藏后
from userb
where pv>0 and (cart>0 or fav>0);
#情况4:点击、加入购物车或收藏后流失
select count(userid) 点击加购后或收藏后流失
from userb
where pv>0 and (cart>0 or fav>0) and buy=0;
最后,根据统计结果总结各流程转化率和流失率,如下图所示。
由上图可知,点击后直接购买的转化率仅为1.36%,用户流失率为87.49%;点击后先加入购物车或收藏后再购买的转化率为9.51%,用户流失率为90.49%。
淘宝推送是根据用户日常的浏览行为数据,比如日常搜索的关键词,收藏和加购的商品,已经关注的店铺,还有购买记录等,综合判断来给用户进行推送可能感兴趣的商品。
如果淘宝的推送机制合理,那么推送的商品和用户需求的商品将会呈现较高的匹配度,从而用户最终的购买转化率也相应较高,从而推送的商品销量变高,变成热销商品;反之则较低,即表明用户流失严重。
本次分析使用假设检验分析方法对用户流失原因进行分析。分析思路如下图所示:
收集证据:首先,统计用户数量、商品数量、商品类别数和用户行为类型数,如下图所示。
#统计用户数量、商品数量、商品类别数和用户行为类型数
select count(distinct userid) 用户数,
count(distinct itemid) 商品数量,
count(distinct categoryid) 商品类别数,
count(distinct behavior) 用户行为类型数
from userbehavior;
上述统计结果表明,该数据集包含的商品类别比较丰富,商品数量充足。具体表现为该数据集包含983个用户,64440件商品,3128个类别,4种用户行为。
接下来,分析用户寻找的商品和淘宝推送的商品。
在这里,由于商品种类较多,主要查询点击次数排名前10的商品类别,查询结果如下:
#查询点击次数排名前10的商品类别
select categoryid 商品类别,count(1) 点击次数
from userbehavior
where behavior='pv'
group by categoryid
order by count(1) desc
limit 10;
从上图可以看出,商品类别4756105、3607361和4145813的用户点击浏览量最高。进一步选择这商品类别4756105、3607361,查询二级商品的点击次数top5,并统计查询结果。
从上图可以看出,商品类别4756105中,点击量最高的商品id是812879、3006793和3769601;商品类别3607361中,点击量最高的商品id是2331370、138964和3845720,且点击量均在30次左右。
由以上分析结果可知,用户的需求主要集中在商品类别4756105中,商品id为812879、3006793和3769601的商品和商品类别3607361中,商品id为2331370、138964和3845720的商品上。
查询购买量前10的商品
将点击量前10的商品类别和购买量前10的商品类别放到一起,如下图所示:
从统计结果来看,除商品类别4145813外,点击量TOP10的商品类别和购买量TOP10的商品类别基本不匹配。进一步统计点击量前三的商品类别:4756105,3607361,4145813的实际购买率。
可以看出点,击量前三的商品类别4756105、3607361和4145813的购买率分别是0.84%、0.89%和1.01%,购买率都非常低。
通过以上分析,可知淘宝推送的机制不合理。推送的商品和用户的需求不匹配,导致用户在浏览过程中没有找到想要的产品,从而用户的实际购买的转化率很低,即用户流失严重。
–主要关注用户访问和购买行为与日期的关系
1.用户日均访问情况
#日访问量
select dates 日期,count(behavior) 日访问量
from userbehavior
where behavior='pv'
group by dates
order by dates;
#日访客数
select dates 日期,count(distinct userid) 日访客数
from userbehavior
where behavior='pv'
group by dates
order by dates;
从上图结果来看,从11月25日到12月1日,日访问量和日访客数基本稳定,12月2日和3日访问量和访客数都有较大幅度上升,这与双12活动促销预热有很大关系。
(2)用户日均购买情况
#日访问量
select dates 日期,count(behavior) 日访问量
from userbehavior
where behavior='pv'
group by dates
order by dates;
从上图可以发现,商品日均销量分布基本与日均访问量的分布相似,销量高峰同样在12月2日和3日。
1.日均访问量、访客数、商品销量在11月25日到12 月3日之间的变化情况相似。
2.12月2日,3日是周末,又是双十二活动的初期预热,所以访问量、访客数、商品销量均更高。
3.商家可以在周末推出更多活动吸引用户,提高商品销量。
select left(times,2) 小时,
sum(case when behavior='PV' then 1 else 0 end) as 访问,
sum(case when behavior='CART' then 1 else 0 end) as 加购物车,
sum(case when behavior='fav' then 1 else 0 end) as 收藏,
sum(case when behavior='buy' then 1 else 0 end) as 购买
from userbehavior
group by left(times,2)
order by left(times,2);
1.用户各种行为随时间的变化趋势整体一致:4种行为在1点到6点处于低谷期,6点之后逐步上升,上午9~10点达到一天中的第一个小高峰,之后略有下降。
2.中午12点之后,各种行为又呈现小幅上涨趋势,于13~15点之前迎来第二个小高峰,推测是用户进入午休时间以及上班刚开始,用户有一定时间逛淘宝。
3.18点之后,大部分用户已经下班,各种行为开始大幅上升,于19~22点间达到一天中的最高峰,其中用户访问量急速上涨,于21点达到峰值,22点之后开始回落。
通过使用RFM模型,将用户按价值进行分类,从而针对不同客户群体制定精细化营销策略
模型定义和含义:
R:用户最近一次的购买时间到12月3日的时间差表示用户最近一次消费间隔
F:用户在11月25日到12月3日之间购买的次数表示用户消费频率
M:本次数据集未包含相关字段,故不考虑
(2)用户分类步骤
1.计算R、F、M值;
2.给R、F、M按价值打分
3.计算价值的平均值,得出R、F、M的高低,高于平均值打分为“高”,反之则为“低”。
4.对比用户分类规则表,得出用户分类。
首先统计各用户的购买情况
#统计消费频率F
create view f as
select userid,count(behavior) 消费次数
from userbehavior
where behavior='buy'
group by userid
order by count(behavior) desc;
#用户最近一次购买的时间
create view r as
select userid,max(dates) 最近一次购买时间
from userbehavior
where behavior='buy'
group by userid;
(1)计算R、F值并打分
--计算R值
select userid,最近一次购买时间,
(case when datediff('2017-12-03',最近一次购买时间)<=2 then 4
when datediff('2017-12-03',最近一次购买时间)<=4 then 3
when datediff('2017-12-03',最近一次购买时间)<=6 then 2
when datediff('2017-12-03',最近一次购买时间)<=8 then 1
end) as R值
from r;
#计算F值
select userid,消费次数,
case when 消费次数>=19 then '4'
when 消费次数 between 13 and 18 then '3'
when 消费次数 between 7 and 12 then '2'
when 消费次数 between 1 and 6 then '1'
end F值
from f;
(2)计算R、F的均值
#计算R、F的均值
select avg(r值) r平均值 from r值;
select round(avg(f值),4) f平均值 from f值;
# RFM视图
create view RFM视图 as
select r.*,f.f值,
(case when r.r值 > 3.2846 and f.f值 > 1.1148 then '重要价值用户'
when r.r值 > 3.2846 and f.f值 < 1.1148 then '重要发展用户'
when r.r值 < 3.2846 and f.f值 > 1.1148 then '重要保持用户'
when r.r值 < 3.2846 and f.f值 < 1.1148 then '重要挽留用户'
end) as 用户分类
from r值 as r,f值 as f
where r.userid = f.userid;
#统计各类用户的数量
select 用户分类,count(UserId) 用户数量
from RFM视图
group by 用户分类;
重要发展用户和重要挽留用户占比最高,分别是50.67%和39.94%。
对于重要发展用户,其消费频率较低,针对该类用户应该注意提高其消费频率。
对于重要挽留用户,其消费一次的时间间隔长,消费频率低。这种用户,即将流失,要主动联系用户,调查清楚哪里出了问题,并想办法挽回。
重要价值用户的占比较少为7.45%,但该类用户消费时间间隔短,消费频率高,要提供vip服务。
重要保持用户的占比最少仅为1.94%,这类用户最近消费距离现在时间较远,但是消费频率高。这种用户,是一段时间没来的忠实客户,应该主动和他保持联系,提高复购率。
1.淘宝用户在两种流程下的购买转化率都很低,主要是点击详情页后流失的情况;相比加入购物车或收藏后再购买,这种流程的购买转化率较高。
2.从统计结果上来看,淘宝商品种类比较丰富,商品数量充足,不存在商品种类太少而不满足用户需求的情况;经过假设检验发现,淘宝推荐的商品和用户寻找或感兴趣的商品不匹配,导致大量用户停留于点击浏览环节。
1.建议通过发放优惠券、红包等形式,引导用户在点击浏览后将商品加入购物车或收藏,来提高购买转化率;
2.建议优化搜索和筛选功能,提高推送的针对性,让用户能够快速找到目标商品;
用户搜索最多的商品类别是:
类别4756105,该类下搜索最多的商品是812879、3006793、3769601;
类别3607361,该类下搜索最多的商品是2331370、138964和3845720。
1.建议淘宝优化商品推送机制,优先推送点击量排名靠前的商品。
2.点击数高的商品,也要引导商家做出促销活动,吸引流量变现。
3.对于购买比较多的类目下的排名靠前的商品,也可询问商家是否要做更多的推广,增加销售量。
整体来看,用户在周末的活跃度和浏览购买量远远高于工作日;而在一天中,晚间19-22点最活跃。因此,可以在周末举行促销活动,发放优惠福利;在白天可以进行促销活动宣传,在晚上开启活动,从而吸引用户,提高活跃度,提升商品销量。
通过RFM模型对用户进行分类,得到了重要价值用户、重要发展用户、重要保持用户和重要挽留用户等四大类。其中重要发展用户占比超过一半,重要保持用户占比最少。建议对四类用户制定不同的营销策略,实现精细化运营,具体策略可概括为:
参考来源:https://zhuanlan.zhihu.com/p/143075054,基此复现,结合自己的理解。