一、数据来源及说明
数据来源于: https://tianchi.aliyun.com/dataset/dataDetail?dataId=46&userId=1
二、分析维度
根据现有数据及分析目的,从四个维度进行分析:
第一个维度:用户购物情况整体分析
以PV、UV、平均访问量、跳失率等指标,分析用户最活跃的日期及活跃时段,了解用户行为习惯
第二个维度:商品购买情况分析
从成交量、人均购买次数、复购率等指标,探索用户对商品的购买偏好,了解商品的销售规律
第三个维度:用户行为转化漏斗分析
从收藏转化率、购物车转化率、成交转化率,对用户行为从浏览到购买进行漏斗分析
第四个维度:参照RFM模型
对用户进行分类,找出有价值的用户
三、分析正文
分析步骤如下:
提出问题------理解数据------数据清洗------构建模型------数据可视化
(一)提出问题
用户最活跃的日期及时段
用户对商品有哪些购买偏好
用户行为间的转化情况
用户分类,哪些是有价值的用户
(二)理解数据
本文从数据集中选取包含了2014年11月18日至2014年12月18日之间,10000名随机用户共12244074条行为数据,数据集的每一行表示一条用户行为,共6列。
列字段包含以下:
user_id:用户身份
item_id:商品ID
behavior_type:用户行为类型(包含点击、收藏、加购物车、购买四种行为,分别用数字1、2、3、4表示)
user_geohash:地理位置(有空值)
item_category:品类ID(商品所属的品类)
time:用户行为发生的时间
(三)数据清洗
1、导数
通过Navicat导入csv文件,数据库的表名为user。
2、缺失值处理
user_geohash 列表示地理位置信息,由于数据存在大量空值,且位置信息被加密处理,难以研究,因此后续不对user_geohash 列进行分析。
3、数据一致化处理
由于 time 字段的时间包含(年-月-日)和小时,为了方便分析,将该字段分成 2 个字段,一个日期列(date)和一个小时列(time)。
//select * from user;
alter table user change time date varchar(255);
alter table user add time varchar(20);
update user set time = date;
update user set date=replace(date,date,SUBSTRING_INDEX(date,' ',1));
update user set time=replace(time,time,substring_index(time,' ',-1));
由于 behavior_type 列的四种行为类型分别用 1,2,3,4 表示点击、收藏、加购物车、购买四种行为,为了方便查看数据,将1,2,3,4替换为 ‘pv’、’fav‘,’cart’,‘buy’ 。
alter table user modify behavior_type varchar(20);
#将behavior_type列数据替换
update user set behavior_type=replace(behavior_type,1,'pv');
update user set behavior_type=replace(behavior_type,2,'fav');
update user set behavior_type=replace(behavior_type,3,'cart');
update user set behavior_type=replace(behavior_type,4,'buy');
select * from user;
通过查询表结构,可以看到 date 列不是日期类型:
desc user;