目录

一、项目介绍

1.1 数据集

1.2 分析思路

二、数据预处理

2.1 数据抽样、导入数据

2.2 数据清洗

2.3 导出数据

三、数据分析

3.1 从网站维度分析用户行为

3.1.1 UV、PV

3.1.2 转化率

3.2 从时间维度分析用户行为

3.2.1 每天的用户行为

3.2.2 每小时的用户行为

3.3 从商品维度分析用户行为

3.3.1 四种环节排名前十的产品

3.3.2 按照商品销量对商品分类统计

3.4 从RFM模型分析用户质量

四、总结及建议


一、项目介绍

1.1 数据集

数据集来源:淘宝用户购物行为数据集

本数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的组织形式和MovieLens-20M类似,即数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下:

列名称 说明
UserID 用户ID,整数类型,序列化后的用户ID
ItemID 整数类型,序列化后的商品ID
CategoryID 整数类型,序列化后的商品所属类目ID
BehaviorType 字符串,枚举类型,包括('pv', 'buy', 'cart', 'fav')
TimeStamp 行为发生的时间戳

用户行为类型共有四种,它们分别是:

行为类型 说明
pv 商品详情页pv,等价于点击
buy 商品购买
cart 将商品加入购物车
fav 收藏商品

数据集大小说明如下:

维度 数量
用户数量 987,994
商品数量 4,162,024
商品类目数量 9,439
所有行为数量 100,150,807

1.2 分析思路

使用工具:MySQL Workbench、Excel、Jupyter Notebook

使用MYSQL数据库,先用Jupyter Notebook进行20%的数据抽样,然后在Workbench上进行数据预处理,最后用Workbench和EXCEL进行数据分析和可视化。

二、数据预处理

2.1 数据抽样、导入数据

1.用Jupyter Notebook抽样导入:

import pandas as pd
data = pd.read_csv(r'F:\data analysis\taobao\UserBehavior.csv')
data.info() #查看数据状态
data=data.sample(frac=0.02,replace=False,axis=0)
data.to_csv(r"F:\data analysis\taobao\ub_sample.csv")
data.head() #删除多出的序号列

 2.在Workbench新建一个表:

 3.导入数据:

使用命令行连接MySQL,并进入到taobao数据库

ALTER TABLE taobao.userbehavior DROP COLUMN SerialNumber; #删掉多余的首列

最终得到如下:

2.2 数据清洗

1.时间格式转换

USE taobao;
ALTER TABLE userbehavior ADD COLUMN DateTime TIMESTAMP(0) NULL;
SET DateTime = FROM_UNIXTIME(TimeStamp);

SELECT TimeStamp, DateTime FROM userbehavior
WHERE DateTime is NULL; #DateTime相比TimeStamp缺失了8条数据

#对带“-”的时间戳进行更改
SET TimeStamp = right(TimeStamp, 10)
WHERE TimeStamp like '-%'; #更新对应的8个日期码
SET DateTime = FROM_UNIXTIME(TimeStamp)
WHERE DateTime is NULL

 2.删除不需要的数据

DELETE FROM userbehavior
WHERE DateTime < '2017-11-25 00:00:00' OR DateTime > '2017-12-04 00:00:00';

3.检查缺失值

SELECT count(CategoryID) FROM userbehavior
WHERE CategoryID IS NULL;
SELECT count(BehaviorType) FROM userbehavior
WHERE BehaviorType = '';
SELECT count(DateTime) FROM userbehavior
WHERE DateTime is NULL;

4.检查异常值

SELECT count(BehaviorType) as num FROM userbehavior
WHERE BehaviorType <> 'pv' and 'buy' and 'cart' and 'fav'

5.新增辅助列

ALTER TABLE userbehavior ADD COLUMN Dates CHAR(10) NULL;
SET Dates = SUBSTRING(DateTime FROM 1 FOR 10);
ALTER TABLE userbehavior ADD COLUMN Hours CHAR(10) NULL;
SET Hours = SUBSTRING(DateTime FROM 12 FOR 2);

最终得到如下:

6.得出四个维度的数量 

维度 数量
用户数量 712,155
商品数量 747,857
商品类目数量 7,124
所有行为数量 2,001,880

2.3 导出数据

三、数据分析

3.1 从网站维度分析用户行为

SELECT Dates,count(DISTINCT UserID) as UV,sum(case when BehaviorType='pv' then 1 else 0 end) as PV,sum(case when BehaviorType='buy' then 1 else 0 end) as Buy,sum(case when BehaviorType='buy' then 1 else 0 end)/count(DISTINCT UserID) as '成交转化率'
FROM taobao.userbehavior
GROUP BY Dates;

3.1.1 UV、PV

EXCEL可视化

3.1.2 转化率

3.1.2.1 成交转化率

EXCEL可视化

