Python知识分享第三十六天-RFM案例

RFM案例

一、会员价值度模型

1、RFM模型介绍

  • 会员价值度用来评估用户的价值情况,是区分会员价值的重要模型和参考依据,也是衡量不同营销效果的关键指标之一。

  • 价值度模型一般基于交易行为产生,衡量的是有实体转化价值的行为。常用的价值度模型是RFM

  • RFM模型是根据会员

    • 最近一次购买时间R(Recency)
    • 购买频率F(Frequency)
    • 购买金额M(Monetary)计算得出RFM得分
    • 通过这3个维度来评估客户的订单活跃价值,常用来做客户分群或价值区分
    • RFM模型基于一个固定时间点来做模型分析,不同时间计算的的RFM结果可能不一样
R F M 用户类别
重要价值用户
重要发展用户
重要保持用户
重要挽留用户
一般价值用户
一般发展用户
一般保持用户
一般挽留用户

2、RFM模型实现过程

设置截止时间节点:选择一个基准日期(如2024-05-01)作为计算Recency的参考点。

获取原始数据集:从会员数据库中提取过去一年内的订单数据,包括会员ID、订单时间和订单金额。

数据预处理

  • Recency:计算每个会员距离截止日期最近的订单时间。5
  • Frequency:统计每个会员的订单总次数。5
  • Monetary:计算每个会员的订单总金额。5

R、F、M 分区

  • 使用五分位法(1-5分)对R、F、M三个指标进行分区。
  • Recency分数越小,得分越高(接近截止日期),Frequency和Monetary则相反。

计算RFM得分

  • 加权得分:根据业务需求赋予R、F、M不同权重并计算总分。
  • 组合得分:将R、F、M得分拼接成一个字符串(如312、555)。

导出结果:将RFM得分保存为CSV文件,以便后续分析。

三大类:最优价值 中等价值 低质用户

二、代码实现

1、导入所需的库

import numpy as np
import pandas as pd

2、导入数据

# 导入数据
df_raw = pd.DataFrame(pd.read_excel('./sales.xlsx',index_col='USERID'))

3、缺失值处理

# 缺失值处理
sales_data = df_raw.dropna()  # 丢失带有缺失值NA的行记录
sales_data = sales_data[sales_data['AMOUNTINFO'] > 1]  # 丢弃订单金额<=1的记录 

4、数据转换 (按用户ID去重归总)

# 数据转换 (按用户ID去重归总)
recency_value = sales_data['ORDERDATE'].groupby(sales_data.index).max()  # 计算最近一次订单时间
frequency_value = sales_data['ORDERDATE'].groupby(sales_data.index).count()  # 计算订单频率
monetary_value = sales_data['AMOUNTINFO'].groupby(sales_data.index).sum()  # 计算订单总金额

5、分别计算 R, F, M 得分

# 分别计算 R, F, M 得分
deadline_date = pd.to_datetime("2024-05-01")  # 指定一个时间节点,用来计算其他时间和该时间的距离
r_interval = (deadline_date - recency_value).dt.days  # 计算 R 间隔
r_score = pd.cut(r_interval, 5, labels=[5, 4, 3, 2, 1])  # 计算 R 得分,五分位倒序
f_score = pd.cut(frequency_value, 5, labels=[1, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值