MySQL数据项目分析实战——淘宝用户行为分析

  • 一、项目背景
  • 二、项目目标
    • 2.1分析目的
    • 2.2分析维度
  • 三、数据的收集与整理
    • 3.1数据来源
    • 3.2数据说明
    • 3.3理解数据
    • 3.4导入数据
  • 四、数据清洗
    • 4.1选择子集
    • 4.2列名重命名
    • 4.3删除重复值
    • 4.4缺失值处理
    • 4.5一致化处理
    • 4.6异常值处理
    • 4.7检查数据
  • 五、数据分析
    • 5.1 基于用户行为转化漏斗分析
      • 5.1.1电商指标分析
        • 5.1.1.1总体行为数据(UV、PV、PV/UV)
        • 5.1.1.2 复购率和跳失率
      • 5.1.2 用户行为转化漏斗模型分析
        • 5.1.2.1总体行为漏斗分析
        • 5.1.2.2独立访客行为漏斗分析
    • 5.2 从时间维度分析用户行为
      • 5.2.1 日均UV、PV、加购/收藏/成交量
      • 5.2.2 一天内UV、PV、加购/收藏/成交量
    • 5.3 从商品维度分析用户行为
      • 5.3.1商品排行榜分析
        • 5.3.1.1商品销量排行榜
        • 5.3.1.2商品浏览排行榜
        • 5.3.1.3商品销量与浏览量间的相关性分析
      • 5.3.2商品四象限划分图
      • 5.3.4互联网“长尾效应”分析
    • 5.4基于RFM模型的用户价值分析
      • 5.4.1 R维度分析
      • 5.4.2 F维度分析
      • 5.4.3 用户分层
      • 5.4.4 RFM模型整体分析结果
  • 六、结论与建议
    • 6.1用户行为转化漏斗分析
    • 6.2时间维度用户行为分析
    • 6.3商品维度分析用户行为
    • 6.4RMF模型分析

一、项目背景

User Behavior 是来自淘宝的用户行为数据集,用于隐式反馈的推荐问题。数据集由阿里巴巴提供。随机选取了大约 100 万用户在 2017 年 11 月 25 日至 12 月 3 日期间具有点击、购买、添加商品到购物车和商品偏好等行为。

关于隐式反馈:
推荐系统中用户对物品的反馈分为显式和隐式反馈。
显式反馈 (如评分、评级) 用户明确表示对物品喜好的行为。
隐式反馈 (如浏览、点击、加入购物车)不能明确反映用户喜好的行为。
显性反馈数值代表偏好程度,隐性反馈数值代表置信度。

>隐式反馈的作用——显著提高推荐系统的预测准确率,体现着用户的兴趣爱好,对隐式反馈信息的挖掘有助于提高推荐系统的效果,以更好地设计推荐系统,提高推荐接受率。

二、项目目标

2.1分析目的

总体目标:为客户提供更精准的隐式反馈推荐。
从用户角度:对于电子商务型产品来说,需要提高用户忠诚度,帮助用户快速找到商品,推荐其真正感兴趣的商品
从网站角度:提高网站交叉销售能力,提高成交转化率,达到精准营销、提高转化率、降低弃购率、最终实现提高客户终身价值的目的。

2.2分析维度

三、数据的收集与整理

3.1数据来源

阿里云天池
[https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1]

3.2数据说明

数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为,包括点击、购买、加购、喜欢。

文件名称 说明 包含特征
UserBehavior.csv 包含所有的用户行为数据 用户ID,商品ID,商品类目ID,
行为类型,时间戳

3.3理解数据

数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下:

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

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

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

3.4导入数据

使用SQLyog
①新建一个库

create database 淘宝用户行为数据分析 IF not EXISTS

②导入外部数据,使用SQLyog外部数据导入向导,选择第二个

③查看数据,发现列名和最后一个字段的数据类型需要修改,先记下来

四、数据清洗

4.1选择子集

所有字段都是有用的,不需要删除字段,但是查询发现导入的数据有1亿条,这次是取100w条进行分析,所以对100w以后的数据进行删除(SQLyog暂时无法在导入数据时选择导入条数)
但是发现导入的数据中第一个字段有重复值,所以增加一个ID标识列并设置为主键,便于删除

ALTER TABLE`userbehavior_csv` ADD COLUMN
id INT(8) PRIMARY KEY AUTO_INCREMENT;

处理后的表格如图,可以进行删除,语法如下

DELETE FROM `userbehavior_csv` WHERE id > 1000000;


查看数据是否已成功删除,查看表结构是否正确

