一、分析背景、数据来源、数据解释
https://tianchi.aliyun.com/dataset/649
由于userbehavior数据集的数据量较大,本次分析使用Navicat将前10万条数据导入MySQL。
二、业务问题及分析思路
分析新视角:构建用户画像
构建用户画像标签体系
三、数据清洗
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');
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 用户行为转化情况
通过对用户进行统计并可视化,可以发现整个购买流程的用户转化率很低。具体表现为点击商品详情页的占比将近90%,但将商品加入购物车和收藏的仅为8.2%,且最终下单购买的行为仅占2.1%。
4.1.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'