目录
背景知识:
RFM分析模型广泛应用于识别优质客户,是进行客户细分、精准营销,最流行、最简单、最有效的方法。依据RFM分析模型的结果可以定制个性化的沟通和服务方案,并为营销决策提供有力支持。
以往进行RFM分析模型,在数据量不多的情况下,我们可以采用SPSS的直销分析模块(如下图),导入数据,逐步点击就完成了。但是当面临个性化的需求时,这种定制化的工具就满足不了啦,并且SPSS作为IBM的收费项目,价格不菲。本文我们仅用numpy和pandas两个包来就能完成它。
RFM分析模型属于探索性分析方法中的一种,即从海量数据中,依据R、F、M三个指标,获取高价值用户信息。
R:Recency——用户最近一次交易时间的间隔。
F:Frequency——客户最近一段时间内的交易次数。
M:Monetary——客户最近一段时间内的交易金额。
那么引出如下两个问题:
(1)显而易见,R指标在计算时候需要一些反向处理,因为F与M都是越大越好,R是越小越好。
(2)三个指标在各自维度上仅有高与低两个分类,因此组合出8种情况,也是八种价值类型的客户。
下面我们带着上面两个问题仅使用Python的numpy和pandas两个包进行RFM分析模型的编写:
1.场景与需求
如下图为近期的交易数据,订单ID为唯一标示,其余三列为客户ID,交易日期,交易金额;据此进行RFM分析模型的开发:
2.Python代码实现:
3.Python代码解读:
数据存放于一个Excel文件,读取后进行数据格式的转换、列间的运算。
主体思路如下:
1)首先进行 数据透视(可以看作SQL的聚合运算,聚合字段为"客户ID"),分别处理好R、F、M指标所需要的原始值,并以"客户ID"进行关联;
2)针对处理好的数据,进行 数据分箱(数据分成五等分,分别赋予1,2,3,4,5,五个级别分数,数值越大越好,此处R指标需要反向处理),这里就得到了每个客户的R、F、M指标的分值为:R_S、M_S、F_S;
3)总分的计算为RFM = R_S*100+M_S*10+F_S*1;
4.分析与应用
通常我们进行重点营销的判断为 RFM>=500的客户;
或者分别计算R_S、M_S、F_S三列数据的均值,大于等于均值视为“高”,小于均值视为“低”,由此分辨8种不同营销价值的用户。
本文代码与数据集下载方法 :
请私信索取。