#查看数据是否为100w条
SELECT COUNT(*) FROM `userbehavior_csv`;
#查看表结构,只看前20行即可
SELECT * FROM `userbehavior_csv` LIMIT 20;

4.2列名重命名

使用SQLyog导入的列名自动填写,使用表修改语法对列名进行修改

alter table `userbehavior_csv` change column 1 User_ID varchar;

或直接右键点击【改变表】对字段名进行修改,修改后如下

4.3删除重复值

①检查是否存在重复值

SELECT * FROM userbehavior
GROUP BY User_ID,Item_ID,Category_ID,Behavior_type,`Timestamp`
HAVING COUNT(*)>1;

发现存在一处重复值,对其进行删除

DELETE FROM `userbehavior` WHERE `User_ID` = 1005984;

再进行检查,现在已无重复值

p.s:①选择子集以后就可以对标识列进行删除了

ALTER TABLE `userbehavior` DROP COLUMN `id`;

②若重复值较多,可以再delete语句后面的where子句中添加IN操作符,in后面的值即为之前select出的重复字段,只不过需要将*改为对应的字段

4.4缺失值处理

检查各字段的数据数量是否相等

SELECT
COUNT(`User_ID`),
COUNT(`Item_ID`),
COUNT(`Category_ID`),
COUNT(`Behavior_type`),
COUNT(`Timestamp`)
FROM`userbehavior`;

各字段的数量相等,所以不存在缺失值

4.5一致化处理

目前时间列可读性较差,需要将其分为时间、日期、小时三列
①添加新列Date_time,根据Timestamp返回日期时间

ALTER TABLE userbehavior ADD COLUMN Date_time TIMESTAMP(0)  NULL;
UPDATE userbehavior
SET Date_time = FROM_UNIXTIME(`Timestamp`);

函数:FROM_UNIXTIME
作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
语法:FROM_UNIXTIME(unix_timestamp[,format])

对于timestamp数据类型,如果往这个数据类型插入的列插入NULL值,则出现的值是当前系统时间;插入空值,则会出现 0000-00-00 00:00:00。

②添加新列Date,根据Timestamp返回日期

#日期一共是十个字符*
ALTER TABLE userbehavior ADD COLUMN `Date` CHAR(10);
UPDATE userbehavior
SET `Date` = FROM_UNIXTIME(`Timestamp`,'%y-%m-%d');

p.s刚开始还是将新列的格式设置为了timestamp,但是发现会显示具体时间且为0,所以还是需要用字符型来限制一下,发现日期正好一共是十个字符,使用char型效率更高一点

③添加新列Time,根据Timestamp列返回时间

ALTER TABLE userbehavior ADD COLUMN `Time` CHAR(3);
UPDATE userbehavior
#使用substr函数进行切片,小时的索引是12,只返回小时所以切片长度为2
SET `Time` = SUBSTR(date_time FROM 12 FOR 2);

4.6异常值处理

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

SELECT MAX(`date_time`),MIN(`date_time`) FROM`userbehavior`;

得到如下结果

删除2017年11月25日至2017年12月3日之外的数据

DELETE FROM userbehavior
WHERE DATE < '17-11-25' OR DATE > '17-12-03';

4.7检查数据

任意取数对整理后的数据进行检查

SELECT * FROM `userbehavior` LIMIT 10 ;

五、数据分析

使用MySQL进行分析,Excel进行可视化展示

5.1 基于用户行为转化漏斗分析

5.1.1电商指标分析

5.1.1.1总体行为数据(UV、PV、PV/UV)

#整体数据
SELECT COUNT(DISTINCT user_id) AS UV,SUM(CASE WHEN `Behavior_type` = 'pv' THEN 1 ELSE 0 END) AS '点击',SUM(CASE WHEN `Behavior_type` = 'buy' THEN 1 ELSE 0 END) AS '购买',SUM(CASE WHEN `Behavior_type` = 'cart' THEN 1 ELSE 0 END) AS '加购',SUM(CASE WHEN `Behavior_type` = 'fav' THEN 1 ELSE 0 END) AS '收藏',ROUND(SUM(CASE WHEN `Behavior_type` = 'pv' THEN 1 ELSE 0 END)/COUNT(DISTINCT user_id)) AS 'PV/UV'
FROM `userbehavior`;


可以得到
访问用户总数(PV):9739
页面总访问量(UV):895636
统计区间平均每人页面访问量(UV/PV):四舍五入后92次

5.1.1.2 复购率和跳失率

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

因为后面还会用到以user_id分组的用户行为数据,所以在这里先创建一个视图方便后续查询

