前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何进行用户价值细分?RFM模型! Part 2 人群优惠敏感度案例

如何进行用户价值细分?RFM模型! Part 2 人群优惠敏感度案例

作者头像
三猫
发布2019-08-21 15:46:43
2K0
发布2019-08-21 15:46:43
举报
文章被收录于专栏:机器学习养成记

在之前的文章中我们介绍了RFM模型的基本知识,主要是根据消费相关的三个维度通过聚类,对人群进行划分(回顾可戳如何进行用户价值细分?RFM模型!Part 1 基础知识)。本篇文章我们就一起看一下如何用python,实现人群优惠敏感度划分。

1

维度选择

对人群进行不同类别划分,需要用户的历史消费行为数据。对优惠敏感度划分,需要重点关注优惠相关的维度。通常,一个用户优惠敏感性越高,他享受优惠的交易笔数越高,享受优惠金额也越高,因此,优惠交易数、优惠总金额、平均每单优惠金额、优惠交易笔数占所有交易笔数比例、最近一个月内优惠交易笔数、最近一次享受优惠时间等,都可以作为模型的备选维度。

本例中,我们选择优惠总金额、平均每单优惠金额、优惠交易笔数占所有交易笔数比例三个维度进行建模,实际操作中的维度选择,需要根据结果与业务结果的不断修正才能最终确定。

  • 维度:优惠总金额、平均每单优惠金额、优惠交易笔数占所有交易笔数比例
  • 时间窗口:一年

2

python实现

我们根据某电商一年内的用户消费行为数据,对用户进行优惠敏感度划分。数据具体维度如下:

字段名

含义

id

用户id

total_at

一年总消费金额

discount

优惠金额

dis_num

优惠笔数

total_num

总交易笔数

mean_dis_at

优惠交易笔数占所有交易笔数比例

下面开始具体的人群优惠敏感度划分过程。

1、载入相应库,导入数据,进行数据预处理。本例数据中无缺失值,也无逻辑上的异常数据(如:优惠笔数大于总笔数),因此未过多展示数据清洗过程,实际操作中应注意对脏数据判断剔除

2、选择合适的聚类数目。这里我们选择Calinski-Harabasz指数确定最佳聚类数目。

这里可以看到,分成2个类时Calinski-Harabasz指数最大,因此我们选择聚类数目为2。

3、k-means聚类。因为本例中三个维度数据均为百分比,取值在0到1之间,因此未做数据标准化。正常情况下聚类前需要对数据进行标准化处理。

输出为每类中心点和个数,并且三者之和越小,代表价格敏感度越低,因此我们可以计算每类中心点三个值的和。

根据计算结果可以发现,类0的值(1.25)远大于类1的值(0.27),说明类0中的用户比类1用户更具有优惠敏感性。

4、聚类结果可视化。案例中的数据为3维,这里我们选择PCA方法对数据进行降维,方便在平面坐标中对聚类结果进行展示。参数n_components=2表示降为2维。

对数据进行降维进而做画图展示,还可以使用TSNE方法,相比于PCA结果更为准确,但计算时间较长,对硬件设备要求也更高。有兴趣的朋友可以自行尝试。

3

业务分类需求

本例我们是根据Calinski-Harabasz指数选择的聚类数目,有时在实际业务中,会把用户分为3-5类,比如分为极度敏感、较敏感、一般敏感、较不敏感、极度不敏感。然后将每类的聚类中心值与实际业务所需的其他指标结合,最终确定人群类别,判断在不同需求下是否触达或怎样触达。比如电商要通过满减优惠推广一新品牌的麦片,此时可优先选择优惠敏感且对麦片有消费偏好的用户进行精准推送,至于优惠敏感但日常对麦片无偏好的用户可暂时不进行推送或减小推送力度,优惠不敏感且对麦片无偏好的用户可选择不进行推送。可见,在实际操作中,技术指标评价外,还应结合业务需要,才能使模型达到理想效果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习养成记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档