MySQL数据分析2_tb用户行为分析

MySQL数据分析2_tb用户行为分析

本文数据来源于:天池
使用工具:MySQL,tableau

1.简介

用户行为是淘宝上用户行为的数据集,用于带有隐式反馈的推荐问题。该数据集由阿里巴巴提供。

2.数据理解

该数据集包括随机选择的约100万用户,以及这些用户在2017年11月25日至12月3日之间具有点击,购买,向购物车中添加商品和偏爱商品的行为,所有数据量超过1亿行,考虑到数据库运行时间,这里我就取200W左右的值进行分析。
字段理解如下:

字段解释
user_id用户编号
item_id商品编号
category_id系列编号
behavior type行为类型(PV:项目详细信息页面的页面视图,相当于项目单击;buy:购买物品;cart:将项目添加到购物车;fav:收藏一个项目)
timestamp行为发生时的时间戳

3.设立目标

  1. 分析用户行为和常见电商指标,找到需要加强的环节;
  2. 分析最核心用户群体,对其进行分析;
  3. 分析用户在一定的时间周期内的用户行为,找到用户行为规律。

4.数据清洗

1)选择数据子集

这里选定导入的所有数据进行分析

2)删除重复值

这里为用户购物行为,确实可能存在相同的产品,用户会产生不同的操作的现象(比如先加购再购买),故不作处理

3)缺失值处理
SELECT count(1)
FROM userbehavior
WHERE user_id=' ' OR user_id IS NULL;

SELECT count(1)
FROM userbehavior
WHERE item_id=' ' OR item_id IS NULL;

SELECT count(1)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200922154037150.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjMxNTcwMg==,size_16,color_FFFFFF,t_70#pic_center)

FROM userbehavior
WHERE category_id=' ' OR category_id IS NULL;

SELECT count(1)
FROM userbehavior
WHERE `behavior type`=' ' OR `behavior type` IS NULL;

SELECT count(1)
FROM userbehavior
WHERE `timestamp`=' ' OR `timestamp` IS NULL;

结果均为0,不存在缺失值。

4)合法性检查

检查数据有无不合逻辑的值,在本项目中表现为,用户行为时间是否在2017年11月25日至12月3日范围内:

-- 合法性检查
SELECT *,FROM_UNIXTIME(`timestamp`)
FROM userbehavior
WHERE `timestamp`<UNIX_TIMESTAMP('2017-11-25') OR `timestamp`>UNIX_TIMESTAMP('2017-12-4')

结果发现有992条记录是不合法的,如下图
在这里插入图片描述
删除以上数据

DELETE FROM userbehavior 
WHERE `timestamp`<UNIX_TIMESTAMP('2017-11-25') OR `timestamp`>UNIX_TIMESTAMP('2017-12-4')
5)数据一致性处理

为了之后研究方便这里将时间戳转化为正常的日期格式,并分成两列,一列为日期,一列为小时。

SELECT *,FROM_UNIXTIME(`timestamp`,'%Y-%m-%d') date,FROM_UNIXTIME(`timestamp`,'%H') hour
FROM userbehavior;

ALTER TABLE userbehavior ADD COLUMN date VARCHAR(255) NULL;
ALTER TABLE userbehavior ADD COLUMN hour VARCHAR(255) NULL;

UPDATE userbehavior SET date=FROM_UNIXTIME(`timestamp`,'%Y-%m-%d');
UPDATE userbehavior SET hour=FROM_UNIXTIME(`timestamp`,'%H');

数据清洗结束,清洗后的部分数据截图如下在这里插入图片描述

5.数据分析

1. 分析用户行为和常见电商指标,找到需要加强的环节:

分析用户行为套用AARRR模型,
在本次数据中,主要涉及到用户购物行为,主要指标如下:
页面访问量PV:1792729
独立访客数UV:19569
每个访客的平均访问量PV/UV:91.6107

SELECT count(DISTINCT(user_id)) AS UV,
(SELECT count(1) FROM userbehavior WHERE `behavior type`='pv')AS PV, 
(SELECT count(1) FROM userbehavior WHERE `behavior type`='pv')/count(DISTINCT(user_id)) AS 'PV/UV'
FROM userbehavior;

在这里插入图片描述
跳出率:≈0

SELECT *,count(1)
FROM(SELECT user_id
FROM userbehavior
GROUP BY user_id
HAVING count(1)=1)t

在这里插入图片描述
2017年11月25日至12月3日共9天中,只有一人浏览一个网页就退出了APP,跳出率可以忽略不计,说明淘宝是很博人眼球的app。
对用户行为进行分析,完整的用户购物行为为 “浏览PV”→“加入购物车cat”/“收藏fav”→“购买buy”。

SELECT `behavior type`,count(1) 数量
FROM userbehavior
GROUP BY `behavior type`;

在这里插入图片描述
在这里插入图片描述

