数据分析项目实战1——淘宝用户购买行为分析(天池)

一、分析背景、数据来源、数据解释

https://tianchi.aliyun.com/dataset/649
由于userbehavior数据集的数据量较大,本次分析使用Navicat将前10万条数据导入MySQL。

二、业务问题及分析思路

数据分析项目实战1——淘宝用户购买行为分析(天池)_第1张图片

三、数据清洗

3.1 子集选择

选取10万条数据导入MySQL构成本次分析的数据集。

3.2 列名重命名

给导入的数据各字段命名
用户id:userid
商品ID:itemid
商品类目id:categoryid
行为类型:behavior
时间戳:timestamps

3.3 删除重复值

在导入数据时,将userid、itemid和timestamps设为主键,确保数据没有重复值。

3.4 缺失值处理

select * from userbehavior
where userid is null or itemid is null
or categoryid is null or behavior is null
or timestamps is null;

在这里插入图片描述

3.5 一致化处理

将时间戳变为可读形式,并在原表中添加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');

数据分析项目实战1——淘宝用户购买行为分析(天池)_第2张图片

3.6 异常值处理

查询日期的最大、最小值,判断是否存在不属于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;

四、分析过程

4.1 用户流失情况分析

4.1.1 用户行为转化情况

数据分析项目实战1——淘宝用户购买行为分析(天池)_第3张图片
通过对用户进行统计并可视化,可以发现整个购买流程的用户转化率很低。具体表现为点击商品详情页的占比将近90%,但将商品加入购物车和收藏的仅为8.2%,且最终下单购买的行为仅占2.1%。

4.1.2 用户流失情况分析

业务问题1: 用户在不同购物流程下的流失情况

业务问题1:用户在不同购物流程下的流失情况如何?
首先,根据用户的4种行为,对用户的购买流程进行归纳,得到以下4种情况。

数据分析项目实战1——淘宝用户购买行为分析(天池)_第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;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第5张图片

#点击次数
select count(PV) 点击次数 from userb;

在这里插入图片描述
(1)情况1:用户点击后购买

#情况1:用户点击后购买
select count(userid) 点击后购买 from userb 
where pv>0 and (cart=0 and fav=0) and buy>0;

在这里插入图片描述
(2)情况2 :点击后流失

#情况1:用户点击后流失
select count(userid) 点击后流失 from userb 
where pv>0 and (cart=0 and fav=0) and buy=0;

在这里插入图片描述
(3)情况3:点击、加入购物车或收藏后购买

#情况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)情况4:点击、加入购物车或收藏后流失

#情况4:点击、加入购物车或收藏后流失
select count(userid) 点击加购后或收藏后流失
from userb 
where pv>0 and (cart>0 or fav>0) and buy=0;

在这里插入图片描述

最后,根据统计结果总结各流程转化率和流失率,如下图所示。
数据分析项目实战1——淘宝用户购买行为分析(天池)_第6张图片
由上图可知,点击后直接购买的转化率仅为1.36%,用户流失率为87.49%;点击后先加入购物车或收藏后再购买的转化率为9.51%,用户流失率为90.49%。

结论:
  • 两种购物流程的用户转化率都很低,对应用户流失情况严重。
  • 相比之下,流程2的购买转化率更高,因此可以考虑在今后的营销中,引导用户在点击浏览商品详情后加入购物车或收藏,从而在一定程度上提升购买转化率,提高商品销量。

4.2 用户流失的原因

业务问题2:用户流失的原因是什么?
	淘宝推送是根据用户日常的浏览行为数据,比如日常搜索的关键词,收藏和加购的商品,已经关注的店铺,还有购买记录等,综合判断来给用户进行推送可能感兴趣的商品。
	如果淘宝的推送机制合理,那么推送的商品和用户需求的商品将会呈现较高的匹配度,从而用户最终的购买转化率也相应较高,从而推送的商品销量变高,变成热销商品;反之则较低,即表明用户流失严重。
	本次分析使用假设检验分析方法对用户流失原因进行分析。分析思路如下图所示:

