基于python实现RFM分析
2020-03-25 本文已影响0人
桃子镇
CREATED BY TAO
一 .先了解一下什么是RFM分析,RFM分析是根据客户活跃程度和交易金额贡献,进行客户价值细分的一种客户细分方法。
RFM由R(Recency)进度,F(Frequency)频度,M(Monetary)额度组成。
R表示客户最近一次交易时间的间隔。R值越大,表示客户交易发生的日期越久。R值越小,表示客户交易发生的日期越近。
R表示客户在最近一段时间内交易的次数。F值越大,表示客户交易越频繁。F值越小,表示客户越不活跃。
M表示客户在最近一段时间内交易的金额。M值越大,表示客户价值越高。M值越小,表示客户价值越低。
这样不同分类组合,就形成了八种客户类型

RFM的分析过程
FRM=100*R_S+10*F_S+1*M_S

二.接下来就是基于python来进行RFM分析
USERID列为客户ID、ORDERDATE列为时间列、OEDERTD列为订单ID、AMOUNTINFO列为金额列
第一步:进行数据清洗
(1)删除所有空值的行
(2)筛选AMOUNTINFO列的数据,因为金额的最小值为0.5,数值<1,因此要提取出AMOUNTINFO列中>1的数据进行分析
(3)处理时间列的数据类型
第二步:进行数据分析
(4)求日期到现在的距离
(5)从时间距离中获得天数
(6)统计每个用户距离现在多久没有消费了,找到最小的最近消费距离
(7)统计每个用户交易的总次数,即对订单数计数
(8)统计每个用户交易的总金额,即对每次的交易金额求和
(9)使用merge函数把r_agg、f_agg、m_agg三个数据框关联起来
FRM=100*R_S+10*F_S+1*M_S
(10)求R_S的得分
最近消费距离列(recencyAgg)按照从小到大顺序排列,间隔距离越大也就是recencyAgg列的值越大,得分越小
因此,标签rlabels按照从大到小排列。
(11)求F_S的得分
消费频次列(requencyAgg)的数据并未呈正态分布,所以未使用quantile函数,而是查看数据的分布情况按照分布情况的从小到大顺序进行排列,消费频次越大也就是frequencyAgg列的值越大,得分越大
因此,标签flabels按照从小到大排列。
(12)求M_S的得分
消费金额列(monetaryAgg)按照从小到大的顺序排列,消费金额越大也就是monetaryAgg列的值越大,得分越大
因此,标签mlabels按照从小到大排列。
(13)将r_s、f_s、m_s添加到数据框aggData中
(14)将r_s、f_s、m_s列数据类型转换成数值型(int),再计算RFM得分
(15)为RFM得分添加标签
(16)对客户等级列(level)进行分组,按照客户ID进行计数统计,并把数据放入customerlevels数据框中
结论:
RFM模型可以对客户的终生价值做一个合理的预估,基于一个理想的客户特征来衡量现实中客户价值的高低,通过此类分析,定位最有可能成为品牌中式客户的群体,让我们把主要精力放在最有价值的用户身上开展精准营销。

CREATED BY TAO