RFM模型实战

article/2025/10/22 10:51:02

什么是RFM模型

RFM模型是衡量客户价值和客户创利能力的重要工具。该模型通过一个客户的近期购买行为、购买的总体频率,以及花了多少钱三项指标来描述该客户的价值状况。

如何构建RFM模型

最近一次消费 (Recency)

最近一次消费意指上一次购买的时间——用户上一次是什么时候下的单、用户上一次是什 么时候订购的服务,或在线下门店中用户上一次进店购买是什么时候。

消费频率 (Frequency)

消费频率是顾客在限定的期间内所购买的次数。一般而言,最常购买的用户,也是满意度/忠诚 度最高的顾客,同时也是对品牌认可度最高的用户。

消费金额 (Monetary)

消费金额是电商相关业务数据库的支柱,也可以用来验证“帕雷托法则”——公司80%的收 入来自20%的顾客。M值带有时间范围,指的是一段时间(通常是1年)内的消费金额。对于 一般电商店铺而言,M值对客户细分的作用相对较弱(因为客单价波动幅度不大)。

实战

假如我们有如下某餐饮店铺的用户RFM数据,只显示了前15条数据
在这里插入图片描述
我们通过聚类方法:K-Means聚类算法(非监督的学习算法)

算法过程:

  1. 从n个样本数据中随机挑选k个对象作为初始的聚类中心。
  2. 分别计算每个样本到各个聚类中心的距离,将对象分配到距离最近的聚类中。
  3. 所有对象分配完成后,重新计算k个聚类的中心。
  4. 与前一次计算得到的k个聚类中心比较,如果聚类中心发生变化,转至步骤2,否则转至步骤5
  5. 当质心不发生变化时,停止并输出聚类结果。

算法目的: 同一聚类内部距离最小化,不同聚类组间距离最大化

import pandas as pd
inputfile = '/content/consumption_data.xls'
outputfile = '/content/data_type.xls'
k = 3  # 聚类的类别
iteration = 500  # 聚类最大循环次数
data = pd.read_excel(inputfile, index_col = 'Id')  # 读取数据
data_zs = 1.0*(data - data.mean())/data.std()  # 数据标准化from sklearn.cluster import KMeans
model = KMeans(n_clusters = k, n_jobs = 4, max_iter = iteration,random_state=1234)  # 分为k类,并发数4
model.fit(data_zs)  # 开始聚类# 简单打印结果
r1 = pd.Series(model.labels_).value_counts()  # 统计各个类别的数目
r2 = pd.DataFrame(model.cluster_centers_)  # 找出聚类中心
r = pd.concat([r2, r1], axis = 1)  # 横向连接(0是纵向),得到聚类中心对应的类别下的数目
r.columns = list(data.columns) + ['类别数目']  # 重命名表头
print(r)# 详细输出原始数据及其类别
r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)   # 详细输出每个样本对应的类别
r.columns = list(data.columns) + ['聚类类别']  # 重命名表头
r.to_excel(outputfile)  # 保存结果def density_plot(data):  # 自定义作图函数import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号p = data.plot(kind='kde', linewidth = 2, subplots = True, sharex = False)[p[i].set_ylabel(u'密度') for i in range(k)]plt.legend()return plt
pic_output = '/content/'  # 概率密度图文件名前缀
for i in range(k):density_plot(data[r[u'聚类类别']==i]).savefig(u'%s%s.png' %(pic_output, i))

这时我们可以得到K-means的输出结果
在这里插入图片描述
不同用户的RFM聚类类别结果
在这里插入图片描述
分群1的特点:R间隔分布较大,间隔分布在30至80天左右,消费次数集中在0~15次,消费金额在0-2000左右。精细化运营:老用户召回的方法,回归礼包什么的,加打优惠力度
在这里插入图片描述
分群2的特点:R间隔分布较小,间隔分布在0至30天左右,消费次数集中在10~30次,消费金额在500-2000左右。精细化运营:加大用户粘性,推荐办一个会员
在这里插入图片描述
分群3的特点:R间隔分布较小,间隔分布在0至30天左右,消费次数集中在0~12次,消费金额在0-1800左右。精细化运营:由于客单价偏低,针对用户购物链去推荐相应的产品
在这里插入图片描述