数据分析项目实战1——淘宝用户购买行为分析(天池)_第7张图片
收集证据:首先,统计用户数量、商品数量、商品类别数和用户行为类型数,如下图所示。

#统计用户数量、商品数量、商品类别数和用户行为类型数
select count(distinct userid) 用户数,
			 count(distinct itemid) 商品数量,
			 count(distinct categoryid) 商品类别数,
			 count(distinct behavior) 用户行为类型数
from userbehavior;

在这里插入图片描述
上述统计结果表明,该数据集包含的商品类别比较丰富,商品数量充足。具体表现为该数据集包含983个用户,64440件商品,3128个类别,4种用户行为。
接下来,分析用户寻找的商品和淘宝推送的商品。

1)用户寻找的商品

业务问题3:用户在寻找哪些商品?

在这里,由于商品种类较多,主要查询点击次数排名前10的商品类别,查询结果如下:

#查询点击次数排名前10的商品类别
select categoryid 商品类别,count(1) 点击次数
from userbehavior
where behavior='pv'
group by categoryid 
order by count(1) desc
limit 10;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第8张图片

从上图可以看出,商品类别4756105、3607361和4145813的用户点击浏览量最高。进一步选择这商品类别4756105、3607361,查询二级商品的点击次数top5,并统计查询结果。

数据分析项目实战1——淘宝用户购买行为分析(天池)_第9张图片
数据分析项目实战1——淘宝用户购买行为分析(天池)_第10张图片
从上图可以看出,商品类别4756105中,点击量最高的商品id是812879、3006793和3769601;商品类别3607361中,点击量最高的商品id是2331370、138964和3845720,且点击量均在30次左右。

由以上分析结果可知,用户的需求主要集中在商品类别4756105中,商品id为812879、3006793和3769601的商品和商品类别3607361中,商品id为2331370、138964和3845720的商品上。

2)热销商品

业务问题4:哪些商品热销?

查询购买量前10的商品
数据分析项目实战1——淘宝用户购买行为分析(天池)_第11张图片
将点击量前10的商品类别和购买量前10的商品类别放到一起,如下图所示:
数据分析项目实战1——淘宝用户购买行为分析(天池)_第12张图片
从统计结果来看,除商品类别4145813外,点击量TOP10的商品类别和购买量TOP10的商品类别基本不匹配。进一步统计点击量前三的商品类别:4756105,3607361,4145813的实际购买率。

定义:购买率=购买量/点击次数。统计结果如下图所示:

数据分析项目实战1——淘宝用户购买行为分析(天池)_第13张图片
可以看出点,击量前三的商品类别4756105、3607361和4145813的购买率分别是0.84%、0.89%和1.01%,购买率都非常低。

结论:假设成立。

通过以上分析,可知淘宝推送的机制不合理。推送的商品和用户的需求不匹配,导致用户在浏览过程中没有找到想要的产品,从而用户的实际购买的转化率很低,即用户流失严重。

4.3 用户行为与时间的关系

业务问题5:用户行为分布随时间有什么变化?

4.3.1 用户行为在不同日期下的情况

–主要关注用户访问和购买行为与日期的关系
1.用户日均访问情况

#日访问量
select dates 日期,count(behavior) 日访问量
from userbehavior
where behavior='pv'
group by dates
order by dates;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第14张图片

#日访客数
select dates 日期,count(distinct userid) 日访客数
from userbehavior
where behavior='pv'
group by dates
order by dates;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第15张图片
数据分析项目实战1——淘宝用户购买行为分析(天池)_第16张图片
数据分析项目实战1——淘宝用户购买行为分析(天池)_第17张图片
从上图结果来看,从11月25日到12月1日,日访问量和日访客数基本稳定,12月2日和3日访问量和访客数都有较大幅度上升,这与双12活动促销预热有很大关系。
(2)用户日均购买情况

