大数据管理技术 | 实习三 Hive之用户购物行为分析

实习三 Hive之用户购物行为分析

小组成员

丁泓馨 元培学院 1800017752

李铮 元培学院 1800017744

一、实验目的

本次实习目的为:利用京东和阿里的用户购物数据集,用Hive工具对用户购物行为进行常规购物数据分析。

在本次实验中,我们基于的数据为京东用户三月份的部分购物数据,以及四月份的购物数据,即JData中的JData_Action_201603_extra与JData_Action_201603。

而对于用户购物的行为,我们对不同的用户行为数据(例如用户点击量等)进行了分析,并对结果数据做出了一定的可视化处理。

二、实验过程

1.数据说明

本次实验分析了2016-3-12到2016-4-30近两个月的整体购物情况数据,实习采⽤了以下⼏个⽂件

文件名说明
JData_Action_201603_extra.csv获取2016-3-12到2016-3-31的⽤户⾏为
JData_Action_201604.csv获取2016-4-1到2016-4-30的⽤户⾏为

这两个数据集包含的字段含义为:

列名称说明备注
user_id用户编号脱敏
sku_id商品编号脱敏
time行为时间
model_id点击模块编号
type用户行为
cate品类ID脱敏
brand品牌ID脱敏

在本次报告中,我们将分析如下用户行为:

  1. 用户点击量分析
  2. 用户下单量分析
  3. 一天中不同时段的访问量分析(时间段按小时划分)
  4. 用户每种行为的日平均次数
  5. 用户购买行为转化
  6. 每日新增用户情况(获客分析)
  7. 用户留存分析(分为日留存与三日留存)
  8. 用户复购分析

同时,我们也将对商品的如下数据进行分析:

  1. 商品销量排行榜
  2. 商品浏览量排行榜
  3. 商品种类浏览量排行榜
数据导入
create table if not exists behavior( 
    user_id int, 
    sku_id int, 
    time_ Timestamp, 
    model_id int, 
    type int, 
    cate int, 
    brand int) 
row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES 
    ( 
        "separatorChar"="," 
    ) 
STORED AS TEXTFILE; 

load data local inpath "JData_Action_201604.csv" into table behavior; 

select date(time_) as date1, count(*) as pv,count(distinct(user_id)) as uv 
from behavior 
where type = 6 
group by date(time_); 

select date(time_) as date1, count(*) as orders 
from behavior 
where type = 4 
group by date(time_);

2.用户行为分析

2.1 用户访问量与下单量
select data(time1) date1,count(1) pv, count(distinct(user_id)) uv 
from behavior 
group by date(teime1);

获得点击量结果如下:

在这里插入图片描述

从数据中可看出,京东商城的每日访问量相对而言较大,下单量则相对较小,可见商品的吸引力方面仍然有待提高。

2.2 用户下单量分析

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

下面两张图分别是2016-3-14到2016-3-20的一周内的用户点击量和下单量的变化图

在这里插入图片描述

在这里插入图片描述

从这两张图中发现,用户的点击量和下单量周一起始量便很高,在周二达到了顶峰,而在之后的周三到周日呈现骤降趋势,违反了我们的日常经验。这可能是因为,3.14是白色情人节,而“3.15”是国际消费者权益日,而在国内市场上众多商家都有3.15促销活动的方案;且因为“3.15打假日”在打假曝光的同时会给同类商品带来一定的曝光度、知名度,所以这两日虽然是周一周二,但是点击量和购买量反而会上升一些。

下面两张图分别是2016-4-4到2016-4-10的一周内用户点击量和下单量变化图

在这里插入图片描述

在这里插入图片描述

对比上两张图,这两张图看起来较为符合人们的预期,即用户点击量和下单量大致在周四和周五达到了高峰,而在周一至周三为低谷。根据日常生活经验,我们推测可能的原因是周末来临会使得人们产生购物的欲望,而一周工作的开始则可能降低人购物的欲望。

根据以上数据分析,我们可以初步给出的推荐是,商家可以在节日、假日做促销活动,也可以在一周的周四周五增加促销活动或者加大促销力度,以期销售额有一个较好的增加效果。

2.3 一天中不同时间段的差异
select date(time_) as date1, 
hour(time_) as hour, 
count(*) pv 
from behavior 
where date(time_) = '2016-04-04' and type=6 
group by date(time_),hour(time_);

我们选取了2016-4-4的数据来进行分析,得到的结果如下:

2016-4-4周一结果如下:
在这里插入图片描述
在这里插入图片描述

2016-4-8周五结果如下:

在这里插入图片描述

经过可视化处理后,4-4 4-8 4-9三天的点击量如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分析发现现,一天当中活跃度最低的为凌晨4~5点,原因是大部分用户都在睡觉(难以熬夜到这个点,或者是无法做到这么早早起);而一天中的几个点击量较高的时间段则分别是10~11点以及20点以后,原因可能是,10-11点是午饭前或是上午休息时间,20点以后是晚饭后、睡前,这两个时间段都较为空闲,可以浏览一下京东查看有没有想要购买的东西。

2.4 用户行为路径分析
2.4.1 用户每种行为的日平均次数
select count (distinct user_id) as user_number from behavior; 

select date(time_) date1, 
	sum(if(type=6,1,0)) click_sum, 
	sum(if(type=4,1,0)) order_sum,
	sum(if(type=2,1,0)) add_sum, 
	sum(if(type=5,1,0)) fav_sum 
from behavior group by date(time_);

经计算,我们可以得到用户的平均数据如下:

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

