Bootstrap

基于客观事实的 RFM 模型(Python 代码)

CDA数据分析师 出品  

1

背景

RFM(Recency Frequency Monetary)模型是衡量客户价值和客户创利能力的重要工具和手段。在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到的。

RFM模型是属于业务分析方法与模型中的部分。它的本质是用户分类。本文将用现代最流行的编程语言---Python语言来实践课堂上讲解的RFM模型,将用户进行分类。

本文采用Anaconda进行Python编译,主要涉及的Python模块:

  • pandas

  • matplotlib

  • seaborn

  • datetime

本章分为三部分讲解:

1.RFM模型原理与步骤

2.Python分布实现RFM

3.总结

2

RFM模型原理与步骤

RFM模型的思路是:该模型是根据用户历史行为数据,结合业务理解选择划分维度,实现用户分类,助力用户精准营销。此外,还学习了构建RFM模型的步骤:

  • 获取R、F、M三个维度下的原始数据

  • 定义R、F、M的评估模型与判断阈值

  • 进行数据处理,获取R、F、M的值

  • 参照评估模型与阈值,对用户进行分层

  • 针对不同层级用户制定运营策略

上面步骤可以知道,我们需要有RFM三个维度,根据我们在业务分析方法课程中学到的,业务分析模型离不开指标,而指标是对度量的汇总。因此,在找出RFM三个维度后,需要对每个维度下度量实现不同汇总规则。下面讲述对R、F、M三个维度下的度量如何进行汇总。

1.R代表最近一次消费,是计算最近一次消费时间点和当前时间点的时间差。因此,这里需要用到多维数据透视分析中的基本透视规则---最小值MIN求出最小的时间差。

2.F代表消费频次,是在指定区间内统计用户的购买次数。因此,这里需要用到多维数据透视分析中的基本透视规则---技术类COUNT(技术类不去重指标)统计用户的购买次数。

3.M代表消费金额,是指在指定区间内统计用户的消费总金额,因此,这里需要用到求和类指标,也即基本透视规则中的合计规则---SUM。

在对得到RFM模型中的指标值后最重要的一步就是分层,根据我们在课堂上学到的内容,大部分的用户分层是根据经验来分层的,本文在追求数据的客观性下采取统计学中的等距分箱方法来进行分层,对R、F、M三个维度分成两类。

综上,我们大致了解了如何构建RFM模型,下面以Python实现RFM模型,并对每一步进行详细的讲解。

3

Python实现RFM模型

数据准备

本文所需的数据是一家公司对2021年10月底至今的客户购买行为数据,(前十二行)如图下:

其中, uid 代表客户的id,是存在重复情况的。 prince 维度代表客户每发生一次交易行为所花费的金额。 time 为客户发生交易行为的时间。

数据读取与理解

在得到一份数据之后,我们第一步就是要理解数据的业务意义&#

;