RFM分析模型——用户生命周期解析

RFM模型是用户行为分析的重要工具,用于评估客户价值。R代表最近购买日期,F代表交易频率,M代表交易金额。通过构建不同场景,如新生、有效、活跃、忠诚、休眠和流失用户,可以细化用户生命周期。案例中,根据360天内的购买行为将用户分为五类,进一步指导业务策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01 | RFM定义

数据分析的主要任务就是通过数据驱动来优化业务,以实现帮助业务挣钱。实现方式主要是通过对数据的分析,针对性地优化业务中的各个板块的数据。
近几年来,精细化运营、增长黑客成为热门的词汇,其核心就是针对用户行为分析,优化用户指标。作为分析方法论,RFM模型特别具有代表性。

  • R(Recency)——R 代表最近购买日期与指定日期的间隔天数
  • F(Frequency)——F客户在最近一段时间内交易次数活跃度
  • M(Monetray)——M客户最近一段时间内交易金额值

02 | RFM模型

  • RFM模型可以对用户的价值做一个合理的预估,基于一个理想的客户特征来衡量现实中客户价值的高低
  • 通过此类分析,定位最有可能成为品牌忠诚客户的群体,让我们把主要精力放在最有价值的用户身上

03 | 场景构建

生命周期(Life Cycle)的概念应用很广泛,在心理学上主要是指人的生命周期和家庭的生命周期,是指它的出生、成长过程、衰老、生病和死亡的过程。引申到用户身上就是:

  • 基于"用户-场景-产品"场景来理解的话,生命周期指的就是用户从注册进入平台,购买产品 / 使用产品 这一循环过程,而用户的流失就是生命周期的结束。
  • 用户生命周期,也可理解为用户从第一次购买到最后一次购买间隔的时间。

RFM分析模型可以把用户生命周期分成不同的阶段。由于行业和品类的特殊性,划分阶段的标准不是唯一的。实际上应该根据业务场景构建不同的指标体系。
为了方便理解,我们通过例子构建一个场景:

  • 新生用户(R < 360,F < 4)
    360 天内购买不超过 4 次,那么我们定义为新生客户。
  • 有效用户(R < 360,4 ≤ F < 7)
    360 天内购买了 4 到 6 次,那么我们定义为有效客户。
  • 活跃用户(R < 360,7 ≤ F < 10)
    360 天内购买了 7 到 9 次,那么我们定义为活跃客户。
  • 忠诚用户(R < 360,F ≥ 10)
    360 天内购买了 10 次或 10 次以上,那么我们定义为忠诚客户。
  • 休眠用户(360 ≤ R < 720)
    360 天到 720 天内没有再购买,那么我们定义为休眠客户。
  • 流失用户(R ≥ 720 )
    超过 720 天都没有再购买,那么我们定义为流失客户。

事实上,客户生命周期通常不像这么简单地划分。比如一些生命周期较短地互联网产品(比如手游),它的增长期可能只有最初的几个月。那么可能两周内不登陆游戏的用户就可能杯定义为休眠用户,超过1~2个月没登陆游戏的用户,基本上可以定义为流失用户

04 | 案例-user划分

1.数据集

数据集是来自kaggle的数据集
https://www.kaggle.com/regivm/retailtransactiondata

'''
1.读取数据集
'''
import pandas as pd

df = pd.read_csv(r'../input/retailtransactiondata/Retail_Data_Transactions.csv')
df.head()

在这里插入图片描述

# 查看trans_date的格式,发现是object,需要改为时间序列
df.info()

在这里插入图片描述

2.数据预处理

import datetime as dt
df.trans_date  = pd.to_datetime(df.trans_date)
df.info()

在这里插入图片描述

# 计算r、m、f的值,先构建r值
# 通过检查最新购买的日期,来定义今天的日期
df.trans_date.min()
# Timestamp('2011-05-16 00:00:00')

df.trans_date.max()
# Timestamp('2015-03-16 00:00:00')

# 用户最新购买的日期为2015-03-16,那我们就把今天的日期定义为3-17
df.trans_date[:10]
RFM模型是一种用户生命周期模型,它基于用户的消费行为对用户进行分层和细分,以便于企业进行精细化运营。RFM模型主要通过三个指标来衡量用户价值: - Recency(最近一次消费时间):用户最近一次购买时间距今的时间越短,代表用户的忠诚度和活跃度越高。 - Frequency(消费频率):用户购买的次数越多,代表用户对企业的忠诚度越高。 - Monetary(消费金额):用户购买的金额越多,代表用户的价值越高。 在Python中,我们可以使用Pandas和Numpy库来实现RFM模型。以下是一个简单的代码示例: ```python import pandas as pd import numpy as np # 读取数据 data = pd.read_csv('user_behavior.csv') # 计算Recency latest_date = max(data['date']) data['Recency'] = latest_date - data['date'] # 计算Frequency frequency = data.groupby('user_id').size().reset_index(name='Frequency') data = pd.merge(data, frequency, on='user_id') # 计算Monetary monetary = data.groupby('user_id')['amount'].sum().reset_index(name='Monetary') data = pd.merge(data, monetary, on='user_id') # 计算RFM值 r_labels = range(4, 0, -1) f_labels = range(1, 5) m_labels = range(1, 5) r_quartiles = pd.qcut(data['Recency'], q=4, labels=r_labels) f_quartiles = pd.qcut(data['Frequency'], q=4, labels=f_labels) m_quartiles = pd.qcut(data['Monetary'], q=4, labels=m_labels) data = data.assign(R=r_quartiles.values, F=f_quartiles.values, M=m_quartiles.values) # 计算RFM得分 data['RFM_Score'] = data[['R', 'F', 'M']].sum(axis=1) # 分析RFM rfm = data.groupby('RFM_Score').agg({ 'Recency': 'mean', 'Frequency': 'mean', 'Monetary': ['mean', 'count'] }).round(1) # 输出结果 print(rfm) ``` 这个代码示例可以将用户行为数据读取后,计算出每个用户的Recency、Frequency和Monetary指标,然后根据这些指标计算出每个用户RFM值和RFM得分。最后,可以通过分析RFM得分和指标平均值来对用户进行细分和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值