淘宝用户行为分析
一、项目背景
随着电商行业的发展度过红利期,新客获取的流量成本居高不下,对消费品牌的直接影响则是销售贡献中增量的减少。为了弥补乏力的增长,各个品牌越来越重视对存量人群进行精细化运营,因为与获取新客相比,对存量老客的运营维护成本更低,反而能带来更高的转化率。
二、数据说明
2.1数据来源
2.2字段说明
所提供数据来自阿里巴巴真实业务数据, 是2017年11月25日至2017年12月3日之间用户行为数据,由于原数据较大(100万),在此只导入前10万条数据进行分析。
此数据集中已有的字段及behavior_type值域说明如下:
三、分析思路
3.1分析目标
基于对淘宝用户行为数据的挖掘,形成数据结论后,输出一套能提高运营效率的策略建议赋能业务增长。
3.2分析思路
项目整体的分析思路:明确问题-分析原因-落地建议。
【明确问题】:通过对整体数据的分析,透视业务现状,并结合分析框架明确业务问题;
【分析原因】:把复杂的业务问题通过多维度分析方法拆解成多个小问题,并选择合适的分析方法、分析模型逐一对问题进行分析
【落地建议】:分析得到的数据结论,需要结合业务场景,转成可落地执行的策略建议,帮助赋能业务增长
四、数据清洗
4.1选择子集
现有的5个字段都有用途,故选择所有子集。
4.2列名均明确易懂,不需要重命名。
4.3删除重复项
– 查找是否存在重复数据并删除
– 新建行id
alter table userbehavior
add id int primary key auto_increment
– 找到重复id并删除重复行记录
delete from userbehavior
where id in (select id
from (select id,user_id,item_id,time_stamp,
row_number()over(partition by user_id,item_id,time_stamp)'重复值'
from userbehavior) as temp
where 重复值>1)
4.4缺失值处理
查找是否存在缺失值
select *
from userbehavior
where user_id is null
or category_id is null
or item_id is null
or time_stamp is null
数据显示无缺失值。
4.5一致化处理、数据排序、异常值处理
(1)时间戳的处理
为了方便后文更复杂的日期分析,这里用函数FROM_UNIXTIME(时间戳,时间格式) 将时间戳转为不同格式的时间。
alter table userbehavior add dates varchar(255);
update userbehavior
set dates = FROM_UNIXTIME(time_stamp,'%Y-%m-%d');
alter table userbehavior add hours varchar(255);
update userbehavior set hours = from_unixtime(time_stamp,'%H');
alter table userbehavior add datetime varchar(255);
update userbehavior
set datetime = FROM_UNIXTIME(time_stamp,'%Y-%m-%d %H:%i:%s');
alter table userbehavioradd weekday varchar(255);
update userbehavior set weekday = weekday(datetime)+1;
(2)剔除超出时间范围的数据
有了日期字段后,就可以直接将超出指定时间范围的数据剔除掉。
delete from userbehavior
where dates<'2021-11-25'or dates >'2021-12-03'
至此,已完成数据清洗工作,剩余的数据便是可以直接用来分析的“纯净”数据。
五、明确问题
此部分要求对业务有个整体的认识,在本案例中,主旨是进行用户行为分析,所以要知道总共有多少会员、他们分布情况如何等。
5.1会员总数
SELECT COUNT(DISTINCT user_id) '会员数' FROM userbehavior
根据统计结果可以知道,出现有业务中,共有983名会员在2017年11月25日-12月3日期间发生了动作。
5.2 AIPL漏斗分析
知道整体有多少会员后,接下来要进一步对他们的行为进行观察,因为分析的是淘宝行为,在电商领域比较常用的方法是AIPL营销模型:
A - Awareness 认知:浏览
I - Interested 兴趣:收藏、加购
P - Purchase 购买:购买
L - Loyalty 忠诚:复购
为了方便进行复杂分析,需要对表结构进行【行列互换】,此操作通过【创建视图】来完成:
CREATE VIEW behavior AS
SELECT user_id, datetime, dates, hours,
max(CASE behavior_type when 'pv' then 1 else 0 end) ' view ',
max(CASE behavior_type when 'fav' then 1 else 0 end) 'favor',
max(CASE behavior_type when 'cart' then 1 else 0 end) 'cart',
max(CASE behavior_type when 'buy' then 1 else 0 end) 'buy'
FROM
userbehavior
GROUP BY user_id, datetime;
------------------------------------
select * from behavior