用户价值分层 您所在的位置:网站首页 rfm模型分类 用户价值分层

用户价值分层

2023-09-19 14:44| 来源: 网络整理| 查看: 265

用户价值分层——基于RFM模型的研究分析 RFM模型的概念和用途名词解释RFM模型概念RFM模型用途 基于RFM模型的实践实验数据数据预处理基于RFM模型的用户评分分层基于RFM的用户价值分层 基于RFM模型的场景应用基于RFM模型构建用户画像基于RFM模型实现精准营销

导读: 学习随笔,近期一直在研究关于用户的数据分析产品,网上翻阅了诸多文集,想想还是自己落笔记录下过程。该篇文章主要是针对RFM模型的介绍与实践,在研究理论的同时,亦学习巩固下Python的能力。

RFM模型的概念和用途 名词解释

• R(Recency):消费间隔,最近一次距离上次消费的时间间隔 • F(Frequency):消费频次,一段时间(1个月/1年…)内的消费总次数 • M(Monetary):消费金额,一段时间(1个月/1年…)内的消费总金额

RFM模型概念

      RFM模型是用户价值研究中的经典模型,基于近度(Recency),频度(Frequency)和额度(Monetory)这3个指标对用户进行聚类,找出具有潜在价值的用户, 从而辅助商业决策,提高营销效率。RFM作为一种数据驱动的客户细分技术,可帮助营销人员做出更明智的战略性决策,使营销人员能够快速识别用户并将其细分为同类群体,并针对性制定个性化的营销策略,提高用户的参与度和留存率。       RFM建模所需要的数据源是相对简单的,只用到了购买记录中的时间和金额这两个字段。我们基于交易数据中用户的最后一次的购买时间,购买的次数以和频率,以及平均/总消费额对每个用户计算了三个维度的标准分。然后我们对于三个维度赋予了不同的权重,再基于加权后的分值应用K-Means进行聚类,根据每种人群三个维度与平均值之间的高低关系,确定哪些是需要保持用户,哪些是需要挽留的用户,哪些是需要发展的用户等。在将这些客户圈出之后,便可以对不同客户群使用不同针对性地营销策略(引导,唤醒等),提高复购率与转化率。值得注意的是,三个维度的权重制定并没有统一的标准,比较通用的方法是用层次分析法(AHP),实际场景结合行业以及具体公司的特点进行因地制宜、因人而异的优化。

RFM模型用途

RFM因素: • R值越高,顾客的有效期越近,对商家活动的响应越积极 • F值越高,顾客的消费频次越高,对商家的忠诚度就越高 • M值越高,顾客的消费能力越高,对商家贡献度就越高 • 想要提高复购率和留存率,需要时刻警惕R值

RFM分析: • 谁是您最有价值的客户? • 导致客户流失率增多的是哪些客户? • 谁有潜力成为有价值的客户? • 你的哪些客户可以保留? • 您哪些客户最有可能对参与度活动做出响应? • 谁是你不需要关注的无价值客户? • 针对哪些客户制定哪种发展、保留、挽回策略?

      通过RFM模型,可以帮助营销人员实现客户细分;衡量客户价值和客户利润创收能力;识别优质客户;指定个性化的沟通和营销服务;为更多的营销决策提供有力支持。

基于RFM模型的实践 实验数据

数据来源:某知名餐饮品牌2019年起注册会员的消费数据 样本数据:会员id、订单id、消费日期、消费金额 数据总量:134683(其中会员数为62018) 数据示例(如下表所示):

member_idorder_idcurr_datepay912e64b3fdf945448505e6d4b815574b113d90174fc390bcb780a2020/10/658981c4e0bd28a462d8953c01cbfe874b113d90175028fe17e5d4c2020/10/717215321a29b03641f895119bd2f64f74b113d9017507d7c8881d412020/10/888 数据预处理

数据导入:使用python的pandas.read_csv导入样本数据。 缺失值校验:因数据为生产真实的交易数据,质量相对较高,缺失值较低。

data.isnull().any(axis=0) # 检查每一列是否有缺失值 data.isnull().any(axis=1) # 检查每一行是否有缺失值

极值校验:第一份样本数据获取的用户订单实付金额,其中会存在优惠或补差支付,同时因就餐人数不一致,产生的的订单消费也会存在较大的差异,造成极致波动、标准差值较大,因此需对金额进行处理,以人均消费额替代订单支付金额,可去掉10元以下、万元以上的交易订单。

print(data.describe())

获取RFM值:使用 groupby获取RFM值

# 计算原始最近一次订单时间 r = date['curr_date'].groupby(date.index).max() # 计算原始订单频率 f = date['order_id'].groupby(date.index).count() # 计算原始订单总金额 m =date['pay'].groupby(date.index).sum()

获取RFM评分值:数据离散,pandas.cut

# 计算r得分 r_interval为当前日期与R值的间隔天数 r_score = pd.cut(r_interval, 5, labels=[5, 4, 3, 2, 1]) # 计算f得分 f_score = pd.cut(f, 5, labels=[1, 2, 3, 4, 5]) # 计算m得分 m_score = pd.cut(m, 5, labels=[1, 2, 3, 4, 5]) #RFM离散分布区间 # R [(11.878, 36.4] < (36.4, 60.8] < (60.8, 85.2] < (85.2, 109.6]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有