当然这里没有考虑在商品浏览页面直接进行购物的用户,从上图来看,收藏&添加转化率较低,为9.41%,说明顾客浏览的商品中仅存在不到10%的商品吸引到顾客,而成交转化率仅为2.25%,说明大多数顾客都是以浏览商品为主,不过结合时间因素,本数据所在的时间处于双十一刚过,双十二还没到的时候,人们可能刚刚结束上一次大型消费,在为下一次大型促销做准备。
独立访客漏斗模型如下:

SELECT `behavior type`,count(DISTINCT user_id) 行为数量
FROM userbehavior
GROUP BY `behavior type`;

在这里插入图片描述
在这里插入图片描述
可以看出付费转化率高达68.5%。

2. 分析最核心用户群体,对其进行分析

划分用户价值套用RMF模型
构建模型:先筛选出有购买行为的记录

CREATE VIEW RFM AS
SELECT *,DATEDIFF('2017-12-03',date) AS 'diff'
FROM userbehavior
WHERE userbehavior.`behavior type`='buy';

R:最近一次购买日期距2017年12月3日的天数。
分为5挡

天数差值分数
04
1/23
3/42
5/61
7/80

建立R视图

CREATE VIEW R AS
SELECT DISTINCT user_id,
case WHEN min(diff)=0 THEN 4
when min(diff)<=2 THEN 3
WHEN min(diff)<=4 THEN 2
WHEN min(diff)<=6 THEN 1
ELSE 0 END score
FROM RFM
GROUP BY user_id
ORDER BY score DESC;

部分结果如下:在这里插入图片描述

F:在2017年11月25日至12月3日内的购买次数。
查看在这段周期内所有用户最大购买和最小购买次数:

SELECT user_id,max(a)
FROM
(SELECT user_id,count(1) as 'a'
FROM RFM
GROUP BY user_id)t;

SELECT user_id,min(a)
FROM
(SELECT user_id,count(1) as 'a'
FROM RFM
GROUP BY user_id)t;

结果最大为72次,最小为1次,分为5档

购买次数分数
1~150
16~301
31~452
46~603
61~724
建立F视图:
-- 建立F参数模型
CREATE VIEW F AS
SELECT DISTINCT user_id,
CASE WHEN count(user_id)<=15 THEN 0
WHEN count(user_id)<=30 THEN 1
WHEN count(user_id)<=45 THEN 2
WHEN count(user_id)<=60 THEN 3
WHEN count(user_id)<=72 THEN 4
END score
FROM RFM
GROUP BY user_id
ORDER BY score DESC;

在这里插入图片描述
M:在2017年11月25日至12月3日内的金额,这里不涉及金额,不考虑
联结视图R和F,选出分数共同为4的顾客

SELECT r.user_id
FROM r INNER JOIN f ON
r.user_id=f.user_id
WHERE r.score=4 AND f.score=4;

在这里插入图片描述
这部分用户就是最核心用户群体,商家做的各种营销服务应优先考虑这部分用户的意见。

3. 分析用户在一定的时间周期内的用户行为,找到用户行为规律。

因为原始数据记录时间有限,这里就按照两个时间维度来分析用户行为:
1.以天为单位,分析用户在一周内的用户行为;
2.以小时为单位,分析用户在一天之间的用户行为。

以天为单位,分析用户在一周内的用户行为:
选取2017年11月25日至12月1日的数据进行分析

-- 选取2017年11月25日至12月1日的数据进行分析
SELECT t1.*,t2.PV,t3.BUY,t4.fav,t5.cart
FROM 
(SELECT date,count(1) AS 'count'
FROM userbehavior
WHERE date BETWEEN '2017-11-25' AND '2017-12-01'
GROUP BY date)t1
INNER JOIN
(SELECT date,count(1) AS PV
FROM userbehavior
WHERE date BETWEEN '2017-11-25' AND '2017-12-01' AND `behavior type`='pv'
GROUP BY date)t2
ON t1.date=t2.date
INNER JOIN
(SELECT date,count(1) AS BUY
FROM userbehavior
WHERE date BETWEEN '2017-11-25' AND '2017-12-01' AND `behavior type`='buy'
GROUP BY date)t3
ON t2.date=t3.date
INNER JOIN
(SELECT date,count(1) AS fav
FROM userbehavior
WHERE date BETWEEN '2017-11-25' AND '2017-12-01' AND `behavior type`='fav'
GROUP BY date)t4
ON t3.date=t4.date
INNER JOIN
(SELECT date,count(1) AS cart
FROM userbehavior
WHERE date BETWEEN '2017-11-25' AND '2017-12-01' AND `behavior type`='cart'
GROUP BY date)t5
ON t5.date=t4.date;

可视化处理:
在这里插入图片描述
可以看出所有用户在周五和周日的用户行为达到高峰,分析用户在周五的下班会刺激用户放松消费,周六可能顾客会忙着出门社交,所以用户行为量会低于周五,而周末用户可能会选择在家休息,有更长的时间使用app,所以用户行为量又再次达到高峰,过了周末又恢复正常工作,所以行为量再次下降。
所以商家可以选择在周五和周日来进行一些促销活动。
以小时为单位,分析用户在一天内的用户行为:
选择两天对比分析,选择2017/11/27(周一)和2017/11/26(周日)

