UserBehavior用户行为分析

1、数据来源

阿里云天池: https://tianchi.aliyun.com/dataset/dataDetail?dataId=649
本数据集包含了2017年11月25日至2017年12月3日之间,约有一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。
时间跨度约为一个礼拜,从周六到下个周日

2、各字段含义

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

3、数据清洗

使用CDH6.3.0搭建的大数据平台,数据下载后上传文件至hdfs的/user/root/UserBehavior目录下

su hdfs -c "hadoop dfs -mkdir /user/root/UserBehavior"
su hdfs -c "hadoop dfs -chown -R root:root /user/root/UserBehavior"
hdfs dfs -put /app/localData/UserBehavior/UserBehaviors.csv /user/root/UserBehavior/

查看目录:

hdfs dfs -ls /user/root/

在这里插入图片描述

使用hiveserver2连接平台

beeline -u jdbc:hive2://node01:10000
 use default;

新建外表:

create external table ods_userBehaviors (userId int,itemId int,categoryId int,behaviorType string,time bigint) row format delimited fields terminated by ',' stored as textfile location '/user/root/UserBehavior';

查询前10条

select * from ods_userbehaviors limit 10

在这里插入图片描述
做个总条目聚合:

select count(*) from ods_userbehaviors;

发现报错,/user目录的权限问题
在这里插入图片描述
使用hdfs用户使/user目录权限为777

su hdfs -c "hadoop dfs -chmod -R 777 /user/root"

再运行
在这里插入图片描述
发现总条目数为3835331,使用时间为333.622seconds.

4、构建模型

本次分析的目的是想通过对淘宝用户行为数据分析,为以下问题提供解释和改进建议:
1.分析用户使用APP过程中的常见电商分析指标,确定各个环节的流失率,找到需要改进的环节
2.研究用户在不同时间尺度下的行为规律,找到用户在不同时间周期下的活跃规律
3.找到用户对不同种类商品的偏好,找到针对不同商品的营销策略
4.找出最具价值的核心付费用户群,对这部分用户的行为进行分析

本文通过常用的电商数据分析指标,采用AARRR漏斗模型拆解用户进入APP后的每一步行为。AARRR模型是根据用户使用产品全流程的不同阶段进行划分的,针对每一环节的用户流失情况分析出不同环节的优化优先级,主要通过以下个各阶段来进行分析:

1.基于AARRR漏斗模型分析用户行为

本文通过常用的电商数据分析指标,采用AARRR漏斗模型拆解用户进入APP后的每一步行为。AARRR模型是根据用户使用产品全流程的不同阶段进行划分的,针对每一环节的用户流失情况分析出不同环节的优化优先级,主要通过以下个各阶段来进行分析:
在这里插入图片描述

2.基于RFM模型找出有价值的用户

由于不同用户对公司带来的收益差别很大,而且根据二八定律20%的做有价值用户能带来80%的收益,因此需要对用户进行价值评价,找到最有价值的用户群,并针对这部分用户进行差异化的营销。
这里参考著名的 RFM 模型对用户进行评价:
在这里插入图片描述
R-Recency(最近一次购买时间)
R指用户上一次消费的时间,上一次购物时间距今最近的顾客通常在近期响应营销活动的可能性也最大,对于APP而言,很久没有购物行为可能意味着用户放弃了APP的使用,重新唤起用户也需要更多的成本。
F-Frequency(消费频率)
F指用户在某段时间内的购物次数,消费频率越高意味着这部分用户对产品的满意度最高,用户粘性最好,忠诚度也最高。
M-Money(消费金额)
M指用户在某段时间内的购物金额,这也是为公司带来价值的最直接体现,而消费金额较高的用户在用户总体中人数较少,却能创造出更多价值,是需要重点争取的对象。
这三个维度互相关联,反映了每个用户的现在价值和潜在价值,将每个维度分成5个区间进行评分,通过计算分数找到最有价值的用户,并对用户进行分类,可以有针对性的不同类型用户采用不同的营销策略。

