电商用户行为分析——sql实战项目

目录

一、项目背景

 二、项目目标

2.1分析目的

2.2分析思路

三、数据读取与清洗

3.1数据来源

3.2数据集介绍

3.3数据清洗

3.3.1检查是否存在重复值

3.3.2缺失值处理

3.3.3一致化处理

3.3.4异常值处理

四、数据分析

4.1整体概况

4.1.1uv/pv,uv,pv

4.1.2复购率和跳失率

4.2用户消费行为转化分析

4.2.1总体行为漏斗分析

4.2.2独立访客行为漏斗分析

4.3 时间维度分析用户行为及用户量

4.3.1 用户行为时间维度分析

4.3.2 用户量时间维度分析

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

4.4.1商品排行榜分析

4.4.2商品四象限划分图

4.4基于RFM模型的用户价值分析

4.4.2 F维度分析

4.4.3用户分层

4.4.4 RFM模型分析结果

五、结论

5.1用户消费行为的转化分析

5.2时间维度的用户行为分析

5.3商品维度分析用户行为

5.4基于RFM模型用户价值分析


一、项目背景

UserBehavior是阿里巴巴提供的一个淘宝用户行为数据集,数据集包含了2017年11月25日-2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢),用以进行隐式反馈推荐问题的研究。

推荐系统中用户对物品的反馈分为显式和隐式反馈,显式反馈 (如评分、评级) 或单一的隐式反馈 (如浏览、点击、加入购物车)。 隐式反馈推荐是推荐系统通过对内容和用户行为的分析,建立适当的模型,帮助用户从海量的数据中找到自己感兴趣的内容。推荐系统中用户的行为反馈包括显式反馈和隐式反馈,隐式反馈信息在推荐系统算法中被广泛应用。隐式反馈体现着用户的兴趣爱好,对隐式反馈信息的挖掘有助于提高推荐系统的效果,以更好地设计推荐系统

 二、项目目标

2.1分析目的

为客户提供更精准的隐式反馈推荐。

从用户角度:提高用户忠诚度,帮助用户快速找到商品;

从网站角度:提高网站交叉销售能力,提高成交转化率。

2.2分析思路

主要从以下五个维度进行分析和建议

整体行为数据分析:PV,UV,平均访客量,复购率和跳失率

用户消费行为分析:从总体行为(PV)和独立访客行为(UV)两方面进行从商品的点击、收藏、加购、购买各环节转化率分析,提出改善转化率的意见

时间维度分析:用户在哪些时间、时段活跃,包括用户行为时段分析和用户量(UV,交易用户数)时段分析

商品角度分析——用户对哪些产品感兴趣,查询浏览量top20以及销量top20商品,进行浏览量和销量相关性分析

三、数据读取与清洗

3.1数据来源

阿里巴巴天池:数据集-阿里云天池

3.2数据集介绍

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

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

四种用户类型包括:

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

3.3数据清洗

将数据导入MySql,保留前100w条数据

3.3.1检查是否存在重复值

#检查是否存在重复值
SELECT * FROM userbehavior 
GROUP BY User_ID, Item_ID, Cate_ID, Behav_type, Timestamp
HAVING COUNT(*)>1;

不存在重复值

3.3.2缺失值处理

#缺失值处理
SELECT 
COUNT(User_ID),
COUNT(Item_ID),
COUNT(Cate_ID),
COUNT(Behav_type),
COUNT(Timestamp)
FROM userbehavior;

查询各列行数,都为1000000行,不存在缺失值

3.3.3一致化处理

将时间戳Timestamp列转化为三列,分别为时间,日期,小时 

#添加新列Date,根据Timestamp返回日期
ALTER TABLE userbehavior ADD COLUMN Date char(10) NULL;
UPDATE userbehavior
SET Date = FROM_UNIXTIME(`Timestamp`,'%y-%m-%d');

#添加新列Date_time,根据Timestamp返回日期时间
ALTER TABLE userbehavior ADD COLUMN Date_time TIMESTAMP(0)  NULL;
UPDATE userbehavior
SET Date_time = FROM_UNIXTIME(`Timestamp`);
#添加新列Time,根据Timestamp列返回时间
ALTER TABLE userbehavior ADD COLUMN Time char(10) null;
update userbehavior
set Time = SUBSTRING(Date_time FROM 12 FOR 2);

添加后表格

3.3.4异常值处理

由于项目背景是要通过对2017年11月25日至2017年12月3日之间的淘宝用户行为数据集进行隐式反馈推荐问题的研究,所以要对这个时间段外的数据进行删除处理。


#检查时间始末
SELECT MAX(Date_time),MIN(Date_time) FROM userbehavior

 删去该异常值

DELETE FROM userbehavior where Date >'2017-12-03' or Date <'2017-11-25';

四、数据分析

数据集情况概览

SELECT count(DISTINCT User_ID) as 用户数,
count(DISTINCT Item_ID) as 商品数量,
count(DISTINCT Cate_ID) as 商品类目数量,
count(Behav_type) as 行为数量
FROM userbehavior;

4.1整体概况

4.1.1uv/pv,uv,pv

#整体数据
SELECT COUNT(DISTINCT user_id) AS 独立访客数,
	SUM(CASE WHEN `Behav_type` = 'pv' THEN 1 ELSE 0 END) AS '点击',
	SUM(CASE WHEN `Behav_type` = 'buy' THEN 1 ELSE 0 END) AS '购买',
	SUM(CASE WHEN `Behav_type` = 'cart' THEN 1 ELSE 0 END) AS '加购',
	SUM(CASE WHEN `Behav_type` = 'fav' THEN 1 ELSE 0 END) AS '收藏',
	ROUND(
		SUM(CASE WHEN `Behav_type` = 'pv' THEN 1 ELSE 0 
			END)/COUNT(DISTINCT user_id)) AS '人均浏览次数'
FROM userbehavior;

可以得到页面点击数(PV)为895636

独立访客数(UV)为9739

人均浏览次数(PV/UV)为92次

4.1.2复购率和跳失率

复购率定义:消费两次及以上的用户在总消费用户中占比
跳失率定义:仅仅访问了单个页面的用户占全部访问用户的百分比,或者指从首页离开网站的用户占所有访问用户的百分比。

首先创建视图,以user_id分组,得到用户行为数据


create view 用户行为数据 AS
select User_ID,COUNT(Behav_type) as '用户行为数',
sum(case when Behav_type ='pv' then 1 else 0 end ) as '点击',
sum(case when Behav_type ='fav' then 1 else 0 end) as '收藏',
sum(case when Behav_type ='cart' then 1 else 0 end) as '加购',
sum(case when Behav_type ='buy' then 1 else 0 end) as '购买'
from userbehavior
GROUP BY User_ID
ORDER BY 用户行为数 DESC;

 计算复购率

复购率=购买2次及以上用户数/总购买用户数

-- 复购用户、复购率
SELECT
sum(case when 购买>1 then 1 else 0 end ) as 复购次数,
sum(case when 购买>0 then 1 else 0 end ) as 购买次数,
CONCAT(ROUND(sum(case when 购买>1 then 1 else 0 end)*100/ sum(case when 购买>0 then 1 else 0 end),2),'%') as 复购率
from 用户行为数据;

 计算跳失率

跳失率=只有点击行为的用户/总用户数

(即该用户行为数=点击数)

select
* from 用户行为数据
where '用户行为数'='点击'

  • 7
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值