用 Python 实现 RFM 模型分析:精准识别高价值用户
一、前言
在任何一个互联网或电商产品中,不是所有用户的价值都相同。
有的用户频繁下单、贡献高额收入;
有的用户注册后从未购买;
还有一部分用户曾经活跃,如今却已经流失。
如何量化并识别不同类型的用户?
答案就是 —— RFM模型分析。
二、什么是 RFM 模型
RFM 是三项指标的缩写:
| 指标 | 含义 | 解释 |
|---|---|---|
| R(Recency) | 最近一次消费 | 用户最近一次交易距今的时间 |
| F(Frequency) | 消费频率 | 用户在一定时间内的购买次数 |
| M(Monetary) | 消费金额 | 用户累计消费的总金额 |
通过这三个指标,我们可以快速划分用户价值层级,如:
-
🏆 高价值用户:最近购买频繁、金额高
-
💰 潜力用户:金额高但活跃下降
-
⚠️ 流失风险用户:长时间未购买
三、数据准备
假设我们有一份交易数据集 orders.csv,包含字段:
| user_id | order_date | order_amount |
|---|
示例加载与查看:
import pandas as pd df = pd.read_csv('orders.csv') df['order_date'] = pd.to_datetime(df['order_date']) print(df.head())
四、计算 R、F、M 三个指标
# 假设分析时间为数据中最新日期 snapshot_date = df['order_date'].max() + pd.Timedelta(days=1) rfm = df.groupby('user_id').agg({ 'order_date': lambda x: (snapshot_date - x.max()).days, # R值 'user_id': 'count', # F值 'order_amount': 'sum' # M值 }).rename(columns={'order_date': 'Recency', 'user_id': 'Frequency', 'order_amount': 'Monetary'}) print(rfm.head())
五、打分(Score)与分层
为了方便比较,我们将每个维度按分位数打分(1~5分,越高越好):
rfm['R_Score'] = pd.qcut(rfm['Recency'], 5, labels=[5,4,3,2,1]).astype(int) rfm['F_Score'] = pd.qcut(rfm['Frequency'], 5, labels=[1,2,3,4,5]).astype(int) rfm['M_Score'] = pd.qcut(rfm['Monetary'], 5, labels=[1,2,3,4,5]).astype(int) rfm['RFM_Score'] = rfm['R_Score'] + rfm['F_Score'] + rfm['M_Score'] print(rfm.head())
六、用户分层策略
基于 RFM 总分,我们可以简单划分为:
| 分类 | 规则 | 特征说明 |
|---|---|---|
| 高价值用户 | RFM ≥ 13 | 最近活跃、频繁购买、高金额 |
| 成长期用户 | 10 ≤ RFM < 13 | 活跃度较高,潜力大 |
| 保留用户 | 7 ≤ RFM < 10 | 一般活跃,需刺激 |
| 流失用户 | RFM < 7 | 长期未购买 |
def label_user(score): if score >= 13: return '高价值用户' elif score >= 10: return '成长期用户' elif score >= 7: return '保留用户' else: return '流失用户' rfm['Segment'] = rfm['RFM_Score'].apply(label_user) rfm['Segment'].value_counts()
七、可视化分析
import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(8,5)) sns.countplot(x='Segment', data=rfm, order=['高价值用户','成长期用户','保留用户','流失用户']) plt.title('用户价值分层结果') plt.xlabel('用户类型') plt.ylabel('人数') plt.show()
📊 图解说明:
-
高价值用户人数虽少,但贡献大部分收入;
-
成长期用户可通过活动刺激转化为核心群体;
-
流失用户需要再营销策略挽回。
八、商业启示
基于 RFM 模型结果,企业可制定精准运营策略:
-
🎁 高价值用户:提供会员特权或积分回馈,维持忠诚度;
-
📈 成长期用户:推出优惠券或推荐活动,促使重复购买;
-
🔔 保留用户:通过短信推送、邮件唤醒提升活跃度;
-
💬 流失用户:针对性召回营销或退订优化。
数据驱动的用户分层,让“千人千面”的营销真正落地。
更多推荐


所有评论(0)