一、前言

在任何一个互联网或电商产品中,不是所有用户的价值都相同
有的用户频繁下单、贡献高额收入;
有的用户注册后从未购买;
还有一部分用户曾经活跃,如今却已经流失。

如何量化并识别不同类型的用户?
答案就是 —— 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 模型结果,企业可制定精准运营策略:

  1. 🎁 高价值用户:提供会员特权或积分回馈,维持忠诚度;

  2. 📈 成长期用户:推出优惠券或推荐活动,促使重复购买;

  3. 🔔 保留用户:通过短信推送、邮件唤醒提升活跃度;

  4. 💬 流失用户:针对性召回营销或退订优化。

数据驱动的用户分层,让“千人千面”的营销真正落地。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