大家好,我是摇光~,用大白话讲解所有你难懂的知识点
最近在和同事讨论大数据杀熟,其实就是网络上说的,你在网络上没有秘密~
很多企业都用上了数据分析,为客户归类,再对你们进行大数据杀熟!!
今天我们就来破解一下这个大数据杀熟的一种模型 —— RFM模型。
接下来我将从理论到实操,来给大家讲解一下(全文使用python代码)
一、RFM 模型是什么?
我们还是用几个问题来展开。
① RFM模型是什么?
- RFM模型是
衡量客户价值和客户创造利益能力
的一种工具。
(其实就是利用客户给公司创造价值)2
② RFM三个字母是什么?
RFM三个字母代表三个指标,用来描述客户,以便对客户分层
- R:Recency 表示最近 1 次消费时间间隔
- F:Frequency 表示消费频率
- M:Monetary 表示消费金额
③ RFM模型 实际运作原理是什么?
其实很简单,就是根据上面三个指标,将客户分成8中类型,针对不同类型进行不同的运营方针。“大数据杀熟”也就是针对你是属于 “熟” 的类型。那我们看看有哪八种吧。
上面的分类是官方的分类方法,你可以根据自己的业务情况进行分类,不一定要分成八类,六类、五类都可以。
从上面的解释,我们应该也就知道 RFM模型 适合哪些数据。
④ RFM模型 适合哪些数据?
- RFM模型 主要适用于复购较多的业务场景,比如 快消、电商、美业、服务业等行业
- 这些用户基本都满足 付费流程短,复购较多的特点
⑤ RFM模型 扩展
- 其实根据业务所需,可以将指标进行替换,比如研究用户的活跃程度,指标可以换成最近一次登录时间、登录频次、活跃时长。以此也可以研究用户留存情况。
我们再来了解一下 RFM模型 的优缺点。
⑥ RFM模型的优缺点?
- 优点:数据比较少,只需要 “人、时间、钱” 这三个,就可以算出指标;而且模型分层简单清晰
- 缺点:RFM模型 只适用复购业务、或者重复进行的业务,不适合流程较长的业务。
二、数据准备
在上面我们了解到 RFM模型 是什么、优缺点、及适用场景。
接下来我们来用实战的方式来具体展示 RFM模型。
首先我们来准备数据,需要就数据就三列:客户号、消费日期、消费金额。
(需要完整数据和代码,后台联系我哦~)
三、实践
1、导入数据
import pandas as pd
df = pd.read_excel('RFM数据.xlsx') # 导入数据
2、数据清洗
因为我们需要进行日期的加减,所以必须确保日期列为:datetime类型。
其他数据清洗,比如空值、错误值、偏差值,可以参考我以前的数据清洗文章进行操作。
df['消费日期'] = pd.to_datetime(df['消费日期']) # 确保 消费日期 列为datetime类型
3、得到消费频率、消费金额、消费间隔数据
对数据清洗之后,就可以求 F、R、M的值,这里就对客户进行 group by 进行分类
再对金额求和、对日期求次数、对日期求最大值,这样就能求得 F、R、M值了。
# 这里对消费日期求 count 以此求得 消费频率(R)
# 这里对消费日期求 max 以此求得 最近一次消费时间
# 这里对消费金额求 sum 以此求得 消费金额(M)
RFM2 = df.groupby('客户号').agg({'消费日期':['count','max'],'消费金额':'sum'}).reset_index()
# 对字段重命名
RFM2.columns = ['客户号','F','R','M']
# 将现在的日期或统计日期 减去 最近一次消费时间,就可以得到消费间隔时间(F)
RFM2['R'] = (datetime.now()-RFM2['R']).dt.days
结果如下:
4、制定标准并得出 F、R、M值
这里我采用 R、F、M 的平均值制定标准,你们可以根据实际业务来进行判断 RFM 的高低值。
可以不按照他官方的制定,反正这个模型也就是一个思想,最终利用都是靠自己。
R_mid = RFM2['R'].mean() # 最近一次消费时间间隔
F_mid = RFM2['F'].mean() # 消费频率
M_mid = RFM2['M'].mean() # 消费金额
# 对于 F、M 值,大于均值的属于 高,小于均值的属于 低
def sign_FM(values,mid):
if(values) > mid:
return 1
else:
return 0
# 对于 R 值,小于均值的属于 高,大于均值的属于 低
def sign_R(values,mid):
if(values) < mid:
return 1
else:
return 0
# 计算 R、F、M 对应的 高低 值
RFM2['R_sign'] = RFM2['R'].apply(lambda x:sign_R(x,R_mid))
RFM2['F_sign'] = RFM2['F'].apply(lambda x:sign_FM(x,F_mid))
RFM2['M_sign'] = RFM2['R'].apply(lambda x:sign_FM(x,M_mid))
结果如下:
5、根据标准判定客户类别
我们再根据前面算出来的 F、R、M值来判断 客户类别。
这种判断也是根据业务所需,进行判断,也可以再细分,也可以分大类。
def cust_category(R,F,M):
if R == 1:
if F == 1:
if M == 1:
return '重要价值客户'
else:
return '一般价值客户'
else:
if M == 1:
return '重要发展客户'
else:
return '一般发展客户'
else:
if F == 1:
if M == 1:
return '重要保持客户'
else:
return '一般保持客户'
else:
if M == 1:
return '重要挽留客户'
else:
return '一般挽留客户'
# 判断客户类别
RFM['Cust_Category'] = RFM.apply(lambda x:cust_category(x['R_sign'],x['F_sign'],x['M_sign']),axis = 1)
6、导出数据
最后导出数据
RFM.to_excel('结果数据.xlsx',index=False,sheet_name='结果')
结果如下:
四、制定策略
1、重要保持客户
这种客户就是消费金额和消费频次都很高,但是最近不咋消费;就是快要流失的土豪了。
营销策略:
- 可以提供定制产品、优先服务,构建会员特权等,增加客户的忠诚度和满意度。
- 定期与客户沟通、了解需求和反馈,调整自己的服务。
2、重要挽留客户
这种客户就是属于土豪买了几次,这种肯定就是需要去挽留的用户。
营销策略:
- 分析客户流失的原因,如产品质量、服务态度、竞争对手影响等。
- 通过电话、邮件、短信等方式主动联系客户,提供个性化的挽回方案,如优惠券、折扣、赠品等。
- 还可以邀请客户参加产品体验活动或新品发布会,重新激发客户的购买兴趣。
3、一般保持客户、一般价值客户
这类客户消费频次较高,消费金额较低;这种就是捡便宜,有活动才会出现。
策略:
- 发送优惠券、提醒客户参与促销活动等。
- 鼓励客户增加购买金额,提供满额赠品或折扣等优惠措施。
4、一般发展客户
这类客户最近有过购买行为,但消费频次和消费金额都不高。这种就是看到你的产品还可以,就买了,如果有新品、优惠还是可以再次购买。
策略:
- 通过邮件、短信等方式定期向客户推送产品信息、优惠活动等,提高客户的购买频次。
- 提供个性化的推荐服务,如根据客户的历史购买记录推荐相似产品或新产品。
- 鼓励客户参与社交媒体互动,提高客户的品牌认知度和忠诚度。
5、一般挽留客户
这类客户在最近一段时间内既没有频繁购买,也没有高额消费,且最后一次购买时间也较远。这种就是没钱、也对你的产品不感兴趣。
策略:
- 可以提供特别优惠、新品试用、定制化服务等。
- 如果挽回无望,就算了,转战新客户
五、大数据杀熟
从上面的理论和实战,大家肯定就知道自己在各大平台的地位了。
如果你近期对他公司产品有需求,并且购买频繁,那肯定就给你抬价了;而针对新用户,提供的优惠力度就是为了挽留你。
所以大家避免杀熟,可以先了解商品的性价比、多方比价;还可以可以多账号、多商家尝试,这样你就会成为一般价值客户,商家可能就会给你优惠刺激你消费,你就可以薅羊毛了~
以上就是完整的一套从理论到实践的 RFM模型 。
如果有什么不对的地方,欢迎指正~
还想了解什么大数据知识,可以私信我或者评论区告诉我~
我会竭尽全力用大白话讲解你们难懂的知识。
标签:RFM2,消费,return,01,python,sign,客户,杀熟,RFM From: https://blog.csdn.net/qq_41877371/article/details/144368668