-- 选取2017年11月27日(周一)的数据进行分析
SELECT t1.*,t2.PV,t3.BUY,t4.fav,t5.cart
FROM 
(SELECT hour,count(1) AS 'count'
FROM userbehavior
WHERE date='2017-11-27' 
GROUP BY hour)t1
INNER JOIN
(SELECT hour,count(1) AS PV
FROM userbehavior
WHERE date='2017-11-27' AND `behavior type`='pv'
GROUP BY hour)t2
ON t1.`hour`=t2.`hour`
INNER JOIN
(SELECT hour,count(1) AS BUY
FROM userbehavior
WHERE date='2017-11-27' AND `behavior type`='buy'
GROUP BY hour)t3
ON t2.`hour`=t3.`hour`
INNER JOIN
(SELECT hour,count(1) AS fav
FROM userbehavior
WHERE date='2017-11-27' AND `behavior type`='fav'
GROUP BY hour)t4
ON t3.`hour`=t4.`hour`
INNER JOIN
(SELECT hour,count(1) AS cart
FROM userbehavior
WHERE date='2017-11-27' AND `behavior type`='cart'
GROUP BY hour)t5
ON t5.`hour`=t4.`hour`
ORDER BY `hour`;

-- 选取2017年11月26日(周日)的数据进行分析
SELECT t1.*,t2.PV,t3.BUY,t4.fav,t5.cart
FROM 
(SELECT hour,count(1) AS 'count'
FROM userbehavior
WHERE date='2017-11-26' 
GROUP BY hour)t1
INNER JOIN
(SELECT hour,count(1) AS PV
FROM userbehavior
WHERE date='2017-11-26' AND `behavior type`='pv'
GROUP BY hour)t2
ON t1.`hour`=t2.`hour`
INNER JOIN
(SELECT hour,count(1) AS BUY
FROM userbehavior
WHERE date='2017-11-26' AND `behavior type`='buy'
GROUP BY hour)t3
ON t2.`hour`=t3.`hour`
INNER JOIN
(SELECT hour,count(1) AS fav
FROM userbehavior
WHERE date='2017-11-26' AND `behavior type`='fav'
GROUP BY hour)t4
ON t3.`hour`=t4.`hour`
INNER JOIN
(SELECT hour,count(1) AS cart
FROM userbehavior
WHERE date='2017-11-26' AND `behavior type`='cart'
GROUP BY hour)t5
ON t5.`hour`=t4.`hour`
ORDER BY `hour`;


在这里插入图片描述
在这里插入图片描述
对比工作日和休息日的用户数据图可知,两数据曲线趋势基本一致,在工作日的中午13:00和晚上21:00 ~ 22:00的时候用户会达到一天之中的高峰期,而周末的高峰期重点体现为晚上21:00 ~ 22:00,由此可知,商家应在晚上21:00 ~ 22:00内增加广告和消息推送,或者是采取限时折扣的方式来增加客流量,促进消费。

6.总结

1. 分析用户行为和常见电商指标,找到需要加强的环节

1)获取用户
本数据中未包含获取用户的信息,可以使用用户浏览的行为作为获取用户的标志
2)激活用户
收藏&添加转化率低,说明大部分商品吸引不到顾客,商家可以优化商品推送服务,根据用户浏览信息,推送用户感兴趣的商品;
还可以通过一些营销手段,比如折扣,拼团,分享得优惠券等来促进消费。
不过结合时间因素,本数据所在的时间处于双十一刚过,双十二还没到的时候,人们可能刚刚结束上一次大型消费,在为下一次大型促销做准备。
3)用户留存
每个访客的平均访问量PV/UV:91.6107,跳出率约为0,这说明淘宝APP很吸引人们的关注,不需要考虑留存问题。
4)增加收益
付费转化率高达68.5%。
5)用户推广
针对地区平台补贴商家邮费,扩大在小城市的用户消费群体。

2. 分析最核心用户群体,对其进行分析

使用RMF模型进行分析,R和F都为4的用户群体,是粘性最大最忠诚的核心用户群体,商家制定营销活动或平常运营时,应该特别注意这些用户群体的利益和反馈;对于R值为4,F值较低的用户群体,是重要唤回用户,可以通过推送优惠信息,或者对这些用户启用用户回归福利来唤回这部分用户。

3. 分析用户在一定的时间周期内的用户行为,找到用户行为规律

以一天为周期进行分析可知,每天客流量高峰期都在晚上21:00 ~ 22:00,由此可知,商家应在晚上21:00 ~ 22:00内增加广告和消息推送,或者是采取限时折扣的方式来增加客流量,促进消费。
以一周为周期进行分析可知,在周五和周日的用户行为达到高峰,所以商家可以选择在周五和周日来进行一些促销活动。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值