1.项目介绍
1.1 数据集概况
本项目采用阿里巴巴提供的淘宝用户行为公开数据集,数据集来源阿里云旗下天池大数据平台。
https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1
数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为。数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下:
其中用户行为类型包括:
- pv:商品详情页pv,等价于点击
- buy:商品购买
- cart:将商品加入购物车
- fav:收藏商品
数据集涵盖了98万用户,416万件商品,9000余个商品类目,合计约一亿条数据。
1.2 项目内容
本项目出于机能考虑,实际抽取了100万条数据进行分析。项目包括如下几个部分:
- 数据处理:数据导入/数据清理/时间变量处理;
- 平台流量分析:电商平台基本指标(UV/PV)分日/分时分析;
- 用户行为分析:用户各类行为变化趋势,复购行为分析;
- 转化漏斗分析:行为/用户漏斗分析;
- 用户价值分析:利用RFM模型进行用户区分;
- 推荐系统分析:结合商品销量/曝光量,分析网站推荐系统的有效性
项目数据处理均采用MySQL Workbench完成,可视化部分借助Tableau软件。
将数据导入mysql数据库: load data local infile 'F:\\da\\project\\taobao\\UserBehavior.csv' into table taobao fields terminated by ','; 抽取约100万数据: create view taobao2 as select * from taobao where mod(user_id,100)=0;
2. 数据预处理
# 查看总数据量
select count(1) from taobao2;
#查看前五行数据
select * from taobao2 limit 5;
# 查看重复值
select * from taobao2
group by user_id,item_id,category_id,behavior_type,time_stamp
having count(1)>2; #无重复值
# 缺失值处理
select * from taobao2 where
user_id is null or
item_id is null or
category_id is null or
behavior_type is null or
time_stamp is null; #无缺失值
#这是因为MySql运行在safe-updates模式下,
#该模式会导致非主键条件下无法执行update或者delete命令,执行命令
SET SQL_SAFE_UPDATES = 0;(备注:使用workbench更改date_time的值发生错误时的解决方法)
# 时间变量处理
数据集“时间戳”采用Unix时间戳,转化为datetime类型
alter table taobao2 add column date_time timestamp(0) not null;
update taobao2 set date_time=from_unixtime(time_stamp);
# 提取日期
alter table taobao2 add column dates date not null;
update taobao2 set da