总结果如下:

用户总量总点击量人均点击量人均日点击量
8503110,479,192123.28.216
总下单量人均下单量人均日下单量
13,0010.1530.010
总添加量人均添加量人均日添加量
211,2162.4830.166
总喜爱量人均喜爱量人均日喜爱量
33,4590.3930.026

数据表明在2016-4-1到2016-4-15这段时间内,平均每人每天会点击8.216次,人均日下单量0.01,人均日添加量0.166,人均日喜爱量为0.026。根据日常购物经验判断,此数据较为可观。

2.4.2 用户购买行为转化分析
select type, count(*) as actions 
from behavior 
group by type 
order by type;

产生结果如下:
在这里插入图片描述

其中数字与行为的对应关系为:1.浏览,2.加⼊购物⻋,3.从购物⻋删除,4.下单,5.关注,6.点击

将结果进行可视化处理,得到如下结果:

在这里插入图片描述

分析各部分行为占比发现

  • 用户激活阶段:以浏览行为人数6983636为100%,加入购物车的人数为211216、关注量为33459,即只有3.5%的浏览行为会转换为了加入购物车和关注,总体而言这个转化比例不高,反映出用户浏览界面次数频繁但是较少使用购物车和关注功能。

    而从购物车中删除行为的数量为104914,占加入购物车行为数量的49.7%,这个数相对而言还是比较大的,说明用户的反复衡量比较考虑等行为还是较多的。

  • 获益收获阶段:下单行为数量为13001,与加入购物车行为相比仅占比约6.2%,说明只有很低一部分的加入购物车行为会转化为真正的下单行为,在将时间跨度上的延迟也纳入考虑范围后,这个百分比数字仍然是较低的,反映出即使部分用户将商品加入到了购物车,也很少会真的下单。

2.5 获客分析

获客分析:即观察每日新增用户情况,其中新用户的定义为第一次访问网站的用户。

select a.first_date, count(1) new_visitor from (select user_id,min(date(time_)) 
first_date from behavior group by user_id) a group by a.first_date

获得结果如下:
在这里插入图片描述
在这里插入图片描述

可见随着时间增加,新增用户量会逐渐降低甚至趋于0,这说明京东软件方需要在宣传营销等方面稍加大力度较好,以便维持一个新增用户量。

2.6 用户留存分析

留存定义:以第一日新增用户数为分母,这其中第n日仍活跃的用户数为分子,所得百分比即为n日留存率(e.g.:一日留存率、三日留存率等)。

select
	temp1.date1, 
	count(distinct(temp1.user_id)) new_user_num, 
	count(distinct(if(abs(datediff(temp1.date1,date(temp2.time_)))=3,temp2.user_id,n ull))) retention_three_num, 
	concat(round(count(distinct(if(abs(datediff(temp1.date1,date(temp2.time_)))=3,te mp2.user_id,null)))*100/count(distinct(temp1.user_id)),2),"%") 
retention_three_rate 
from 
( 
	select user_id,min(date(time_)) date1 
	from behavior 
	group by user_id 
) temp1 
left join behavior temp2 
on temp1.user_id = temp2.user_id 
group by temp1.date1;

获得留存数量与留存率如下:

  • 一日留存:
    在这里插入图片描述
    在这里插入图片描述

  • 三日留存:
    在这里插入图片描述
    在这里插入图片描述

可见新增用户流失较为严重,作为应对措施,京东软件可以不断添加实用且新颖的功能或内容,以期留住新用户。

2.7 复购分析

复购分析定义:在单位时间段内,重复购买率=再次购买人数/总购买人数

select count(*) as buyers 
from 
( 
	select count(*) 
	from behavior 
	where type = 4 
	group by user_id 
) temp; 

select count(*) as repeated_buyers 
from 
( 
	select count(*) 
	from behavior 
	where type = 4
	group by user_id 
	having count(*) >= 2 
) temp;

得到数据如下:

在这里插入图片描述

经计算,重复购买率约为21.95%

在这里插入图片描述

由此可见,在该时间段内复购率大致在21.95%左右,虽然这个数值看起来较低,但是由于该时间段较短,故而它并不能反应用户整体的忠诚度,随着时间段拉长到一年等可能复购率会有进一步的显著提升。

3.商品数据分析

3.1 商品排行榜信息
select * from 
	(select temp.sku_id as goods,temp.orders as orders, dense_rank() over(order by temp.orders desc) as rank1 
	from 
	(select sku_id,count(1) orders from behavior where type=4 group by sku_id)temp 
	)temp2 
where temp2.rank1<=10;

得到结果如下:

  • 浏览量:

在这里插入图片描述

  • 销量:

在这里插入图片描述

其中,浏览量前10的商品在销量排行榜中仍然前十的有7名,从这里也可看出浏览量与销量有一定关系,因此增加浏览量确实可能会促成销量的增加,商品的曝光度还是很有必要的。

3.2 商品种类浏览量排行榜
select * from 
	(select temp.cate as category,temp.pv as pv, dense_rank() over(order by temp.pv desc) as rank1 
	from 
	(select cate,count(1) pv from behavior where type=6 group by cate)temp
    )temp2 
where temp2.rank1<=10;

得到结果如下:

在这里插入图片描述

从该数据中,我们可以分析出哪些种类的商品较容易引人注意,而根据商品浏览与销售的排行榜种数据关系可以得出,浏览量大的商品更容易有较大销售量,因此在商品销售时,商品种类浏览量排行榜对于选择商品的种类有一定指导意义。

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值