#日访问量
select dates 日期,count(behavior) 日访问量
from userbehavior
where behavior='pv'
group by dates
order by dates;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第18张图片
数据分析项目实战1——淘宝用户购买行为分析(天池)_第19张图片
从上图可以发现,商品日均销量分布基本与日均访问量的分布相似,销量高峰同样在12月2日和3日。

结论:

1.日均访问量、访客数、商品销量在11月25日到12 月3日之间的变化情况相似。
2.12月2日,3日是周末,又是双十二活动的初期预热,所以访问量、访客数、商品销量均更高。
3.商家可以在周末推出更多活动吸引用户,提高商品销量。

4.3.2 用户行为在一天中不同时段的情况
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——淘宝用户购买行为分析(天池)_第20张图片
数据分析项目实战1——淘宝用户购买行为分析(天池)_第21张图片

从上图的统计结果可以得出以下结论:

1.用户各种行为随时间的变化趋势整体一致:4种行为在1点到6点处于低谷期,6点之后逐步上升,上午9~10点达到一天中的第一个小高峰,之后略有下降。
2.中午12点之后,各种行为又呈现小幅上涨趋势,于13~15点之前迎来第二个小高峰,推测是用户进入午休时间以及上班刚开始,用户有一定时间逛淘宝。
3.18点之后,大部分用户已经下班,各种行为开始大幅上升,于19~22点间达到一天中的最高峰,其中用户访问量急速上涨,于21点达到峰值,22点之后开始回落。

4.4 用户价值分类

业务问题6:使用RFM模型分析用户价值

通过使用RFM模型,将用户按价值进行分类,从而针对不同客户群体制定精细化营销策略
模型定义和含义:

  • R(Recency):表示最近一次消费时间间隔,距离现在的时间;上一次消费离的越近,R越小,用户价值越高。
  • F(Frequency):消费频率,一段时间内消费了多少次,F越大,价值越高。
  • M(Montary):消费金额,一段时间内的消费金额,M越大,价值越高。
    在本次分析中,RFM的具体定义为:

R:用户最近一次的购买时间到12月3日的时间差表示用户最近一次消费间隔
F:用户在11月25日到12月3日之间购买的次数表示用户消费频率
M:本次数据集未包含相关字段,故不考虑

4.4.1 建立打分规则

(1)用户分类规则表
数据分析项目实战1——淘宝用户购买行为分析(天池)_第22张图片

(2)用户分类步骤
1.计算R、F、M值;
2.给R、F、M按价值打分
3.计算价值的平均值,得出R、F、M的高低,高于平均值打分为“高”,反之则为“低”。
4.对比用户分类规则表,得出用户分类。

4.4.2 本次分析的打分标准

首先统计各用户的购买情况

#统计消费频率F
create view f as 
select userid,count(behavior) 消费次数
from userbehavior
where behavior='buy'
group by userid 
order by count(behavior) desc;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第23张图片

#用户最近一次购买的时间
create view r as 
select userid,max(dates) 最近一次购买时间
from userbehavior
where behavior='buy'
group by userid;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第24张图片
根据查询结果指定打分标准,如下图所示:
数据分析项目实战1——淘宝用户购买行为分析(天池)_第25张图片

4.4.3 用户分类过程