以上两个模型的论述摘自https://www.jianshu.com/p/4f64d739fba2

模型

1.分析用户使用户行为的漏斗模型

利用AARRR模型分析用户行为,此处数据主要涉及用户刺激和购买转化的环节,通过用户从浏览到最终购买整个过程的流失情况,包括浏览、收藏、加入购物车和购买环节,一个周内的各项指标如下:
UV:

select count(distinct userId) from ods_userbehaviors
37376

PV:

select count(*) from ods_userbehaviors where behavior = 'pv';
3433849

PV/UV:91.87

UVPV每人平均每周访问次数PV/UV
37376343384991.87

跳失率
跳失率=只点击一次浏览的用户数量/总用户访问量(PV)
也叫蹦失率,即访问该页面就关闭的PV数占总PV数的比例

select count(*) from (select userId from ods_userbehaviors group by userId having count(behaviorType)=1) as a;
1

即跳失率=1/3433849,统计时间为一周,只有1个人浏览了一次就离开淘宝,分析记录虽然仅为部分数据,但仍可以看出淘宝拥有足够的吸引力让用户停留app,这也符合日常观察。

跳失率
1/3433849

用户总行为数漏斗计算
每一种行为的总数量排序:

select behaviortype,count(*) from ods_userbehaviors group by behaviortype order by behaviortype desc;
+---------------+----------+
| behaviortype  |   _c1    |
+---------------+----------+
| pv            | 3433849  |
| fav           | 111140   |
| cart          | 213634   |
| buy           | 76707    |
+---------------+----------+
从浏览到有购买意向转化率使用购物车和收藏功能购买率
(fav+cart) /pvbuy/(fav+cart)
9.5%23%

由于收藏和加入购物车都为浏览和购买阶段之间确定购买意向的用户行为,且不分先后顺序,因此将其算作同一阶段,可以看到从浏览到有购买意向只有9.5%的转化率,当然有部分用户是直接购买而未通过收藏和加入购物车,但也说明大多数用户浏览页面次数较多,而使用购物车和收藏功能较少,而购买次数占使用购物车和收藏功能的23.6%,说明从浏览到进行收藏和加入购物车的阶段是指标提升的重点环节。
独立访客漏斗模型计算:

select behaviortype,count(distinct userid) as num from ods_userbehaviors group by behaviortype order by num desc;
+---------------+--------+
| behaviortype  |  num   |
+---------------+--------+
| pv            | 37223  |
| cart          | 28122  |
| buy           | 25400  |
| fav           | 14943  |
+---------------+--------+
行为用户数
pv37223
cart28122
buy25400
fav14943

上面是每一步用户行为的独立用户数,可以看到使用APP的用户中PUR(付费用户占比)为68%,用户付费转化率相当高。

PUR付费用户占比
buy/uv=68%
2. 不同时间尺度下用户行为模式分析

1)分析一周内每天的用户行为
思路:通过行为字段进行分组,统计每种行为的数量,排序

 SELECT from_unixtime(time, 'yyyy-MM-dd'),sum(case when behaviortype = 'pv' then 1 else 0 end) as liulanshu,sum(case when behaviortype = 'fav' then 1 else 0 end ) as shoucangshu,sum(case when behaviortype = 'cart' then 1 else 0 end ) as gouwuche, sum( case when behaviortype = 'buy' then 1 else 0 end ) as goumaishu from ods_userbehaviors GROUP BY from_unixtime(time, 'yyyy-MM-dd')