3.1.2.2 pv-cart-buy、pv-fav-buy转化率

SELECT sum(case when BehaviorType='pv' then 1 else 0 end) as '浏览数',sum(case when BehaviorType='cart' then 1 else 0 end) as '加购数',sum(case when BehaviorType='fav' then 1 else 0 end) as '收藏数',sum(case when BehaviorType='buy' then 1 else 0 end) as '购买数'
FROM taobao.userbehavior

EXCEL可视化

本项目从2017-11-25到2017-12-03一共9天时间。根据日历可知,2017-11-25、2017-11-26、2017-12-02、2017-12-03这四天是周末。
根据每日PV、UV柱形图分析,11月25号到12月01号浏览量和不同的用户访问量呈现一个稳定趋势,可见与是否为周末并没明显区别。相比其他日期,2号和3号数据呈上升趋势,大概涨30%左右,推测可能是因为大型平台活动,比如双十二的提前预热。

根据俩张漏斗图分析,平台商品的浏览到购买转化率为2.25%,加购和收藏处于中间环节,浏览到加购的转化率6.15%高于浏览到收藏的转化率3.22%,说明用户更喜欢把商品加入购物车。而收藏到购买的转化率70.04%高于加购到购买的转化率36.65%,说明用户更大几率下单放在购物车里的商品。

3.2 从时间维度分析用户行为

3.2.1 每天的用户行为

SELECT Dates,count(DISTINCT UserID) as '每天用户数',sum(case when BehaviorType='pv' then 1 else 0 end) as '浏览数',sum(case when BehaviorType='cart' then 1 else 0 end) as '加购数',sum(case when BehaviorType='fav' then 1 else 0 end) as '收藏数',sum(case when BehaviorType='buy' then 1 else 0 end) as '购买数'
FROM taobao.userbehavior
GROUP BY Dates;

EXCEL可视化

3.2.2 每小时的用户行为

SELECT Hours,count(DISTINCT UserID) as '每时用户数',sum(case when BehaviorType='pv' then 1 else 0 end) as '浏览数',sum(case when BehaviorType='cart' then 1 else 0 end) as '加购数',sum(case when BehaviorType='fav' then 1 else 0 end) as '收藏数',sum(case when BehaviorType='buy' then 1 else 0 end) as '购买数'
FROM taobao.userbehavior
GROUP BY Hours;

EXCEL可视化

根据每天的用户行为柱形图分析,四种环节中浏览数远超于其他,每种环节随着日期的走势很相近,说明每个用户的行为习惯相近。再具体分析,11月25号和11月26号是周末相比工作日,浏览数和收藏数数据增加,说明用户在周末更有时间刷淘宝。购买数相比周末有所减少,可能是用户在周末有充足的时间挑选导致审美疲劳,也可能受不着急使用的因素影响,而工作日增加可能是工作上的临时急需直接购买。可在周末推出各种营销活动,比如各平台上网店直播、明星直播带货、博主推广商品、限时秒杀等。

根据每时的用户行为柱形图分析,四种环节中浏览数远超于其他,每种环节随着日期的走势很相近,说明每个用户的行为习惯相近。在一天中的凌晨2点到5点,各指标呈现下滑趋势。在早上6点到10点,各指标呈现上升趋势。18点到22点大幅度上升。各指标整体数据的变化趋势比较符合正常用户的作息规律。可根据此规律在用户每天最活跃的时间推出促销活动,比如各平台上网店直播、明星直播带货等。

3.3 从商品维度分析用户行为

3.3.1 四种环节排名前十的产品

1.商品购买量排行前十

SELECT ItemID, count(BehaviorType) as '购买次数'
FROM taobao.userbehavior
WHERE BehaviorType='buy'
GROUP BY ItemID
ORDER BY count(behaviorType) DESC
LIMIT 10

2. 商品浏览量排名前十

SELECT ItemID, count(BehaviorType) as '浏览次数'
FROM taobao.userbehavior
WHERE BehaviorType='pv'
GROUP BY ItemID
ORDER BY count(behaviorType) DESC
LIMIT 10

3.商品加购量排名前十

SELECT ItemID, count(BehaviorType) as '加购次数'
FROM taobao.userbehavior
WHERE BehaviorType='cart'
GROUP BY ItemID
ORDER BY count(behaviorType) DESC
LIMIT 10

4.商品收藏量排名前十

SELECT ItemID, count(BehaviorType) as '收藏次数'
FROM taobao.userbehavior
WHERE BehaviorType='fav'
GROUP BY ItemID
ORDER BY count(behaviorType) DESC
LIMIT 10

3.3.2 按照商品销量对商品分类统计

SELECT a.`购买次数`, count(a.ItemID) as '商品数量'
FROM(SELECT ItemID, count(BehaviorType) as '购买次数'FROM taobao.userbehaviorWHERE BehaviorType='buy'GROUP BY ItemIDORDER BY count(BehaviorType) DESC) a
GROUP BY a.`购买次数`
ORDER BY count(a.ItemID) DESC;

