淘宝用户行为数据分析 您所在的位置:网站首页 fav车 淘宝用户行为数据分析

淘宝用户行为数据分析

2023-09-11 18:57| 来源: 网络整理| 查看: 265

一、背景描述

随着移动互联网的飞速发展,网上购物成为了人们生活的一部分。淘宝作为电商交易平台,有着较大的用户流量,本文将对淘宝用户的行为数据进行分析,分析将从以下几点出发: 1、用户价值 2、各环节流失率 3、不同时间下的用户行为 4、用户对不同种类商品的喜好

二、数据说明 1.数据来源

阿里云天池:https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1 数据集包含了 2017年11月25日 至 2017年12月3日 之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据总行数为 100,150,807 行,由于数据量巨大,暂时上传了1百万条进行处理,这部分数据中包含 9415 名用户的行为记录。

2.字段说明

数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下: 在这里插入图片描述用户行为类型共有四种,它们分别是: 在这里插入图片描述

三、数据清洗 1、设置字段名称

由于默认的表头是:C1、C2、C3、C4、C5 在这里插入图片描述 原数据通过 datagrip 截取上传到了云端服务器,这里直接在上传数据时进行字段的修改,将默认的 C1~C5 修改成:user_id、item_id、category_id、behavior_type、timestamp 在这里插入图片描述

2、缺失值处理

通过 sql 查询数据是否存在缺失值

select * from userbehavior where user_id is null or item_id is null or category_id is null or behavior_type is null or timestamp is null ;

运行代码,不存在空值

3、重复值处理

查找数据中是否存在重复值

select user_id,item_id,timestamp,behavior_type, count(*) from userbehavior group by user_id, item_id, timestamp,behavior_type having count(*)>1;

运行之后,发现存在重复值 在这里插入图片描述 这里需要将重复的数据删除,并保留一条原数据。因为原数据上传时,主键缺失了,这里新建 id 列,非空、自增长并命名为主键。通过 id 列,对重复数据进行区分。

alter table userbehavior add id int not null auto_increment primary key;

通过分组的形式找到最大的 id ,然后再找到除了这些结果之外的 id,即为重复的多余数据了。但是直接将查询的结果作为条件进行删除会报错,这里要设置一个中间表过渡下,就可以删除了。

delete from userbehavior where id not in( select * from( select max(id) from userbehavior group by user_id,item_id,timestamp,behavior_type) a );

这里其实也可以在数据上传的时候定义多个主键进行去重。

4、数据一致化处理

由于数据中的时间是以时间戳的形式展现的,不便于观看和分析,将其拆分成年月日,时分秒两列,存放日期和时间

# 增加日期列 alter table userbehavior add data varchar(255); # 增加时间列 alter table userbehavior add time varchar(255); # 从时间戳里提取日期 update userbehavior set data=from_unixtime(timestamp ,'%Y-%m-%d'); # 从时间戳里提取时间 update userbehavior set time=from_unixtime(timestamp ,'%H-%i-%s');

数据集的时间区间在 2017年11月25日 至 2017年12月3日 之间,查询是否有不符合条件的数据

select * from userbehavior where data'2017-12-3';

结果存在 459 行不符合条件的数据,进行删除

delete from userbehavior where data'2017-12-3'; 四、数据分析 1、用户价值

用户之间存在着分层,不同的用户所能创造的价值也不同,因此通过 RFM模型 来衡量用户的价值,由于数据集中缺少订单金额数据,因此本次分析中不考虑 M 维度,只分析 R 和 F 两个维度。 R (最近购买时间): 数据集的时间范围在 2017年11月25日 至 2017年12月3日 之间,共 9 天,将其分为 4 档,0-1,2-3,4-5,6-8,分别对应评分 4 到 1 。

select user_id, case when d between 6 and 8 then 1 when d between 4 and 5 then 2 when d between 2 and 3 then 3 when d between 0 and 1 then 4 else null end R from(select user_id,datediff('2017-12-03',max(data)) d from userbehavior where behavior_type='buy' group by user_id) t;

运行代码,可以看到已经成功计算出了各个用户 R 值所对应的评分 在这里插入图片描述 F(消费频率): 消费频率是用户在固定时间内的购买次数(一般是1年)。但是如果实操中实际店铺由于受品类宽度的原因,比如卖 3C 产品,耐用品等即使是忠实粉丝用户也很难在1年内购买多次。所以,一般店铺在运营 RFM 模型时,会把 F 值的时间范围去掉,替换成累计购买次数。 通过代码计算出用户在这段时间内的累计购买次数

select user_id, sum(case behavior_type when 'buy' then 1 else 0 end) s from userbehavior group by user_id order by s desc;

最大值为39 在这里插入图片描述 最小值为0 在这里插入图片描述 付费用户中消费次数从低到高为 0-39 次,将其分为4档,0-9,10-19,20-29,30-39 分别对应评分 1 到 4。

select user_id, (case when s between 0 and 9 then 1 when s between 10 and 19 then 2 when s between 20 and 29 then 3 when s between 30 and 39 then 4 else null end) F from ( select user_id, sum(case behavior_type when 'buy' then 1 else 0 end) s from userbehavior group by user_id) t order by F desc;

在这里插入图片描述 将 R 和 F 汇总到一起,并进行客户分层

select *,( case when R>2 and F>2 then '价值客户' when R2 then '保持客户' when R>2 and F


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有