如何用mysql对淘宝用户行为进行分析

一、项目背景和目的

项目集中于对淘宝用户行为的分析,如购买时段的分析、热销商品的分析、用户行为转化漏斗分析以及通过RFM模型对用户进行分类等,希望从中探索用户购买的规律,并将这些规律与店铺营销策略相结合,以实现更精细和精准的运营,让业务获得更好的增长。

项目数据来源于数据集-阿里云天池,通过此项目学习电商数据分析的指标与数据分析的基本方法。

本数据集(UserBehavior.csv)包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢),数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。

二、分析维度

根据现有数据及分析目的,从四个维度进行分析:

第一个维度:用户购物情况整体分析

以PV、UV、平均访问量、跳失率等指标,分析用户最活跃的日期及活跃时段,了解用户行为习惯

第二个维度:商品购买情况分析

从成交量、人均购买次数、复购率等指标,探索用户对商品的购买偏好,了解商品的销售规律

第三个维度:用户行为转化漏斗分析

从收藏转化率、购物车转化率、成交转化率,对用户行为从浏览到购买进行漏斗分析

第四个维度:参照RFM模型,对用户进行分类,找出有价值的用户

、分析正文

分析步骤如下:

提出问题------理解数据------数据清洗------构建模型------数据可视化

(一)提出问题

  • 用户最活跃的日期及时段
  • 用户对商品有哪些购买偏好
  • 用户行为间的转化情况
  • 用户分类,哪些是有价值的用户

(二)理解数据

 用户行为类型又分为四种:

pv:商品详情页pv,等价于点击

buy:商品购买

cart:商品加入购物车

fav:收藏

(三)数据清洗

1.分批导入数据:原始数据有1亿多行,数据体量太大,这里我只导入200万行,通过navicate,分批导入。

(特别说明:第一次尝试时导入了700万行的数据,mysql直接崩溃,所以后来就只导入200万行的数据。不知道对于数据量特别大的,一般大家是怎么处理的呢?希望大神们可以在留言指点一二)

新建数据库userbehavior,建立新表:users,字段分别为:user_id(用户ID),item_id(商品ID),item_category(商品类目ID),behavior_type(用户行为),time_stamp(时间戳)

2.缺失值处理:通过查询,所有字段的计数都是200万行,没有缺失值;

3.一致化处理:因为分析涉及到时间、天、小时,所以,要把数据集里的时间戳列,即time_stamp列转化为日期。

增加3列,分别是:date_time, dates,times:

alter table users add column date_time varchar(45) not null;
alter table users add column dates date not null;
alter table users add column times varchar(10) not null;

分别给这3列赋值:

set sql_safe_updates=0;
update users set date_time=from_unixtime(time_stamp);
update users set dates=left(date_time,10);
update users set times=substring(date_time,12,5);

4.对异常值处理:

对dates列的日期值进行检查,看是否有错误值;因为数据集要分析的是从2017.11.25到2017.12.3日的数据,所以把不在这个日期范围内的数据筛选出来:

SELECT 
    dates
FROM
    users
WHERE
    dates NOT BETWEEN '2017-11-25' AND '2017-12-03';

返回991行,也就是说,有991行的日期并不是在这个范围内的,只占到数据集中很少的比例,为了不影响接下来的分析,把这些不符合的行,删除。

-- 删除不在分析范围内的日期值
DELETE FROM users 
WHERE dates NOT BETWEEN '2017-11-25' AND '2017-12-03';

对behavior_type列的值进行检查,看是否有异常值:

select behavior_type 
from users
where behavior_type not in('pv','buy','cart','fav');

查询结果:没有异常值

清洗后数据如下图所示:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值