249 lines
11 KiB
Markdown
249 lines
11 KiB
Markdown
# RFM 客户价值评分体系技术实施文档
|
||
|
||
## 1. 文档目的
|
||
|
||
本文档旨在明确 RFM(Recency-Frequency-Monetary)客户价值评分体系的技术实现标准,包括维度定义、评分规则、数据处理流程、参数配置及异常处理方案,为系统开发、数据分析及业务应用提供统一依据。
|
||
|
||
## 2. 核心术语定义
|
||
|
||
|
||
|
||
| 术语 | 英文缩写 | 定义 | 数据来源 | 统计周期说明 |
|
||
| ------ | ------------ | ------------------------------- | --------- | ---------------------------------- |
|
||
| 最近消费时间 | Recency(R) | 客户最后一次有效消费行为距统计截止日的时间间隔(单位:天) | 订单系统、交易日志 | 支持自定义配置(默认 3-12 个月,按业务场景调整) |
|
||
| 消费频率 | Frequency(F) | 统计周期内客户发生有效消费行为的总次数 | 订单系统、交易日志 | 与 R 维度统计周期一致,剔除重复下单、取消订单等无效记录 |
|
||
| 消费金额 | Monetary(M) | 统计周期内客户有效消费行为的总金额(单位:元,支持多币种换算) | 订单系统、支付日志 | 仅统计已支付完成的订单金额,剔除退款、优惠抵扣部分 |
|
||
| RFM 总分 | RFM Score | 基于 R、F、M 三个维度的分项得分,按预设权重计算的综合得分 | 系统计算生成 | 得分范围 1-15 分(5 分制单项)或 1-100 分(标准化后) |
|
||
|
||
## 3. 评分规则技术规范
|
||
|
||
### 3.1 分项评分规则(默认 5 分制)
|
||
|
||
#### 3.1.1 Recency(R)评分规则
|
||
|
||
|
||
|
||
* 核心逻辑:时间间隔越短,得分越高(反向映射)
|
||
|
||
* 分段标准:采用**五分位法**(按数据分布自动划分区间,避免均分失真)
|
||
|
||
|
||
|
||
| 得分 | 时间间隔区间(天) | 划分逻辑 |
|
||
| --- | ---------- | ----------------- |
|
||
| 5 分 | \[0, T1] | 统计周期内最近消费的 20% 客户 |
|
||
| 4 分 | (T1, T2] | 统计周期内次近消费的 20% 客户 |
|
||
| 3 分 | (T2, T3] | 统计周期内中间消费的 20% 客户 |
|
||
| 2 分 | (T3, T4] | 统计周期内较久消费的 20% 客户 |
|
||
| 1 分 | (T4, Tmax] | 统计周期内最久消费的 20% 客户 |
|
||
|
||
|
||
|
||
* 区间计算方式:T1=PERCENTILE\_CONT (0.2)、T2=PERCENTILE\_CONT (0.4)、T3=PERCENTILE\_CONT (0.6)、T4=PERCENTILE\_CONT (0.8),其中 Tmax 为统计周期总天数
|
||
|
||
#### 3.1.2 Frequency(F)评分规则
|
||
|
||
|
||
|
||
* 核心逻辑:消费次数越多,得分越高(正向映射)
|
||
|
||
* 分段标准:采用**五分位法**(支持最小消费次数阈值配置)
|
||
|
||
|
||
|
||
| 得分 | 消费次数区间 | 划分逻辑 |
|
||
| --- | ----------- | ------------------- |
|
||
| 5 分 | \[F4, +∞) | 统计周期内消费次数最多的 20% 客户 |
|
||
| 4 分 | \[F3, F4) | 统计周期内消费次数次多的 20% 客户 |
|
||
| 3 分 | \[F2, F3) | 统计周期内消费次数中间的 20% 客户 |
|
||
| 2 分 | \[F1, F2) | 统计周期内消费次数较少的 20% 客户 |
|
||
| 1 分 | \[Fmin, F1) | 统计周期内消费次数最少的 20% 客户 |
|
||
|
||
|
||
|
||
* 区间计算方式:F1=PERCENTILE\_CONT (0.2)、F2=PERCENTILE\_CONT (0.4)、F3=PERCENTILE\_CONT (0.6)、F4=PERCENTILE\_CONT (0.8),其中 Fmin 为 1(仅统计有效消费次数≥1 的客户)
|
||
|
||
#### 3.1.3 Monetary(M)评分规则
|
||
|
||
|
||
|
||
* 核心逻辑:消费金额越高,得分越高(正向映射)
|
||
|
||
* 分段标准:采用**五分位法**(支持剔除大额异常值后划分)
|
||
|
||
|
||
|
||
| 得分 | 消费金额区间(元) | 划分逻辑 |
|
||
| --- | ----------- | ------------------- |
|
||
| 5 分 | \[M4, +∞) | 统计周期内消费金额最高的 20% 客户 |
|
||
| 4 分 | \[M3, M4) | 统计周期内消费金额次高的 20% 客户 |
|
||
| 3 分 | \[M2, M3) | 统计周期内消费金额中间的 20% 客户 |
|
||
| 2 分 | \[M1, M2) | 统计周期内消费金额较低的 20% 客户 |
|
||
| 1 分 | \[Mmin, M1) | 统计周期内消费金额最低的 20% 客户 |
|
||
|
||
|
||
|
||
* 区间计算方式:M1=PERCENTILE\_CONT (0.2)、M2=PERCENTILE\_CONT (0.4)、M3=PERCENTILE\_CONT (0.6)、M4=PERCENTILE\_CONT (0.8),其中 Mmin 为统计周期内最小有效订单金额
|
||
|
||
### 3.2 总分计算规则
|
||
|
||
#### 3.2.1 加权求和公式
|
||
|
||
$RFM_{Score} = R_{Score} \times W_R + F_{Score} \times W_F + M_{Score} \times W_M$
|
||
|
||
|
||
|
||
* 权重配置:支持自定义(默认配置:$W_R=0.4$,$W_F=0.3$,$W_M=0.3$)
|
||
|
||
* 权重约束:$W_R + W_F + W_M = 1.0$,且单个权重取值范围为 \[0.1, 0.8]
|
||
|
||
#### 3.2.2 得分标准化(可选)
|
||
|
||
|
||
|
||
* 若需将总分映射为 1-100 分,采用线性标准化公式:
|
||
|
||
$RFM_{StandardScore} = \frac{RFM_{Score} - RFM_{Min}}{RFM_{Max} - RFM_{Min}} \times 99 + 1$
|
||
|
||
* 其中:$RFM_{Min}=W_R \times 1 + W_F \times 1 + W_M \times 1$,$RFM_{Max}=W_R \times 5 + W_F \times 5 + W_M \times 5$
|
||
|
||
## 4. 数据处理流程
|
||
|
||
### 4.1 数据输入要求
|
||
|
||
|
||
|
||
| 数据项 | 数据类型 | 格式要求 | 校验规则 |
|
||
| ------ | ------------- | ------------------- | ------------ |
|
||
| 客户唯一标识 | String/Int | 全局唯一(如用户 ID、会员 ID) | 非空、去重 |
|
||
| 订单唯一标识 | String/Int | 全局唯一(如订单号) | 非空、去重 |
|
||
| 消费时间 | DateTime | yyyy-MM-dd HH:mm:ss | 需在统计周期内 |
|
||
| 消费金额 | Decimal(18,2) | 大于 0 | 剔除负数、0 值 |
|
||
| 订单状态 | String | 枚举值(已支付、已取消、已退款等) | 仅保留 “已支付” 状态 |
|
||
|
||
### 4.2 数据预处理步骤
|
||
|
||
|
||
|
||
1. **数据过滤**:
|
||
|
||
* 剔除统计周期外的订单数据
|
||
|
||
* 剔除订单状态为 “已取消”“已退款”“无效” 的记录
|
||
|
||
* 剔除员工内部订单、测试订单(按订单标签或用户标签过滤)
|
||
|
||
* 剔除单笔金额超过$M_{99分位值} \times 3$的异常大额订单(可配置开关)
|
||
|
||
1. **数据聚合**:
|
||
|
||
* 按客户唯一标识分组,计算 R、F、M 原始指标:
|
||
|
||
|
||
* R:MAX (消费时间) 到统计截止日的时间间隔(天)
|
||
|
||
* F:COUNT (DISTINCT 订单唯一标识)
|
||
|
||
* M:SUM (消费金额)
|
||
|
||
1. **缺失值处理**:
|
||
|
||
* 统计周期内无消费记录的客户:R = 统计周期总天数,F=0,M=0,分项得分均为 1 分
|
||
|
||
* 单个指标缺失(如仅缺失 M):按 1 分计分项得分
|
||
|
||
### 4.3 评分计算流程
|
||
|
||
|
||
|
||
```mermaid
|
||
graph TD
|
||
A[数据输入] --> B[数据过滤]
|
||
B --> C[数据聚合计算R/F/M原始值]
|
||
C --> D[缺失值处理]
|
||
D --> E[按五分位法划分各维度区间]
|
||
E --> F[计算R/F/M分项得分]
|
||
F --> G[按权重计算RFM总分]
|
||
G --> H[可选:标准化为1-100分]
|
||
H --> I[输出客户RFM评分结果]
|
||
```
|
||
|
||
## 5. 参数配置说明
|
||
|
||
|
||
|
||
| 参数名称 | 配置项 | 取值范围 | 默认值 | 配置方式 |
|
||
| ------- | ---------------------- | ------------- | ------ | --------------- |
|
||
| 统计周期 | cycle\_days | 30-365 | 180 | 系统配置页手动输入 |
|
||
| R 维度权重 | weight\_R | 0.1-0.8 | 0.4 | 系统配置页滑动条调整 |
|
||
| F 维度权重 | weight\_F | 0.1-0.8 | 0.3 | 系统配置页滑动条调整 |
|
||
| M 维度权重 | weight\_M | 0.1-0.8 | 0.3 | 系统配置页滑动条调整 |
|
||
| 异常金额阈值 | abnormal\_money\_ratio | 1.5-5.0 | 3.0 | 系统配置页手动输入(倍数关系) |
|
||
| 评分分制 | score\_scale | 5 分制 / 100 分制 | 5 分制 | 系统配置页单选 |
|
||
| 缺失值处理策略 | missing\_strategy | 按 1 分计 / 剔除客户 | 按 1 分计 | 系统配置页单选 |
|
||
|
||
## 6. 异常处理方案
|
||
|
||
### 6.1 数据异常
|
||
|
||
|
||
|
||
| 异常类型 | 表现形式 | 处理逻辑 | 影响范围 |
|
||
| ------ | ------------------------------ | ---------------------- | --------------- |
|
||
| 重复订单 | 同一客户同一时间相同订单号 | 去重保留 1 条有效记录 | 不影响 F、M 计算 |
|
||
| 大额异常订单 | 单笔金额 > $M_{99分位值} \times 异常阈值$ | 自动标记,可选择剔除或保留 | 仅影响 M 维度区间划分 |
|
||
| 消费时间异常 | 消费时间晚于统计截止日 | 视为无效数据,剔除 | 不影响最终结果 |
|
||
| 客户标识重复 | 同一客户多个唯一标识 | 按客户合并规则(如手机号、身份证号关联)聚合 | 需提前完成客户统一 ID 映射 |
|
||
|
||
### 6.2 计算异常
|
||
|
||
|
||
|
||
| 异常类型 | 触发条件 | 处理逻辑 | 输出结果 |
|
||
| -------- | --------------------- | --------------------------------------- | --------------- |
|
||
| 维度区间为空 | 某维度所有客户数据相同(如 F 均为 1) | 强制均分 5 个区间 | 分项得分按 1-5 分依次分配 |
|
||
| 权重总和不为 1 | 配置权重时计算错误 | 系统自动归一化处理($W'_X = W_X / (W_R+W_F+W_M)$) | 不影响总分有效性 |
|
||
| 统计周期过短 | 小于 30 天导致数据量不足 | 系统给出警告,允许强制执行 | 区间划分可能失真,建议延长周期 |
|
||
|
||
## 7. 输出结果格式
|
||
|
||
### 7.1 单客户评分结果
|
||
|
||
|
||
|
||
| 字段名 | 数据类型 | 示例 |
|
||
| --------- | ------------- | ----------------------- |
|
||
| 客户 ID | String | CUST2023001 |
|
||
| R 原始值(天) | Int | 15 |
|
||
| R 得分 | Int | 5 |
|
||
| F 原始值(次) | Int | 8 |
|
||
| F 得分 | Int | 4 |
|
||
| M 原始值(元) | Decimal(18,2) | 2560.00 |
|
||
| M 得分 | Int | 5 |
|
||
| RFM 总分 | Decimal(5,2) | 4.70 |
|
||
| 标准化得分(可选) | Int | 94 |
|
||
| 统计周期 | String | 2023-01-01 至 2023-06-30 |
|
||
| 计算时间 | DateTime | 2023-07-01 00:30:25 |
|
||
|
||
### 7.2 批量输出文件格式
|
||
|
||
|
||
|
||
* 支持 CSV、Parquet、JSON 格式导出
|
||
|
||
* 编码格式:UTF-8
|
||
|
||
* 压缩方式:默认 GZIP(可配置关闭)
|
||
|
||
## 8. 业务适配建议
|
||
|
||
|
||
|
||
| 业务场景 | 统计周期建议 | 权重调整建议 | 特殊配置 |
|
||
| --------------- | ------- | --------------------------- | ----------------- |
|
||
| 快消零售 | 3-6 个月 | $W_R=0.5, W_F=0.3, W_M=0.2$ | 提高 R 维度权重,关注复购及时性 |
|
||
| 高客单价行业(如奢侈品、家居) | 12 个月 | $W_R=0.3, W_F=0.2, W_M=0.5$ | 提高 M 维度权重,关注消费能力 |
|
||
| 新品推广期 | 1-3 个月 | $W_R=0.6, W_F=0.2, W_M=0.2$ | 重点关注近期新客户 |
|
||
| 会员体系运营 | 6-12 个月 | $W_R=0.4, W_F=0.4, W_M=0.2$ | 提高 F 维度权重,鼓励高频消费 |
|
||
|
||
> (注:文档部分内容可能由 AI 生成) |