EXCEL可视化

由此可看出,四类环节的前十产品各不相同,说明每个环节上用户的关注度都不太一样,浏览次数高的不一定会加购或收藏,加购或收藏高的不一定会购买。其中,商品3031354和812979在三种环节出现,说明可能是近期比较大热的单品。
大部分商品销量只有1个,占比89%,有较少的商品购买次数最多不超过24次,前十的其他商品购买次数超过不10次,排名前十的各个商品之间的购买次数没有较大的差距。说明其商品售卖主要是依靠商品的累计效应,并非爆款商品的带动。

3.4 从RFM模型分析用户质量

参考通用的RFM 模型,模型中R指最近一次购买时间,M值消费金额,F指购买频率。由于本次数据集中没有消费金额这一项,故只根据R、F两个维度作用户划分,最终按照综合得分对用户分层。

#创建RF值的视图
USE taobao;
CREATE VIEW RF_value asSELECT UserID,DATEDIFF('2017-12-03', Dates) as R, SUM(CASE WHEN BehaviorType='buy' THEN 1 ELSE 0 END) as FFROM userbehaviorWHERE BehaviorType='buy'GROUP BY UserID;

USE taobao;
select MAX(R),MIN(R),MAX(F),MIN(F)
from rf_value

结合人工浏览的建立打分标准:

消费时间间隔R值 R值得分 消费频率F值 F值得分
0-2 4 >=4 4
3-4 3 3 3
5-6 2 2 2
7-8 1 1 1
#创建RF的得分视图
USE taobao;
CREATE VIEW RF_Score as
SELECT UserID, R,CASE WHEN R BETWEEN 0 AND 2 THEN 4WHEN R BETWEEN 3 AND 4 THEN 3WHEN R BETWEEN 5 AND 6 THEN 2WHEN R BETWEEN 7 AND 8 THEN 1ELSE 0 END as R_Score,F,CASE WHEN F>=4 THEN 4WHEN F=3 THEN 3WHEN F=2 THEN 2WHEN F=1 THEN 1ELSE 0 END as F_Score
FROM rf_value;

计算R_Score和F_Score的平均值

USE taobao;
SELECT AVG(R_Score),AVG(F_Score)
FROM RF_Score

根据平均值对比,将用户分为价值用户、发展用户、保持用户和挽留用户四种,并对不同类别的用户占比进行分析,从而实现差异化营销。

#创建RF得分产生的用户分类视图
USE taobao;
CREATE VIEW User_group AS
SELECT UserID,(CASE WHEN R_Score > 2.7303 AND F_Score > 1.0471 THEN '价值用户'WHEN R_Score > 2.7303 AND F_Score < 1.0471 THEN '发展用户' WHEN R_Score < 2.7303 AND F_Score > 1.0471 THEN '保持用户'WHEN R_Score < 2.7303 AND F_Score < 1.0471 THEN '挽留用户' END) AS UserGroup
FROM RF_Score;

SELECT UserGroup,COUNT(UserID)
FROM user_group
GROUP BY UserGroup

EXCEL可视化

超过一半为发展用户,说明这部分客户可能对平台上的商品种类和价格或平台页面的布局操作等不满意。发放优惠卷、提高商品匹配度、调整平台页面布局使其具有吸引力等措施。
挽留用户占比也较大,说明这部分客户给平台带来的潜力价值大。可对此进行定期上新提醒、促销活动、订单搭配推荐、提高商品匹配度等措施,留住用户。
保持用户只占比2%,可通过发送短信提醒。
价值用户占比少,属于高质量用户,高质量用户的出现意味着平台具有一定的发展潜力,需要指定具体针对性的营销策略来保持。

四、总结及建议

1.从浏览到中间环节的转化率不到6.5%,为了提高用户的购买意向,应尽量给用户推荐更感兴趣和关注的相关商品,优化平台的搜索匹配度,减少用户寻找商品过程的成本。

2.每天和每时四种环节的用户行为习惯相近,与是周末还是工作日的区别不大,但受双十二活动影响比较大,在每天的18点到22点是用户最活跃的时间段,呈现一个高峰,可在每晚这个时间段进行平台网店直播带货、限时秒杀等营销活动。

3.大部分商品购买次数只有1次,说明其商品售卖主要是依靠商品的累计效应,并非爆款商品的带动。平台可对购买次数较多的商品进行推广,增加广告投放,提高曝光率,增加流量和关注度,同时要注意品控,打造爆款商品。

4.对不同类型的用户采取不用的营销策略,对发展用户可采取发放优惠卷、提高商品匹配度、调整平台布局使其具有吸引力;对挽留用户可采取定期上新提醒、促销活动、订单搭配推荐、提高商品匹配度等措施;对保持用户,可采取发送短信提醒等措施;对高质量用户,需要指定具体针对性的营销策略。

