原文链接:如何进行用户价值细分?RFM模型! Part 2 人群优惠敏感度案例
微信公众号:机器学习养成记 搜索添加微信公众号:chenchenwings
在之前的文章中我们介绍了RFM模型的基本知识,主要是根据消费相关的三个维度通过聚类,对人群进行划分(回顾可戳如何进行用户价值细分?RFM模型!Part 1 基础知识)。本篇文章我们就一起看一下如何用python,实现人群优惠敏感度划分。
维度选择
对人群进行不同类别划分,需要用户的历史消费行为数据。对优惠敏感度划分,需要重点关注优惠相关的维度。通常,一个用户优惠敏感性越高,他享受优惠的交易笔数越高,享受优惠金额也越高,因此,优惠交易数、优惠总金额、平均每单优惠金额、优惠交易笔数占所有交易笔数比例、最近一个月内优惠交易笔数、最近一次享受优惠时间等,都可以作为模型的备选维度。
本例中,我们选择优惠总金额、平均每单优惠金额、优惠交易笔数占所有交易笔数比例三个维度进行建模,实际操作中的维度选择,需要根据结果与业务结果的不断修正才能最终确定。
维度:优惠总金额、平均每单优惠金额、优惠交易笔数占所有交易笔数比例
时间窗口:一年
python实现
我们根据某电商一年内的用户消费行为数据,对用户进行优惠敏感度划分。数据具体维度如下:

下面开始具体的人群优惠敏感度划分过程。
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结果更为准确,但计算时间较长,对硬件设备要求也更高。有兴趣的朋友可以自行尝试。
业务分类需求
本例我们是根据Calinski-Harabasz指数选择的聚类数目,有时在实际业务中,会把用户分为3-5类,比如分为极度敏感、较敏感、一般敏感、较不敏感、极度不敏感。然后将每类的聚类中心值与实际业务所需的其他指标结合,最终确定人群类别,判断在不同需求下是否触达或怎样触达。比如电商要通过满减优惠推广一新品牌的麦片,此时可优先选择优惠敏感且对麦片有消费偏好的用户进行精准推送,至于优惠敏感但日常对麦片无偏好的用户可暂时不进行推送或减小推送力度,优惠不敏感且对麦片无偏好的用户可选择不进行推送。可见,在实际操作中,技术指标评价外,还应结合业务需要,才能使模型达到理想效果。
推荐文章

扫描二维码,关注我们。
如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。
快来关注我们吧!

网友评论