http://chatgpt.dhexx.cn/article/C6M30Pc9.shtml

相关文章

RFM模型总结

RFM模型 1. 什么是RFM模型?2. RFM有什么作用?3. 怎么构建RFM模型 1. 什么是RFM模型? RFM名词解释 R:最近一次消费(recency) 代表用户距离当前最后一次消费的时间 反向值 R越大 用户价值越低F:消…

tableau-RFM模型

解释 R-最近一次消费(Recency),通常影响因素为店铺的记忆强度,接触机会的多少,回购周期等。这个指标会用于决定客户接触策略,接触频次,刺激力度等。 F-消费频率(Frequency&#xf…

【笔记】电商RFM模型

一、理论基础 (1)RFM模型 R:Recency 最近一次购买–付款日期-按照买家昵称 groupby 取付款日期的信息 F:Frequency 购买频次-付款日期-按照买家昵称 groupby 取付款曰期次数 M:Monetary 购买金额-实付金额-按照买家…

RFM模型分析

1.RFM的重要意义 RFM模型是衡量用户价值和用户创利能力的重要工具和手段 通过用户的近期交易行为、交易频次以及交易金额三个指标描述客户价值 指标解释意义 R(Recency) 用户最近一次交易的时间间隔R值越大,表示越久没有发生交易 F(Frequency) 用户在最近一段…

RFM 模型

RFM 模型 顾客价值分析 顾客价值分析 由于激烈的市场竞争,各个公司相继推出了多样灵活的优惠方式来吸引更多的客户。 对一个没有购买力的顾客,你打电话推销优惠活动毫无作用,可一个高价值顾客,会说有优惠活动怎么不通知我呢&…

数据分析八大模型:详解RFM模型

大家好,我是爱学习的小xiong熊妹。 今天跟大家分享的是一个经常被提及,但是价值被严重低估的模型:RFM模型。 一、RFM的基本思路 RFM模型由三个基础指标组成: R:最近一次消费至今的时间 F:一定时间内重复…

线性代数:如何求特征值和特征向量?

一、特征值和特征向量的定义 1 首先让我们来了解一下特征值和特征向量的定义,如下: 2 特征子空间基本定义,如下: END 二、特征多项式 1 特征多项式的定义,如下: 2 推论:n阶方阵A可逆的充…

如何用计算机求特征值特征向量,利用QR算法求解矩阵的特征值和特征向量

利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了好久 1.我要求特征值和特征向量. 2.找到一种算法QR分解矩阵求解特征值 3.QR矩…

【考研线代】五. 特征值和特征向量

文章目录 第五章 特征值和特征向量5.1 特征值,特征向量5.1.1 概念5.1.2 性质 & 定理 & 推论 ⭐5.1.3 求特征值和特征向量的方法数值型矩阵抽象型矩阵巧解矩阵特征值方法⭐ 5.2 相似矩阵5.2.1 概念5.2.2 性质5.2.3 求可逆矩阵P使得A可相似对角化方法 5.3 实对…

线性代数特征值

特征值的性质: 下面是例题: 要注意单位阵的特征值是替换成1 注意下面两个: 例题5: 仔细看解题过程。 例题6: 运用了特征值相加等于矩阵主对角线元素之和 、特征值相乘等于矩阵的行列式、求特征值的定义。列出以上三…

eigen求特征值和特征向量

Eigen::Matrix2d matrix_22;matrix_22 << 2,3,2,1;cout << "matrix \n"<< matrix_22<<endl;//Eigen::SelfAdjointEigenSolver<Eigen::Matrix2d> eigen_solver1 ( matrix_22 );/这句是啥不清楚Eigen::EigenSolver<Eigen::Matrix2d&…

特征多项式法(characteristic polynomial )求特征值(结合lanczos和householder)(python,数值积分)

第三十四篇 特征多项式法求对称三对角矩阵的特征值 特征多项式 在之前的篇章中介绍过的&#xff0c;一个矩阵的特征值可以形成一个n阶多项式的根&#xff0c;称为“特征多项式”。线性方程的求解方法可以用来求这些根&#xff0c;详情可以翻看我之前写过的文章。但这并不是一…

Matlab求特征值和特征向量 + find函数的基本简单用法

A[1 5 4; 3 2 1;5 6 6] 计算矩阵A的特征值和特征向量的函数是eig&#xff08;A&#xff09;&#xff0c;常用方法为&#xff1a; 1.求矩阵的特征值 每一列有一个特征值&#xff0c;可知A有三个特征值 设矩阵A的全部特征值构成向量E Eeig(A) 执行选中内容命令行窗口如下&…

Eigen求特征值与特征向量

这里列举三种方式求矩阵的特征值与特征向量 #include <stdio.h> #include <stdlib.h> #include<Eigen/Eigen>using namespace std; using namespace Eigen;void main() {MatrixXd m(3, 3);m << 1,-2,2,-2,-2,4,2,4,-2;cout << m << endl …

matlab 求特征值的命令,matlab怎么求特征值

matlab怎么求特征值&#xff1f; 求矩阵的特征值和特征向量方法 方法/步骤 第一步我们首先需要知道计算矩阵的特征值和特征向量要用eig函数&#xff0c;可以在命令行窗口中输入help eig&#xff0c;查看一下eig函数的用法&#xff0c;如下图所示&#xff1a; 第二步在命令行窗口…

转: 特征值和特征向量--1

转&#xff1a;https://jingyan.baidu.com/article/27fa7326afb4c146f8271ff3.html 一、特征值和特征向量的定义 1 首先让我们来了解一下特征值和特征向量的定义&#xff0c;如下&#xff1a; 2 特征子空间基本定义&#xff0c;如下&#xff1a; END 二、特征多项式 1 特征多项…

线性代数(8):特征值、特征向量和相似矩阵

一、特征值和特征向量 &#xff08;2&#xff09;定义 有矩阵 A 为 n 阶矩阵&#xff0c;Ax λx &#xff08; λ 为一个实数&#xff0c;x为 n 维非零列向量 &#xff09;&#xff0c;则称 λ 为方阵 A 的特征值&#xff0c; x 为特征向量&#xff1b; &#xff08;2&#x…

mosquitto入门教程

参考大神的博客&#xff1a; http://mqtt.org/ MQTT 是一个轻型协议&#xff0c;使用基于 TCP/IP 协议的发布/订阅消息转发模式&#xff0c;专门用于机器对机器 (M2M) 通信。 MQTT 协议的中心是 MQTT 服务器或代理 (broker) &#xff0c;支持发布程序和订阅程序进行访问&…

mosquitto源码分析(一)

关于mqtt、mosquito的技术交流&#xff0c;可入群&#xff1a;221779856 本文由逍遥子撰写&#xff0c;转发请标注原址&#xff1a; http://blog.csdn.net/houjixin/article/details/21461225 一、 Mosquitto简介 mosquitto是一款实现了消息推送协议MQTT v3.1 的开源消息代理…

mosquitto安装与使用

Eclipse Mosquitto 是实现MQTT协议版本5.0、3.1.1和3.1的开源消息代理&#xff08;经EPL / EDL许可&#xff09;。mosquitto 是一个开源的轻量级的C实现&#xff0c;适合在从低功耗单板计算机到完整服务器的所有设备上使用。mosquitto包括服务端和客户端。官网&#xff1a;http…