美文网首页
构建RFM模型

构建RFM模型

作者: Chaweys | 来源:发表于2020-12-15 09:49 被阅读0次

import numpy as np
import pandas as pd
df=pd.read_csv("rfm.csv")
df.head()
'''

    CustomerID    Recency   Frquency    Monetary
0   12347.0        2         7          2866.77
1   12348.0        248       1          17.00
2   12349.0        18        1          1155.75
3   12350.0        310       1          274.00
4   12352.0        36        7          1147.44
'''

'''
R:距离当前日期越近,得分越高,最高5分,最低1分    
F:交易频率越高,   得分越高,最高5分,最低1分
M:交易金额越高,   得分越高,最高5分,最低1分


以上三个指标会将维度再细分出5份,这样就能够细分出5x5x5=125类用户,再根据每类用户精准营销.
显然125类用户已超出普通人脑的计算范畴了。
实际运用上,我们只需要把每个维度做一次两分即可,这样在3个维度上我们依然得到了8组用户(2*2*2)。


即我们可以这样定义

R: 1 if R < R_中位数 else 0 (距今购物间隔越短,代表该用户越活跃)
F: 1 if F > F_中位数 else 0
M: 1 if M > M_中位数 else 0




这样,之前提的问题,就能很容易被解读(编号次序RFM,1代表高,0代表低)

重要价值客户(111):最近消费时间较近、消费频次和消费金额都很高,必须是VIP啊!
重要保持客户(011):最近消费时间较远,但消费频次和金额都很高,说明这是个一段时间没来的忠诚客户,我们需要主动和他保持联系。
重要发展客户(101):最近消费时间较近、消费金额高,但频次不高,忠诚度不高,很有潜力的用户,必须重点发展。
重要挽留客户(001):最近消费时间较远、消费频次不高,但消费金额高的用户,可能是将要流失或者已经要流失的用户,应当基于挽留措施。
'''



构建RFM判别函数
R(x,median) if x<median retuen 1 else 0 
F(x,median) if x<median retuen 1 else 0 
M(x,median) if x<median retuen 1 else 0 

def R(x,median):
    if x<median:
        return 1
    else:
        return 0
    
def F(x,median):
    if x<median:
        return 1
    else:
        return 0
    
def M(x,median):
    if x<median:
        return 1
    else:
        return 0
        
        
#构建中位数字典
#首先去除掉CustomeID该列
df.iloc[:,1:]

#求每列的中位数
df.iloc[:,1:].quantile(0.5)
'''
Recency      51.00
Frquency      2.00
Monetary    427.45
Name: 0.5, dtype: float64
'''

#求每列的中位数,在转为字典
median_dict_all=df.iloc[:,1:].quantile(0.5).to_dict()
median_dict_all
'''
{'Recency': 51.0, 'Frquency': 2.0, 'Monetary': 427.4500000000001}
'''


#再为df添加新的列,用RFM的判别函数
df['R']=df.Recency.apply(lambda x:(R(x,median_dict_all.get("Recency"))))
df['F']=df.Frquency.apply(lambda x:(R(x,median_dict_all.get("Frquency"))))
df['M']=df.Monetary.apply(lambda x:(R(x,median_dict_all.get("Monetary"))))
df.head()
'''

    CustomerID  Recency Frquency    Monetary    R   F   M
0   12347.0      2      7           2866.77     1   0   0
1   12348.0      248    1           17.00       0   1   1
2   12349.0      18     1           1155.75     1   1   0
3   12350.0      310    1           274.00      0   1   1
4   12352.0      36     7           1147.44     1   0   0
'''
RFM模型.png

相关文章

网友评论

      本文标题:构建RFM模型

      本文链接:https://www.haomeiwen.com/subject/midpgktx.html