提出问题
- 探索用户行为的规律
- 找到高销量的商品和商品类目以及用户
- 用户价值分析
理解数据
1.数据来源:阿里云天池数据集
本数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为
数据集具体情况为:用户数量约100万(987,994),商品数量约410万(4,162,024),商品类目数量约1万(9,439),用户行为数量约为1亿条(100,150,807)
数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成
用户行为类型共四种:点击(pv),加入购物车(cart),收藏(fav),购买(buy)
2.字段含义
关于数据集中每一列的详细描述如下:
列名称 | 说明 |
---|---|
用户ID | 整数类型,序列化后的用户ID |
商品ID | 整数类型,序列化后的商品ID |
商品类目ID | 整数类型,序列化后的商品所属类目ID |
行为类型 | 字符串,枚举类型,包括(‘pv’, ‘buy’, ‘cart’, ‘fav’) |
时间戳 | 行为发生的时间戳 |
字段 | 中文说明 | 数据类型 | 字段说明 |
---|---|---|---|
user_id | 用户ID | INT | 用户标识 |
item_id | 商品ID | INT | 商品标识 |
category_id | 商品类目ID | INT | 商品类目标识 |
behavior_type | 用户行为模式 | VARCHAR | 四种类型:pv,cart,fav,buy |
times_tamp | 时间戳 | INT | 行为发生的时间戳 |
取样
1.创建表格,导入100万数据
1 | CREATE TABLE u_behavior( |
从数据集随机抽取100万条数据插入UBehavior
表
1 | -- 随机抽取100万条行为数据并插入表u_behavior |
用户数量约1.1万(11,334),商品数量约40万(405,309),商品类目数量约6千(5836)
1 | -- 查询表u_behavior各字段量级 |
数据清洗
1.检查重复数据
因为用了复合主键(user_id,item_id,times_tamp)保证唯一性,数据导入后没有重复数据。
1 | -- 检查个字段是否有重复值 |
2.检查是否有缺失值
1 | SELECT COUNT(user_id) user_id, COUNT(item_id) item_id,COUNT(category_id) category_id, COUNT(behavior_type) behavior_type, COUNT(time_stamp) time_stamp FROM u_behavior; |
前面创建表已经约束字段NOT NULL可以看到没有缺失
3.格式一致化处理
将时间戳转换
1 | ALTER TABLE u_behavior ADD b_datetime timestamp NOT NULL; |
查看一下数据情况
1 | SELECT * FROM u_behavior LIMIT 100; |
异常值处理
数据集日期是2017年11月25日至2017年12月3日
1 | -- 查看是否有异常值 |
明显有异常值,将异常值删除
1 | DELETE FROM u_behavior |
删除了479条异常
流量指标
计算基本的流量指标:独立访客数UV,访问量PV,平均访问量PV/UV
1 | -- 独立访客数UV,访问量PV,平均访问量PV/UV |
总体数据:独立访客数11334,访问量896540,平均访问量79.1018
绘制行为类型和访客数的占比图
1 | -- 绘制行为类型和访客数的漏斗图 |
用户行为包括点击、加入购物车、收藏和购买,根据计算结果和漏斗图可知:
1) 从用户点击占比100%,加入购物车行为占比6%,收藏行为占比3%,购买行为占比2%
其中从点击行为到加入购物车,转化率骤降94%,可以确认加入购物车环节是夹点位置,该环节较低的转化率影响最后的成交率
2) 从点击行为占比100%,加入购物车行为占比73%,收藏行为占比38%,购买行为占比65%,
其中收藏转化率偏低,但购买转化率很高,购买用户占比高达65%。
可以看出大部分用户习惯浏览后直接购买,(但是也有可能是时间周期不够长,一些收藏的商品或加入购物车的商品来不及转化为消费,还是需要一段时间才可以看出来)
探索用户行为规律,为改善用户体验提供数据依据
计算用户的日活量
1 | -- 每日活跃用户 |
很明显12月2日、3日用户活跃数涨幅明显,这两日是周六日
对比上周末平均活跃8036,本周末活跃10893.5,增长了35.56%
上周末平均 | 8036 |
---|---|
本周末平均 | 10893.5 |
上涨 | 35.56% |
推测:平台是否在做什么活动?
可能12月临近“双12”活动,很多商家在12月1号开始做“双12”的活动预热,从而吸引大量用户活跃起来
计算用户行为日活跃量
1 | -- 计算用户行为日活量 |
计算本周末和上周末的行为增幅对比
b_date | pv | cary | fav | buy |
---|---|---|---|---|
上周末平均值 | 94848.5 | 5728.5 | 2906.5 | 2030 |
本周末平均值 | 122981.5 | 7737.5 | 3808 | 2559.5 |
对比上涨 | 22.88% | 25.96% | 23.67% | 20.69% |
计算用户行为时活跃量
1 | -- 点击 |
可以看见
1)四种行为时活跃有两个明显的增长区间为:6点—10点,18点—22点
2)10点—17点是一个相对平缓的增长区间
3)pv,cart,fav,buy时活量,从晚上18点开始迅速上升,在晚上22点达到了一天的峰值
4)18点—22点对比6点—10点的四种行为时活跃增幅分别为114.28% 、109.10% 、90.55% 、81.73%
pv | cart | fav | buy | |
---|---|---|---|---|
18-22均值 | 62725.6 | 3806.8 | 1811 | 1237.2 |
6-10均值 | 29272.4 | 1820.6 | 950.4 | 680.8 |
增幅 | 114.28% | 109.10% | 90.55% | 81.73% |
探索高销量的商品和商品类目
探索销量TOP10商品和商品类目
1 | -- TOP10销量的商品 |
找出核心付费用户,统计核心付费用户的购买商品类目信息,为其提供定制化的服务
找出购买次数最多的TOP10用户(原数据集没有成交金额之类的数据,于是用购买次数的多少来标的核心付费用户。)
1 | SELECT user_id,COUNT(*) AS '购买次数' |
计算购买最多的user_id为107932的TOP商品类目占比
1 | SELECT category_id, CONCAT(ROUND(COUNT(*)*100/67),'%') AS '购买占比' |
RFM 分析
- R(Recency):客户最近一次交易时间的间隔。R值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。
- F(Frequency):客户在最近一段时间内交易的次数。F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
- M(Monetary):客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。
由于数据集没有金额,这里只对Recency和Frequency进行分析
1 | -- RFM分析 |
分析表明很多人不会在购物完马上选择再进行购物,购买后经过两三天的快递,体验两三天后再进行复购。第七天的复购对比其他时间尤为突出。
所以将评分系统分为
rencency | score |
---|---|
4~5天 | 3 |
6~7天 | 2 |
8天以上 | 1 |
查看用户消费时间间隔和评分
1 | SELECT user_id, recency,( |
frequency作为消费频率是顾客在限定的期间内所购买的次数,就是常客,也是对产品的粘性比较高,忠诚度也高
1 | -- frequency:客户在最近一段时间内交易的次数 |
将frequency分为三个层次,分别对应的分数如下图:
frequecy | score |
---|---|
少于3次 | 1 |
4~7次 | 2 |
8次以上 | 3 |
1 | -- 建立视图查询并计算用户交易次数,建立对应的评分 |
根据recency和frequency 的分数,把用户分为四种类型的客户
R | F | 用户分层 |
---|---|---|
高 | 高 | 重要价值客户 |
高 | 低 | 重要保持客户 |
低 | 高 | 重要发展客户 |
高 | 低 | 重要挽留客户 |
对用户分类
1 | -- 建立用户价值uvalue(User value) |
对客户价值体系分类汇总
可以看到客户主要分为两类:重要挽留客户和重要发展客户
可能是因为淘宝的客户基数比较大,重要价值客户较少
接下来可以放在重要发展用客户的购买频率,针对这部分客户定制对应的策略或活动来提高他们的购买欲,推荐他们购物车或者收藏中的同类商品,提高他们对应的浏览量和销售的转化率等