RMF模型简介

RMF模型是客户管理中,常被用来衡量客户价值和客户创利能力的重要方法。它主要考量三个指标:

  • 最近一次消费(Recency):指客户最近一次交易的时间间隔。理论上R值越小的客户是价值越高的客户,即对店铺的回购刺激最有可能产生回应。
  • 消费频率(Frequency):指客户在最近一段时间内交易的次数。F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
  • 消费金额(Monetary):指客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RMF模型是一种常用的客户价值分析模型,用于识别哪些客户对于企业更具价值。RMF模型基于三个指标:最近一次购买时间(Recency)、购买频率(Frequency)和购买金额(Monetary),通过这些指标来评估客户的价值。下面是一个简单的RMF模型分析的示例代码,并解释了每一步的作用: ```python import pandas as pd # 读取数据 data = pd.read_excel('your_file.xlsx') # 计算最近一次购买时间 snapshot_date = data['OrderDate'].max() + pd.DateOffset(days=1) data_R = data.groupby(['CustomerID'])['OrderDate'].max().reset_index() data_R['Recency'] = (snapshot_date - data_R['OrderDate']).dt.days # 计算购买频率 data_F = data.groupby(['CustomerID'])['OrderID'].count().reset_index() data_F.rename(columns={'OrderID': 'Frequency'}, inplace=True) # 计算购买金额 data_M = data.groupby(['CustomerID'])['Sales'].sum().reset_index() data_M.rename(columns={'Sales': 'Monetary'}, inplace=True) # 合并数据 rfm = pd.merge(data_R[['CustomerID', 'Recency']], data_F[['CustomerID', 'Frequency']], on='CustomerID') rfm = pd.merge(rfm, data_M[['CustomerID', 'Monetary']], on='CustomerID') # 将RFM值分档 quantiles = rfm.quantile(q=[0.25, 0.5, 0.75]) quantiles = quantiles.to_dict() def R_score(x, d): if x <= d['Recency'][0.25]: return 4 elif x <= d['Recency'][0.5]: return 3 elif x <= d['Recency'][0.75]: return 2 else: return 1 def FM_score(x, c): if x <= c['Frequency'][0.25]: if x <= c['Monetary'][0.25]: return 1 else: return 2 elif x <= c['Frequency'][0.75]: if x <= c['Monetary'][0.5]: return 3 else: return 4 else: if x <= c['Monetary'][0.75]: return 5 else: return 6 rfm['R_score'] = rfm['Recency'].apply(R_score, args=(quantiles,)) rfm['F_score'] = rfm['Frequency'].apply(FM_score, args=(quantiles,)) rfm['M_score'] = rfm['Monetary'].apply(FM_score, args=(quantiles,)) # 计算总得分 rfm['RFM_score'] = rfm['R_score'] * 100 + rfm['F_score'] * 10 + rfm['M_score'] # 输出RFM分析结果 print(rfm.head()) ``` 1.读取数据 这一步是使用Pandas库中的read_excel()函数从Excel文件中读取数据。 2.计算最近一次购买时间 这一步是计算每个客户的最近一次购买时间,并将其转换为天数。使用Pandas库中的groupby()函数将订单按客户ID分组,然后使用max()函数获取每个客户的最近一次订单时间。最后,使用pd.DateOffset()函数将日期加上一天,并将其与最近一次订单时间相减,以获得天数。 3.计算购买频率 这一步是计算每个客户的订单数量,作为购买频率。使用Pandas库中的groupby()函数将订单按客户ID分组,然后使用count()函数获取每个客户的订单数量。 4.计算购买金额 这一步是计算每个客户的订单金额,作为购买金额。使用Pandas库中的groupby()函数将订单按客户ID分组,然后使用sum()函数获取每个客户的订单金额。 5.合并数据 这一步是将最近一次购买时间、购买频率和购买金额合并到一个数据框中。使用Pandas库中的merge()函数将数据框按客户ID进行合并。 6.将RFM值分档 这一步是将RFM值分档,并将其转换为RFM分数。使用Pandas库中的quantile()函数计算RFM值的四分位数,并将其转换为字典形式。然后,定义R_score()函数和FM_score()函数,将RFM值转换为分数。最后,使用apply()函数将R_score()函数和FM_score()函数应用到每个RFM值上,以获得R_score、F_score和M_score。 7.计算总得分 这一步是将R_score、F_score和M_score合并为RFM_score。使用Pandas库中的乘法和加法运算符计算RFM_score。 8.输出RFM分析结果 这一步是打印RFM分析结果。使用Pandas库中的head()函数打印前五行RFM分析结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值