淘宝用户购物行为分析相关推荐

  1. 【TIANCHI】天池大数据竞赛(学习赛)--- 淘宝用户购物行为数据可视化分析

    目录 前言 一.数据集的来源和各个字段的意义 二.数据分析 1.引入库 2.读入数据 3.查看数据数量级 4.PV(Page View)/UV访问量 5.漏斗模型 6.用户购买商品的频次分析. 7.A ...

  2. 天池赛:淘宝用户购物行为数据可视化分析

    目录 前言 一.赛题介绍 二.数据清洗.特征构建.特征可视化 1.数据缺失值及重复值处理 2.日期分离,PV及UV构建 3.PV及UV可视化 4.用户行为可视化 4.1 各个行为的面积图(以UV为例) ...

  3. MySQL项目-淘宝用户购物行为数据可视化分析

    一.项目背景与目的 1.1 项目背景 UserBehavior是阿里巴巴提供的一个淘宝用户行为数据集,用于隐式反馈推荐问题的研究.数据集包含了2017年11月25日至2017年12月3日之间,有行为的 ...

  4. 实战整理-阿里天池淘宝用户购物行为数据集实战(MySQL数据分析+Navicat)

    数据集链接:淘宝用户购物行为数据集_数据集-阿里云天池 因原数据集过大,电脑和MySQL跑不动,故截取前一百万条数据进行实战演练. 1.导入数据 利用navicat软件直接导入下载好的Excel文件( ...

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

    一.项目背景和目的 项目集中于对淘宝用户行为的分析,如购买时段的分析.热销商品的分析.用户行为转化漏斗分析以及通过RFM模型对用户进行分类等,希望从中探索用户购买的规律,并将这些规律与店铺营销策略相结 ...

  6. python 淘宝用户行为数据集 分析与数据源

    利用Python对淘宝用户行为进行分析 源数据来源于: https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1 可以 ...

  7. python开发跟淘宝有关联微_基于Python的Apriori和FP-growth关联分析算法分析淘宝用户购物关联度...

    关联分析用于发现用户购买不同的商品之间存在关联和相关联系,比如A商品和B商品存在很强的相关性,常用于实体商店或在线电商的推荐系统,例如某一客户购买A商品,那么他很有可能会购买B商品,通过大量销售数据找 ...

  8. 基于AARRR、RMF模型对淘宝用户行为进行分析

    文章目录 一.分析目的 二.数据来源 字段说明 三.数据处理 1.引入库 2.数据清理及预处理 四.用户行为分析(AARRR模型) 活跃度 双十二当天活跃度的变化 不同用户行为的活跃度变化 留存率 漏 ...

  9. 利用Python对淘宝用户行为进行分析

    1. 项目背景 该项目的数据集来源于天池,是由阿里巴巴提供的一个淘宝用户行为数据集,其中包含了2017年11月25日至2017年12月3日之间,一百万个随机用户的所有用户行为(行为包括点击.购买.加购 ...

最新文章

  1. 基因结构图绘制-单个基因
  2. FMDatabaseQueue 数据库多线程操作、事务处理
  3. 网站开发常用jQuery插件总结(四)验证插件validation
  4. Redis设置外网可访问
  5. SpringMVC - 非注解的处理器映射器和适配器
  6. linux 安装反病毒软件
  7. C/C++语言宏定义##连接符和符#的使用
  8. 什么是 Time to live TTL
  9. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task2数据分析
  10. 光学基础知识:白光、颜色混合、RGB、色彩空间
  11. Dools的DMN运行时示例
  12. C++定时器的实现之格式修订版
  13. 【汇总】numpy函数合集
  14. C#生成不重复随机数列表
  15. 利用C++不使用递归,循环和goto,打印1到100 的某一答案分析
  16. linux qt目录查看,QT遍历目录获取文件信息
  17. redis集群原理(简版)
  18. Wireshark抓取VLAN包
  19. Maven之快速入门
  20. 腾讯云TVP大数据之约活动归来

热门文章

  1. Linux查看端口占用情况的命令
  2. 【无标题】健身卡杀寇决山卡卡
  3. SSH 登录报错 Permission denied 或 VNC 登录报错 Hint:Caps Lock on
  4. 【ZCMU1600】卡斯丁狗要吃糖葫芦
  5. 我是如何通过拉勾教育学习《java高薪训练营》课程突破困境的
  6. AI智能检测服务器,AI智能分析预警系统主机
  7. 依米花音乐播放器php源码下载
  8. 楼市十大卖楼花招曝光
  9. 01 A股10个月争取翻10倍实盘操作记录(前言)
  10. Java: 将课程表解析成每周课表