/*创建以user_id分组的behavior_type数据视图
会用到user_id、行为总数、各行为的数量等字段
并按照行为总数降序排列*/
CREATE VIEW 用户行为数据 AS
SELECT user_id,COUNT(Behavior_type) AS 用户行为总数,SUM(CASE WHEN `Behavior_type` = 'pv' THEN 1 ELSE 0 END) AS '点击',SUM(CASE WHEN `Behavior_type` = 'buy' THEN 1 ELSE 0 END) AS '购买',SUM(CASE WHEN `Behavior_type` = 'cart' THEN 1 ELSE 0 END) AS '加购',SUM(CASE WHEN `Behavior_type` = 'fav' THEN 1 ELSE 0 END) AS '收藏'
FROM `userbehavior`
GROUP BY `User_ID`
ORDER BY 用户行为总数 DESC;SELECT * FROM `用户行为数据`;`


复购率

#有过购买行为的总人数、购买1次以上的人数(复购人数)、复购率
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 用户行为数据;


复购率取两位小数,使用concat函数与百分号连接提高可读性
可看到复购率高达66.21%,得出结论:淘宝用户忠诚度较高

跳失率
即只有一个行为的用户。跳出率可以反映用户对APP\网站内容的认可程度,或者说网站\APP是否对用户有吸引力。网站\APP的内容是否能够对用户有所帮助留住用户也直接可以在跳出率中看出来,所以跳出率是衡量网站\APP内容质量的重要标准。

SELECT COUNT(user_id) AS 仅访问一次的用户数
FROM `用户行为数据` WHERE 用户行为总数 = 1;


查询可得在统计区间内(9天)仅访问APP一次的用户数量为0,即跳失率为零,说明商品内容、推荐机制等对用户有比较强的吸引力

综合复购率和跳失率来看,淘宝APP的用户忠诚度较高,且内容质量高,可以吸引用户持续使用APP,可以重视用户关系,进一步培养用户忠诚度。

p.s:根据《精益数据分析》中对电子商务模式的总结,用户复购率以90天为统计区间的可靠性更高,当然这次分析根据淘宝APP的用户复购率可以得出淘宝APP目前处于“忠诚度模式”中,所以不要将精力放在获取如何获取更多新用户上,要维护老用户的忠诚度,如提高客服素质,尽可能简化购买流程,鼓励用户使用收藏、撰写评论等。可以适当培养UGC模式,提高用户的参与感。

5.1.2 用户行为转化漏斗模型分析

漏斗分析是一套流程式数据分析,它能够科学反映用户行为状态以及从起点到终点各阶段用户转化率情况的重要分析模型,可以帮助决策者找到用户流失的原因,以提升用户量、活跃度、留存率,并提升数据分析与决策的科学性等。

5.1.2.1总体行为漏斗分析

  • 电商行业常用漏斗模型:APP/网站首页 - 商品详情页 - 添加购物车 - 购物车结算 - 核对订单 - 提交订单 - 选择支付方式 - 支付
  • 但是此次数据集只有商品详情页(pv)、加入购物车(cart)和支付(buy),所以漏斗简化为点击 - 加购+收藏(都属于购买前阶段,所以合并为一个阶段) - 购买
SELECT `Behavior_type`,COUNT(*) FROM `userbehavior`
GROUP BY `Behavior_type`;


使用Excel的转化图表可视化如下图

用户浏览详情页后,点击加购或者收藏的百分比在9.3%左右,最后支付的百分比为2.3%左右,第二步到第三部剩余四分之一左右,但第一步到第二步仅剩9.3%,说明用户在浏览详情页以后大量流失
接下来按照同样方法分析独立访客(UV)的转化漏斗

5.1.2.2独立访客行为漏斗分析

SELECT SUM(CASE WHEN 点击 > 0 THEN 1 ELSE 0 END)AS 点击用户数,SUM(CASE WHEN 收藏 > 0 THEN 1 ELSE 0 END)AS 收藏用户数,SUM(CASE WHEN 加购 > 0 THEN 1 ELSE 0 END)AS 加购用户数,SUM(CASE WHEN 购买 > 0 THEN 1 ELSE 0 END)AS 购买用户数
FROM 用户行为数据;

得到如下结果

使用Excel进行可视化以后的图表如下

可以看出以独立用户为分析维度,用户并没有在点击以后大量流失,有75%的用户选择了加购,40%的用户选择了收藏,且到最后有68.92%的用户最后选择了支付,整体的购买转化率较高,说明APP整体生态健康,可以满足大多数用户的需求。

综合上面两个分析来看,造成总体从PV到有购买意向只有9.3%的原因是:用户在产生购买意向之前会对商品进行大量的比对,在进行比对后才会产生购买意向,最后进行购买。所以比对环节是提升重点,APP可以从推荐机制入手,以用户日常行为为依据,尽量精准推荐,并且需要匹配相关度更高的关键词,完善商品关键词设置制度和搜索算法,减少用户寻找商品的时间成本。

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

5.2.1 日均UV、PV、加购/收藏/成交量

SELECT `date`,COUNT(DISTINCT user_id) AS '每日用户数',SUM(CASE WHEN `Behavior_type` = 'pv' THEN 1 ELSE 0 END) AS '点击',SUM(CASE WHEN `Behavior_type` = 'cart' THEN 1 ELSE 0 END) AS '加购',SUM(CASE WHEN `Behavior_type` = 'fav' THEN 1 ELSE 0 END) AS '收藏',SUM(CASE WHEN `Behavior_type` = 'buy' THEN 1 ELSE 0 END) AS '购买'
FROM userbehavior
GROUP BY `date`;

得到结果如下

使用Excel可视化以后如图(点击量UV为次坐标轴)

由上面的图可以看出,在11.25~12.1期间所有数据波动都比较小,表现平稳,在12.2 ~ 12.3有个小幅度的增加,查询日历可以发现这两天为周末,但11.25 ~26同为周末,所以第二个周末的增幅与周末的相关度较小,再看折线图,收藏与加购的增幅较为明显,所以12.2 ~ 12.3的用户行为增加,与淘宝的双十二预热有关,预热会使购买前置动作的收藏与加购行为量出现增长。

5.2.2 一天内UV、PV、加购/收藏/成交量


使用Excel可视化以后如下图所示

由上图可知,每天的0点到3点,各项指标都会快速降低,在4点左右降到一天内的最低值。从5点开始用户活跃度快速上升,从10点至18点用户活跃度平稳但是在12点和17点有小幅度下降(符合上班、上学人群作息规律),在18点以后又会有一个上升,持续到23点左右,在21点左右达到一天内达到峰值。
可以考虑在20~22点做一些力度较大的优惠活动以提高转化率,在制定运营策略时也可以考虑在这个时间段进行直播带货、拼单促销等活动。
此外可以发现在晚间用户更偏向于进行浏览,白天10点左右时进行购买行为的比率较高,也可以根据这个特性在晚间更倾向于进行商品宣传活动,白天进行转化活动。

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

可以从购买量和浏览量两个维度来对商品受欢迎程度进行分析。浏览量高不一定说明商品受欢迎,也可能是因为推广活动吸引人,可以结合购买量分析商品是否真正受欢迎,若浏览量高但购买量低的话也可以考虑复用宣传方案,同时对商品质量进行提高。

5.3.1商品排行榜分析

5.3.1.1商品销量排行榜

查询销量前十的商品编号及其销量

SELECT COUNT(DISTINCT item_id) FROM userbehavior
WHERE behavior_type = 'buy';SELECT item_id,COUNT(behavior_type) AS 购买量
FROM userbehavior
WHERE behavior_type = 'buy'
GROUP BY item_id
ORDER BY COUNT(behavior_type) DESC
LIMIT 10;


第一条语句得知共有17565件商品最后被购买,但是由排行榜得知最高购买量也只有17件,还有5件销量没超过10,可见没有爆款商品,靠的还是商品的多样化满足客户需求,所以应将注意力放在如何增加商品的多样性,而非打造爆款商品。

5.3.1.2商品浏览排行榜

查询浏览量前十的商品

SELECT item_id,COUNT(behavior_type) AS 浏览量
FROM userbehavior
WHERE behavior_type = 'pv'
GROUP BY item_id
ORDER BY COUNT(behavior_type) DESC
LIMIT 10;

5.3.1.3商品销量与浏览量间的相关性分析

接下来因为要看两表的相关性,所以对上面两个查询创建两个视图,然后对两个视图进行左连接

SELECT a.item_id,a.购买量,b.浏览量
FROM `销量排行榜` a
LEFT JOIN 浏览排行榜 b
ON a.item_id = b.`item_id`;

得到结果如下

可以看到购买量前十的商品的浏览量都没有排到前十,说明购买量与浏览量的相关性比较差,销量高的产品不一定浏览量就会高,那其他行为(加购、收藏)与商品销量的相关性如何呢?可以进一步进行分析

5.3.2商品四象限划分图

以浏览量和销量作为分析维度来对商品进行四象限划分,两个维度分别取20、3,原始数据过多,各取500行
根据浏览量新建一个浏览量前100的表(因为视图不支持子查询),代码如下

CREATE TABLE 浏览量排行榜
SELECT item_id,COUNT(behavior_type) AS 浏览量
FROM userbehavior
WHERE behavior_type = 'pv'
GROUP BY item_id
ORDER BY COUNT(behavior_type) DESC
LIMIT 500;

然后使用子查询对量表进行连接,查询浏览量排行榜前500的商品的销量

SELECT item_id,COUNT(behavior_type) AS 购买量
FROM `userbehavior`
WHERE behavior_type = 'buy'
AND item_id IN(SELECT item_id FROM `浏览量排行榜`)
GROUP BY item_id
ORDER BY COUNT(behavior_type) DESC
;



将两个数据导入Excel后,用vlookup函数和iferror函数连接为一个表,使用Excel散点图可视化后如图

处于第Ⅰ象限的商品:此类商品的浏览量与销量都处于较高的水平,属于比较受用户欢迎的商品
优化方法:目的为提高此类商品的曝光量,平台加大推荐力度,从而提高浏览量,发掘潜在用户销量也会随之提升。

处于第Ⅱ象限的商品:此类商品的销量高,但是浏览量低,说明该类商品
①属于垂直领域,有特定受众会直接进行性购买,用户的购买目标明确
②商品本身转化率应该较高,但是曝光量过少,商家宣传力度小,用户接触到该类商品的渠道较少
优化方法:需要分析商品特征与用户画像,收集该类商品的个性化信息和用户特征,分析该商品是否属于垂直刚需商品,是否存在特定的消费群体。
①若存在,商家可以针对该类用户推测出特定活动,做到精准推送,或建立该类商品受众的专属社群,提供用户交流平台,进一步增加用户粘性。
②若不存在,则商家应该加大宣传力度,多做宣传,增加商品权重,设置高频率搜索关键词,设计亮眼的宣传图等,增加用户的浏览量,销量也会随之提升。

处于第Ⅲ象限的商品:浏览量和销量都比较低,说明用户对商品不感兴趣,需要考虑流量入口和商品本身两方面的问题
优化方法①流量问题:是否对商品的宣传力度过小,用户没有渠道点进来此类商品?可以尝试提高商品的曝光量
②若提高商品曝光量后商品的销量还是比较低迷,就需要考虑商品本身是否是用户真正需要的,效果不好的商品也可以直接优化掉

处于第Ⅳ象限的商品:商品浏览量高,但是销量低,说明商品整体的转化率很低,也可以从一下几方面分析问题所在
①目标人群送达:可能是商品本身的宣传非常有吸引力,但是指向性不够明确,导致很多非目标用户点击商品,但是没有进行购买
②商品定价:商品定价过高,同类可替代的高性价比商品太多,用户就会转向其他同类商品
③商品详情页、客服及评论区:用户无法从详情页和客服得到需要的的商品详细信息,或者商品评论有比较扎眼的差评,导致用户退出购买
④购买流程:可能是优惠券使用方式复杂,商品凑单购买流程复杂,让用户放弃购买。

优化方法:根据上述原因使用A/B测试、调研等方法,找出结果即可。

5.3.4互联网“长尾效应”分析

2004年10月,美国《连线》杂志主编克里斯·安德森(ChrisAnderson)在他的文章中第一次提出长尾(Long Tail)理论,他告诉读者:商业和文化的未来不在热门产品,不在传统需求曲线的头部,而在于需求曲线中那条无穷长的尾巴。

按照商品销量对商品进行分类统计

#查询商品件数及购买次数
SELECT a.购买次数,COUNT(item_id) AS 商品量
FROM (SELECT item_id,COUNT(behavior_type) AS 购买次数FROM `userbehavior`WHERE behavior_type = 'buy'GROUP BY item_idORDER BY COUNT(behavior_type) DESC) a
GROUP BY a.购买次数
ORDER BY a.购买次数;


导入Excel可视化以后如图所示

发现购买一件商品的比例占到了88.45%,说明淘宝APP符合长尾效应,主要营收靠长尾效应的累积效应,而并非某种“爆款商品”。

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

由于数据集中没有金额字段,所以此次分析从R、F两个维度来进行分析,首先需要分别对两个维度进行统计,制定分级标准,然后进行打分,最终按照综合分数对用户分层

5.4.1 R维度分析

由于整个数据集区间为9天,每2天为一个区间
0~2天设置为3
3~5天设置为2
6~8天设置为1

CREATE VIEW r值 AS
SELECT user_id, MIN(时间间隔) AS R
FROM(SELECT user_id, DATEDIFF('2017-12-03',DATE) AS '时间间隔'FROM userbehaviorWHERE behavior_type = 'buy') a
GROUP BY user_id;#计算分值分布情况
SELECT a.value_r,COUNT(a.value_r)
FROM(
SELECT user_id,R,CASE WHEN R BETWEEN 0 AND 2 THEN 3WHEN R BETWEEN 3 AND 5 THEN 2ELSE 1 END AS value_r
FROM `r值`) AS a
GROUP BY value_r
order by value_r;

得到结果如下

使用Excel进行可视化以后如图所示

有超过半数的客户会在购买第二天后就再进行购买,说明淘宝APP现在已经有比较好的用户粘性。

5.4.2 F维度分析

先计算用户的消费频率,排序后根据结果设定计算区间

SELECT user_id, COUNT(behavior_type) AS F
FROM userbehavior
WHERE behavior_type='buy'
GROUP BY user_id
ORDER BY COUNT(behavior_type) DESC;

以用户ID作为分组条件后得到如下结果

可以看到最大值为72,将其分为6个区间
1 ~ 9:1分 10 ~ 19:2分 20 ~ 29:3分
30 ~ 39:4分 40 ~ 49:5分 50分以上:6分
上面的数据创建视图后进行统计

SELECT a.value_f,COUNT(a.value_f)
FROM(
SELECT user_id,f,CASE WHEN f BETWEEN 1 AND 9 THEN 1WHEN f BETWEEN 10 AND 19 THEN 2WHEN f BETWEEN 20 AND 29 THEN 3WHEN f BETWEEN 30 AND 39 THEN 4WHEN f BETWEEN 40 AND 49 THEN 5ELSE 6 END AS value_f
FROM `F值`) AS a
GROUP BY value_f
ORDER BY value_f;


Excel可视化以后如图所示

由图可见,在统计区间内,有近97%的人在淘宝消费了1~9次

5.4.3 用户分层

对R和F进行综合打分


#R打分
CREATE VIEW R打分 AS
SELECT user_id,CASE WHEN R BETWEEN 0 AND 2 THEN 3WHEN R BETWEEN 3 AND 5 THEN 2ELSE 1 END AS value_r
FROM `r值`;#F打分
CREATE VIEW F打分 AS
SELECT user_id,CASE WHEN f BETWEEN 1 AND 9 THEN 1WHEN f BETWEEN 10 AND 19 THEN 2WHEN f BETWEEN 20 AND 29 THEN 3WHEN f BETWEEN 30 AND 39 THEN 4WHEN f BETWEEN 40 AND 49 THEN 5ELSE 6 END AS value_f
FROM `F值`;CREATE VIEW RF综合分析 AS
SELECT a.user_id, a.value_r, b.value_f, a.value_r+b.value_f AS value_RF
FROM r打分 a
INNER JOIN f打分 b ON a.user_id=b.user_id;

得到结果如下

根据value_RF的值对用户进行分层,降序排列后发现9分为最高分值,2分为最低分值,所以按照每2分一个区间对用户进行分层:
2 ~ 3分:易流失用户
4 ~ 5分:挽留用户
6 ~ 7分:发展用户
8 ~ 9分:忠诚用户
然后统计各层级用户数量,代码如下

SELECT a.用户分层,COUNT(a.用户分层) as 人数
FROM(SELECT CASE WHEN value_rf BETWEEN 2 AND 3 THEN '易流失用户'WHEN value_rf BETWEEN 4 AND 5 THEN '挽留用户'WHEN value_rf BETWEEN 6 AND 7 THEN '发展用户'WHEN value_rf BETWEEN 8 AND 9 THEN '忠诚用户' END AS 用户分层FROM `rf综合分析`)AS a
GROUP BY 用户分层;

执行结果如下

使用Excel可视化以后如下图所示

5.4.4 RFM模型整体分析结果

在四个分类中,挽留用户的占比最高,这部分用户待挖掘的潜在价值很大,应该对这部分用户进行定时促活,如优惠发放、上新消息送达、提供更精准的商品推荐等,主要目的是留住用户,并提升消费品率,提高其转化率;
易流失用户占到了42%左右的比例,占比也比较高,可能是找到了同类的竞品APP或是产品体验不佳,可以对该部分用户进行调研找到其流失原因,及时进行新活动心有会推送,对用户进行召回;
发展用户占比较低,可以对这部分用户进行定期推送,发送优惠消息邮件通知,来增加消费频次
忠诚用户的占比是最少的,这部分用户的价值极高,需要制定专属的运营策略来进行维护,如专属优惠、专属客服等,保证其较高的用户粘性。

此次用户分层效果分析整体效果不佳,可能有下面两个原因
1、区间划分不合理,不一定非要按照等差数列来划分区间,可以先看一下各个分数的用户人数并结合实际的业务场景进行区分;
2、两个维度划分的段数不同,且差异较大,相当于给两个部分赋予了不同的权重

可以尝试进行四象限气泡图划分,可能效果会好一些

六、结论与建议

此次从四大维度分析了100w条数据,现整理整体结论与建议如下:

6.1用户行为转化漏斗分析

  • 1.根据用户行为转化分析来看,用户从点击到购买的转化率较高,可以通过引导用户收藏加购来提高从这两个步骤到购买的转化率。但是从浏览详情页PV到有购买意向的转化率只有6.19%,说明用户在浏览详情页以后会有一个大量的流失,用户在产生购买意向之前会对商品进行大量比对,然后才会产生购买意向。
  • 2.根据跳失率和复购率来看,淘宝APP中的商品对用户具有足够的吸引力,可以得出淘宝APP目前处于“忠诚度模式”中,重点为维系老用户的忠诚度,

优化方法:APP的内容推荐机制应该更加精准,收集用户日常行为与画像,并根据此进行精准推荐,匹配相关度更高的关键词,完善商品关键词设置制度和搜索算法,提高搜索筛选精度,提供同类产品比较功能,减少用户寻找商品的时间成本。并对不同受欢迎程度的商品赋予不同的权重,权重高的商品搜索结果更靠前。
由于用户忠诚度较高,所以重点为维系忠诚度,可以从提高客服素质,简化购买流程,建立老客户社群,甚至适当培养UGC模式,提高用户的参与感等入手,最大程度地提高用户的参与感。

6.2时间维度用户行为分析

从日期维度来看,用户的各种行为数据在周末或者周中的差异不是很大,但是会收到购物节活动的影响,如第二个周欧模就双十二的影响导致用户点击和加购的行为数量明显增加,可以进一步扩大分析范畴,如以整年为单位进行环比分析,标注出各个比较大的购物节,重点关心购物节前后的用户行为数量变化,同时对每周末进行比较,分析购物节推广活动安排在周末/非周末对用户行为的影响;在一年中对各个月进行同比对比购买行为的趋势,找出整个月中是否有购买行为上升的规律(结合用户年龄数据进行分析,购买行为上升可能与发工资的时段也有关)
从时间维度上来看,用户的各种行为活跃高峰期都在晚间的21点左右,说明安排在这个时间段的活动对用户的触达率是最好的,可以考虑在这个时间做一些力度较大的优惠活动,也可以将转化行为的时间安排在这个时间段,如直播带货等来进行用户的活跃度提升及转化。并且发现用户在晚间的行为更偏向于浏览商品,白天10点左右购买行为的比率较高,可以根据这个特性在晚间对商品进行宣传,然后在白天进行转化。

6.3商品维度分析用户行为

商品的浏览量和销量的相关性不是很高,所以没有必要一味提高浏览量, 销量并不会随之增加。根据四象限划分图的分析,应重点提升第二象限及第三象限的商品,针对第二象限的商品应提高其曝光率,找出它的用户画像,尽量做到精准推送或建立专属社群,提供用户交流平台,提升用户粘性及转化率;第三象限应尝试提升商品的流量,分析销量是否会随之提升。
通过分析发现,商品的销量主要靠的是“长尾效应”而非某款爆款商品,但是这是站在APP的角度来看,对于B端商家来说,也可以打造爆款商品来减少商品种类繁多的运营及库存成本。
针对销量排行榜前面的商品可以增加其曝光率推荐率,在用户搜索时进行优先展现。

6.4RMF模型分析

对用户群体进行划分,可以根据不同的标签采取不同的运营策略。
忠诚用户:重点关注,制定专属的运营策略进行维护, 应该提高满意度,增加留存,保证用户粘性
易流失用户和发展用户:可以举行折扣活动或捆绑销售来增加用户的购买频率,定期推送消息,对用户进行召回;
对于重要挽留客户,需要关注他们的购物习性,发掘潜在价值,定时促活,做到精准化营销,以提升他们的购买意愿,提升转化率

MySQL数据项目分析实战——淘宝用户行为分析相关推荐

  1. MySQL—淘宝用户行为分析

    文章目录 一.项目背景 二.结论先行 2.1用户行为漏斗转化分析 2.2时间维度分析用户行为 2.3商品维度分析用户行为 2.4RFM模型用户价值分析 三.数据分析 3.1数据来源 3.2数据说明 3 ...

  2. 阿里天池:淘宝用户行为分析项目

    数据来源:阿里天池 - 淘宝用户商品行为数据 (在这里仅选用表名为 "tianchi_mobile_recommend_train_user" 中的数据,用作淘宝用户行为分析) 项 ...

  3. 使用MySQL进行数据分析——以淘宝用户数据为例

    使用MySQL进行数据分析--以淘宝用户数据为例 1. 背景介绍 本文主要是练习使用 mysql 进行数据分析,结合 excel 进行可视化分析,数据来源为阿里云天池的淘宝用户数据集,本数据集(Use ...

  4. Python项目实战 —— 04. 淘宝用户行为分析

    Python项目实战 Python项目实战--目录 Python项目实战 -- 04. 淘宝用户行为分析 一.背景 二.解题思路 三.数据分析 3.1 数据清洗 3.2 数据分析 3.2.1 用户整体 ...

  5. 淘宝用户行为分析MySQL

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 淘宝用户行为分析MySQL 一.数据清洗 二.总体情况 1.UV.PV.人均浏览次数 2.复购率.跳失率 三.用户行为分析 1.行为转 ...

  6. 数据分析实战之淘宝用户行为分析(3) -- 用户行为路径分析

    数据分析实战之淘宝用户行为分析(3) -- 用户行为路径分析 淘宝行为分析Tableau可视化展示 数据分析实战之淘宝用户行为分析(5) - 数据分析报告 数据分析实战之淘宝用户行为分析(4) - 用 ...

  7. Python数据分析案例—淘宝用户行为分析

    赛题与数据 一.项目背景 本数据报告以淘宝app平台为数据集,通过行业的指标对淘宝用户行为进行分析,从而探索淘宝用户的行为模式,具体指标包括:日PV和日UV分析,付费率分析,复购行为分析,漏斗流失分析 ...

  8. 淘宝用户行为分析项目

    淘宝用户行为分析项目 说明:项目通过jupter notebook.使用pandas,numpy,matplotlib,seaborn等第三方库对数据进行不同维度上的分析. 一.项目背景 本数据报告以 ...

  9. 【数据分析实战经验】淘宝用户行为分析①-AARRR、RMF模型(数据量:百万级,工具mysql)

    电商平台的用户行为分析,能一定程度的推动运营.产品等迭代,提供决策支持. 数据集来源: 阿里云池 样本量: 3835331 方法工具: 本文用2017年11月至12月的淘宝用户行为,AARRR模型及R ...

最新文章

  1. 24. 进程同步之Lock
  2. 面试题目--MPEG4与H.264的区别
  3. java poi 如何合并多个sheet 为一个sheet_Java POI组件实现多个Excel文件整合成一个多Sheet的Excel文件...
  4. 计算机风险评估管理程序,第5章 信息安全风险评估实施流程
  5. UEditor之基于Java图片上传前后端源码研究
  6. bzoj 3671 贪心
  7. day14ARP协议、路由原理、ARP实验、ARP防御、2003虚拟机如何关闭定时锁屏
  8. CRM给B2B企业带来的影响
  9. 编制现金流量表3个步骤!
  10. QQ邮箱搜索器 邮箱地址批量搜索
  11. JPEG算法 格式压缩方案
  12. 厦大2021期中考试
  13. Day 5:自己编写的mysql类
  14. 巴黎报纸对拿破仑的描述
  15. 搭档之家:就离谱!!! “假通知书”在淘宝突然泛滥 阿里:已处罚,欢迎大家举报
  16. 网易云音乐小程序登录接口显示400,拥挤问题解决
  17. win10 程序最小化不在任务栏了?在左下角
  18. 搜狗怎么做收录?我们来看看搜狗官方的回答
  19. 矩阵分解 SVD 和 CUR的区别
  20. BOSS战的设计与架构

热门文章

  1. 差分数列中的对数螺线性质
  2. Struts2——开始学习
  3. 在delphi下生成二维码
  4. 计算机领域闪客是指,第一单元闪客之门.doc
  5. 【scrapy爬虫】crawl自动化模板爬取网易新闻
  6. abb变频器pid调节水泵方案
  7. 2021年安全员-B证(广西省-2021版)考试报名及安全员-B证(广西省-2021版)免费试题
  8. elasticsearch flattened 不支持 numeric range 却又支持 range查询?
  9. 跨平台科学应用程序:QtiPlot 1.X Crack
  10. 利用AI进行智能安全防护:案例与经验分享