+-------------+------------+--------------+-----------+------------+
|    日期     | 浏览数  | 收藏数 | 购物车  | 购买数  |
+-------------+------------+--------------+-----------+------------+
| 2015-02-06  | 1          | 0            | 0         | 0          |
| 2017-09-11  | 1          | 0            | 0         | 0          |
| 2017-10-10  | 1          | 0            | 0         | 0          |
| 2017-10-31  | 1          | 0            | 0         | 0          |
| 2017-11-03  | 14         | 0            | 0         | 0          |
| 2017-11-06  | 1          | 0            | 0         | 0          |
| 2017-11-12  | 2          | 0            | 0         | 0          |
| 2017-11-15  | 4          | 0            | 0         | 0          |
| 2017-11-18  | 19         | 0            | 0         | 0          |
| 2017-11-21  | 25         | 0            | 0         | 0          |
| 2017-11-24  | 1507       | 0            | 0         | 0          |
| 2017-11-27  | 341435     | 11087        | 21244     | 8538       |
| 2017-11-30  | 358866     | 11379        | 21588     | 8533       |
| 2017-12-02  | 476867     | 15344        | 30771     | 9792       |
| 1970-01-01  | 1          | 0            | 0         | 0          |
| 2017-11-04  | 1          | 0            | 0         | 0          |
| 2017-11-10  | 2          | 0            | 0         | 0          |
| 2017-11-13  | 6          | 0            | 0         | 0          |
| 2017-11-16  | 10         | 0            | 0         | 0          |
| 2017-11-19  | 33         | 0            | 0         | 0          |
| 2017-11-22  | 53         | 0            | 0         | 0          |
| 2017-11-25  | 354564     | 11519        | 21416     | 7535       |
| 2017-11-28  | 338412     | 11192        | 20626     | 8096       |
| 2017-12-03  | 473456     | 15348        | 30150     | 9974       |
| 2017-12-06  | 3          | 0            | 0         | 0          |
| 2017-07-03  | 2          | 0            | 0         | 0          |
| 2017-09-16  | 2          | 0            | 0         | 0          |
| 2017-11-02  | 1          | 0            | 0         | 0          |
| 2017-11-05  | 1          | 0            | 0         | 0          |
| 2017-11-11  | 5          | 0            | 0         | 0          |
| 2017-11-14  | 6          | 0            | 0         | 0          |
| 2017-11-17  | 18         | 0            | 0         | 0          |
| 2017-11-20  | 20         | 0            | 0         | 0          |
| 2017-11-23  | 181        | 0            | 0         | 0          |
| 2017-11-26  | 364554     | 12004        | 22513     | 7722       |
| 2017-11-29  | 349892     | 11413        | 21111     | 8468       |
| 2017-12-01  | 373859     | 11854        | 24215     | 8049       |
| 2017-12-04  | 6          | 0            | 0         | 0          |
| 2018-08-28  | 16         | 0            | 0         | 0          |
| 2037-04-09  | 1          | 0            | 0         | 0          |
+-------------+------------+--------------+-----------+------------+

可以看到明显不同,从左到右为周一到周日的数据,在平时,工作日时各项指标平稳,而到周末高涨,推测是上班族因工作逛淘宝的时间少,而周末有充足的精力,购买能力也增加。因此平日运营可以将活动集中在周末进行。

3, 不同商品种类的用户行为

1)统计浏览次数、收藏次数和加入购物车次数最多的商品。

select itemid,count(userid) as times from ods_userbehaviors where behaviortype = 'buy' group by itemid order by times desc limit 30;
+----------+--------+
|  itemid  | times  |
+----------+--------+
| 3122135  | 58     |
| 3031354  | 32     |
| 2964774  | 27     |
| 2560262  | 26     |
| 1910706  | 25     |
| 1042152  | 23     |
| 1116492  | 23     |
| 257772   | 23     |
| 3189426  | 22     |
| 3964583  | 22     |
| 3237415  | 21     |
| 1034594  | 21     |
| 1684440  | 20     |
| 1813380  | 19     |
| 1535294  | 19     |
| 11517    | 18     |
| 1168232  | 18     |
| 2267309  | 18     |
| 4458366  | 18     |
| 705557   | 18     |
| 1095113  | 18     |
| 3685477  | 17     |
| 1415828  | 17     |
| 1595279  | 17     |
| 4401268  | 17     |
| 609649   | 17     |
| 4260261  | 16     |
| 3452114  | 16     |
| 4024409  | 16     |
| 3557522  | 15     |
+----------+--------+
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值