(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;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第26张图片

#计算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;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第27张图片

(2)计算R、F的均值

#计算R、F的均值
select avg(r值) r平均值 from r值;
select round(avg(f值),4) f平均值 from f值;

在这里插入图片描述
在这里插入图片描述
(3)根据价值高低得出用户分类

# 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;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第28张图片
(4)统计各类用户的数量

#统计各类用户的数量
select 用户分类,count(UserId) 用户数量
from RFM视图
group by 用户分类;

数据分析项目实战1——淘宝用户购买行为分析(天池)_第29张图片
数据分析项目实战1——淘宝用户购买行为分析(天池)_第30张图片

从上述统计结果可以得出以下结论:

重要发展用户和重要挽留用户占比最高,分别是50.67%和39.94%。
对于重要发展用户,其消费频率较低,针对该类用户应该注意提高其消费频率。
对于重要挽留用户,其消费一次的时间间隔长,消费频率低。这种用户,即将流失,要主动联系用户,调查清楚哪里出了问题,并想办法挽回。
重要价值用户的占比较少为7.45%,但该类用户消费时间间隔短,消费频率高,要提供vip服务。
重要保持用户的占比最少仅为1.94%,这类用户最近消费距离现在时间较远,但是消费频率高。这种用户,是一段时间没来的忠实客户,应该主动和他保持联系,提高复购率。

五、结论与建议

(1)业务问题1&2 用户在不同购物流程下的转化情况和客户流失原因

1)结论

1.淘宝用户在两种流程下的购买转化率都很低,主要是点击详情页后流失的情况;相比加入购物车或收藏后再购买,这种流程的购买转化率较高。
2.从统计结果上来看,淘宝商品种类比较丰富,商品数量充足,不存在商品种类太少而不满足用户需求的情况;经过假设检验发现,淘宝推荐的商品和用户寻找或感兴趣的商品不匹配,导致大量用户停留于点击浏览环节。

2)建议

1.建议通过发放优惠券、红包等形式,引导用户在点击浏览后将商品加入购物车或收藏,来提高购买转化率;
2.建议优化搜索和筛选功能,提高推送的针对性,让用户能够快速找到目标商品;

(2)业务问题3&4 用户在寻找哪些商品,哪些商品比较热销

1)结论

用户搜索最多的商品类别是:

类别4756105,该类下搜索最多的商品是812879、3006793、3769601;
类别3607361,该类下搜索最多的商品是2331370、138964和3845720。

2)建议

1.建议淘宝优化商品推送机制,优先推送点击量排名靠前的商品。
2.点击数高的商品,也要引导商家做出促销活动,吸引流量变现。
3.对于购买比较多的类目下的排名靠前的商品,也可询问商家是否要做更多的推广,增加销售量。

(3)业务问题5:用户行为随时间的变化

整体来看,用户在周末的活跃度和浏览购买量远远高于工作日;而在一天中,晚间19-22点最活跃。因此,可以在周末举行促销活动,发放优惠福利;在白天可以进行促销活动宣传,在晚上开启活动,从而吸引用户,提高活跃度,提升商品销量。

(4)业务问题6:用户价值分类

通过RFM模型对用户进行分类,得到了重要价值用户、重要发展用户、重要保持用户和重要挽留用户等四大类。其中重要发展用户占比超过一半,重要保持用户占比最少。建议对四类用户制定不同的营销策略,实现精细化运营,具体策略可概括为:

  • 重要价值用户:该类用户消费时间间隔短,消费频率高,要提供vip服务,做好个性化推荐的同时,也要将热销高价值商品推送给到此类客户;
  • 重要发展用户:其消费时间间隔短,但消费频率较低,应做好私域维护,多去直接推送商品给客户刺激其购买欲,来提高其消费的活跃度;
  • 重要保持用户:这类用户最近消费距离现在时间较远,但是消费频率高。这种用户,是一段时间没来的忠实客户,应该通过发放优惠券和红包,以及个性化推荐广告要到客户常用社交平台上,主动和他建立联系,提高复购率。
  • 重要挽留用户:其消费一次的时间间隔长,消费频率低。这种用户,即将流失,要主动联系用户,调查清楚哪里出了问题,并想办法挽回。

参考来源:https://zhuanlan.zhihu.com/p/143075054,基此复现,结合自己的理解。

你可能感兴趣的:(数据分析师,数据分析项目实战,数据分析,mysql)