淘宝用户购物行为数据分析

一、项目背景与目的

1.1项目背景

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

1.2项目目标本次分析的目的是想通过对淘宝用户行为数据分析,为以下问题提供解释和改进建议:

分析用户使用淘宝过程中的常见电商分析指标,建立用户行为转化漏斗模型,确定各个环节的流失率,找到需要改进的环节;研究用户在不同时间尺度下的行为规律,找到用户在不同时间周期下的活跃规律,据此提出相应的营销策略;

分析用户对不同种类商品的偏好,提出针对不同商品的营销策略;通过RFM模型对用户进行分层,对不同类型用户的行为进行分析,并提出相应的运营策略。

1.3数据集来源与介绍

数据源:淘宝用户购物行为数据集_数据集-万邦科技(http://o0b.cn/iimiya

UserBehavior是阿里巴巴提供的一个淘宝用户行为数据集,用于隐式反馈推荐问题的研究。

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

列名称说明

用户ID整数类型,序列化后的用户ID商品ID整数类型,序列化后的商品ID

商品类目ID整数类型,序列化后的商品所属类目ID

行为类型字符串,枚举类型,包括('pv','buy','cart','fav')

时间戳行为发生的时间戳注意到,用户行为类型共有四种,它们分别是

行为类型说明

pv商品详情页pv,等价于点击buy商品购买

cart将商品加入购物车

fav收藏商品

关于数据集大小的一些说明如下

维度数量

用户数量987,994商品数量4,162,024

用户数量987,994

商品类目数量9,439

所有行为数量100,150,807

二、分析框架

三、数据清洗

3.1数据导入

使用MySQL新建一个数据库

CREATEDATABASEIFnotEXISTS淘宝用户行为

CHARACTERSET'utf8mb4';

导入外部数据源

因为数据量过大,所以选择导入前1000000行数据

源数据集中不包含字段名称行,导入时字段名行设置为0,第一个数据行设置为1。

导入完成,耗时1分17秒

3.2重命名列名

ALTERTABLEuserbehaviorCHANGEf1user_idVARCHAR(255),

CHANGEf2item_idVARCHAR(255),

CHANGEf3categoryVARCHAR(255),

CHANGEf4behaviorVARCHAR(255),

CHANGEf5time_stampVARCHAR(255);

也可以直接在导入数据时重命名

3.3去除重复值去除重复值这里,可以将user_id,item_id,time_stamp三者进行联合,形成联合主键,对数据集进行分组。如果数据集中没有重复值,则理论上用三者进行联合分组之后,count(*)应该是不大于1的;如果数据集中有重复值,则理论上用三者进行联合分组之后,count(*)应该是大于1的。因此在这里判断count(*)是否大于1可以用having函数。

SELECTuser_id,item_id,time_stamp

FROMuserbehavior

GROUPBYuser_id,item_id,time_stamp

HAVINGCOUNT(*)>1;

结果显示没有重复值。

3.4查看缺失值查看缺失值,可以统计每一个字段下有多少行,如果行数是相等的说明没有缺失值。

SELECTcount(user_id),count(item_id),count(category),count(behavior),count(time_stamp)

FROMuserbehavior;

结果显示各字段行数相等,不存在缺失值。

3.5时间格式转换

--新增date、hour时间列ALTERTABLEuserbehaviorADDtimeTIMESTAMP,ADDdateVARCHAR(10),

ADDhourVARCHAR(10);

--时间格式转换

UPDATEuserbehavior

SETtime=FROM_UNIXTIME(time_stamp,'%Y-%m-%d%H:%i:%s'),

date=FROM_UNIXTIME(time_stamp,'%Y-%m-%d'),

hour=FROM_UNIXTIME(time_stamp,'%H');

3.6剔除异常值

需要检查日期是否都在需要分析的时间范围内,即2017年11月25日至2017年12月3日之间。

--检查日期是否都在2017年11月25日至2017年12月3日之间

SELECTMIN(date),MAX(date)

FROMuserbehavior;

剔除异常值

--排除日期不在2017年11月25日至2017年12月3日之间的数据

DELETEFROMuserbehavior

WHEREdate<'2017-11-25'ORd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值