数据分析之客户价值模型(RFM)技术总结
作者 | leo
管理学中有一个重要概念那就是客户关系管理(CRM),它核心目的就是为了提高企业的核心竞争力,通过提高企业与客户间的交互,优化客户管理方式,从而实现吸引新客户、保留老客户以及将已有客户转化为忠实客户的运营机制。
而这其中最为经典的实现模型那就是RFM模型,它主要通过对每个客户的近期消费时间,购买频率和购买金额来对不同的客户进行价值状态划分。
从而使得我们可以有针对性的对不同用户进行个性化运营和营销。
01 RFM模型核心维度
针对上述3个维度,我们的预期:
最近一次消费的时间(Recency):
该维度指的是最近一次消费时间间隔(R), 也就是上一次消费的时间间隔,该值越小客户价值越高,这是因为消费间隔越近的客户越有可能产生二次消费。
某段时间内消费频率次数(Frequency):
消费频次(F)体现了客户的购买频率,那么购买频次越高,越能体现用户的消费活跃程度,因此,客户价值也就越高。
某段时间消费的总金额(Monetary):
消费金额(M)这个从字面意思即可知道,用户的消费金额越高,用户的消费能力越强,那么自然用户的价值也就越高。
02 RFM划分用户类型及对应运营策略
03 Excel中实现RFM模型
为了解决现存方法的缺陷,作者首次提出了将MCL、SSL和Excel是实现RFM模型的一个重要且十分直接的工具,只需要灵活使用Excel自带的函数就可以实现数据的汇总计算,得到RFM模型的三个指标值,从而将用户的价值类型提取出来,让我们有针对性的进行业务推广策略。
接下来我们给大家演示一个用Excel实现的RFM模型:
【数据来源】
某淘宝店铺的月份销售数据
【分析目标】
根据现有订单数据,构建店铺用户价值模型,从而为后续的精细化运营不同的客户群体打下基础
【数据预处理】
数据量大概有3989条,可以在excel内处理,也可以使用python对大批量的数据进行处理。
3.1 提取关键词字段:
【买家会员名】、【总金额】、【订单付款时间】、并设置对应的数据类型,我们要在同页面进行RFM值的计算。
3.2 计算Recency, Monetary,Frequency
Recency: 通过对【买家会员名】、【总金额】、【订单付款时间】三列数据做透视表,对订单付款时间求最大值,即最近消费时间,然后与观测时间进行求差运算,可得R值
Monetary:对总金额下的客户不同消费进行平均值运算,即可获得该客户的M值
Frequency:对订单付款时间进行计数运算,就是该客户的消费频次F值
3.3 客户RFM模型建立
计算完客户的R、F、M值后,接下来就可以实现客户RFM模型的评估了。
【简单实现】
此时可以先计算出来R、F、M三个值的平均值,然后对客户的每个维度与该维度的平均值进行比较,如果超出平均值就是高,否则就是低。
然后将三列字段通过’&’连接符链接起来,生成RFM辅助列。
然后通过我们预先准备好的价值模型参考表,生成用户价值模型。
最后通过excel的vlookup函数提取客户类型字段到计算表中,就实现了我们的最终结果。
【计分法】
通过用户的R、F、M值与对应值的极差(最大值与最小值的差),来确定R-Score, F-Score,M-Score。
因此首先计算R、F、M的最大值、最小值、极差三等分距
最大值:通过“=max(B5:B1204)” 计算,(计算F时B换成C,M时B换成D即可)
最小值:通过“=min(B5:B1204)”计算(计算F时B换成C,M时B换成D即可)
极差:通过“=(F1-F2)/3”计算(计算F时F换成G,M时F换成H即可)
R-Score计算方式:在E5单元格输入:
“=IF(ROUNDUP((B5-$F$2)/$F$3,0)=0,1,ROUNDUP((B5-$F$2)/$F$3,0)) ”
F-score和M-score计算方式类似:
“=IF(ROUNDUP((C5-$G$2)/$G$3,0)=0,1,ROUNDUP((C5-$G$2)/$G$3,0))”
“ =IF(ROUNDUP((D5-$H$2)/$H$3,0)=0,1,ROUNDUP((D5-$H$2)/$H$3,0))”
RFM-Score计算采用将R、F、M以百分位、十分位、个位组成三位数的方式实现,共有3*3*3=27种组合方式。
H5单元格的公式:“=E5*100+F5*10+G5”
下拉填充柄应用于整个列表,得到最后结果:
然后对数据表区域A4到H3996进行数据透视:汇总不同的RFM-Score对应的客户群体。
可以采用数据条的方式直观显示客户分布情况。
04 Python实现RFM模型
通过Python处理数据时,我们首先需要关注我们提取进来的数据是否需要预处理,比如数据的类型是否符合预期,字段名是否需要调整,缺失值是否需要填充,重复值是否需要去除等等,因此第一步我们首先需要对数据进行初步的熟悉了解:
4.1 熟悉数据源
常用于初步了解数据的方法有很多比如:shape(了解数据的大小,几行几列),head(显示其中的前几条数据),tail(显示数据源最后几条数据),sample(随机提取几条数据),info(显示数据源的各字段数据类型),describe(对数据源进行数学描述)。
显示结果如下:
通过上图我们发现交易记录里面会有一些无效订单,那么我们首先就要排除这类订单,那么就可以通过pandas的布尔索引来进行数据的筛选:
结果如下:
4.2 选取字段
鉴于我们仅需要买家付款时间,购买日期,实付金额这三个字段,我们仅需要对他们进行数据处理,因此可以排除其他字段。
结果如下:
缺失值处理:
4.3 RFM建模:
A. 计算R值
添加天数字段,将付款时间与观察日期进行日期计算得到R值
运行结果如下:
B. 计算R、F、M值
通过聚合函数,对买家昵称进行计数运算获得消费频次F值,计算天数字段的最小值获得客户的R值,通过实付金额的求和运算获得客户的M值。
运行结果如下:
C. 用户价值评分
通过上述计算,我们可以根据不同的分数段来对客户R、F、M值进行打分,就本案例来讲:
R值:我们得出的最小值是660,以30天作为间隔,660-690天,打5分;690-720,打4分;720-750打3分;750-780打2分;>780,打1分。
F值:我们得出的最小值是1次,以1次作为时间间隔,0-2,打1分;2-3,打2分;3-4,打3分;4-5,打4分;>5,打5分。
M指:我们得出的最小值是0.005元,我们以500元作为时间间隔,0-50,打1分;50-100,打2分;100-150,打3分;150-200,打4分;>200,打5分。
依据上述标准建立程序方法:
运行结果:
D. 用户标签设定:
第一步:计算用户R、F、M平均值:
运行结果
第二步:验证用户各项指标是否超出平均值,是则计一分,否则不计分。
运行结果如下:
第三步:生成用户标签列:
运行结果如下:
E. 可视化呈现:
柱状图:
运行结果如下:
通过以上数据分析工具的分析,我们可以发现在实现RFM模型的方法中,Python具有更为强大的可用性和灵活性,且拥有完备的数据分析手段,从数据预处理、分析到最后的数据呈现。
而Excel在实际工作中应用场景也是非常多见的,通过本案例可以很好的实践Excel相关函数,希望本文对你的数据分析之旅有所帮助。
数据分析之客户价值模型(RFM)技术总结的更多相关文章
- 航空客户价值分析特色LRFMC模型——RFM升级
本文转载自微信公众号TIpDM. 每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 我们说RFM ...
- 用户价值和RFM模型
什么是用户价值? 用户价值就是对公司来说有用的地方,比如有的公司看中用户的消费能力,有的公司则看中用户的忠诚度 .各公司的业务目的不同,用户价值的体现自然也不同.这里主要说一下适用于电商的RFM模型. ...
- 技术的止境(客户价值第一,快速实现第二,边做边学,迅速成为牛人。紧贴客户的需求去做技术,立于不败之地。追求的目标:把一项产品去做好,用产品去养活自己和家人)good
作为一个依靠技术来谋生的程序员,我最近一直在思考一个问题,有限的生命里,面对无限的技术更新,我要研究到什么程度才能算是完成我的成为技术大牛的目标呢?换而言之,那就是技术的止境在哪儿呢?深入的思考下去, ...
- 用户价值模型 CITE :https://www.jianshu.com/p/34199b13ffbc
RFM用户价值模型的原理和应用 ▌定义 在众多的用户价值分析模型中,RFM模型是被广泛被应用的:RFM模型是衡量客户价值和客户创利能力的重要工具和手段,在RFM模式中,R(Recency)表示客户购 ...
- Python使用RMF聚类分析客户价值
投资机构或电商企业等积累的客户交易数据繁杂.需要根据用户的以往消费记录分析出不同用户群体的特征与价值,再针对不同群体提供不同的营销策略. 用户分析指标 根据美国数据库营销研究所Arthur Hughe ...
- 向量自回归模型VS风险价值模型(VAR&VaR)
单从外观上看,VAR&VaR两个模型很容易混淆,但就模型方法和用处两者截然不同,R语言作为数据分析的有力工具,其函数包库中包含各种各样的统计模型.通过vars包可以调用向量自回归模型,通过Pe ...
- 如何通过CRM评估客户价值和提高客户忠诚度?
随着市场经济的日益繁荣,同行业之间企业的竞争越来越激烈,企业纷纷各出奇招吸引和挖掘客户,力求让自己的品牌成为更多客户的第一选择.那么,我们可以用什么方法来评估客户价值,提高客户忠诚度呢? 在互联网时代 ...
- 8月7号晚7点Autodesk北京办公室,我们来聊聊HTML5/ WebGL 3D 模型浏览技术
Autodesk 发布了一款完全无需插件的三维模型浏览器 Autodesk 360 Viewer,大家有没有兴趣,下班后过来聊聊吧! 8月7号 周四, 19:00~21:00 Autodesk北京 ...
- k-means实战-RFM客户价值分群
数据挖掘的十大算法 基本概念 导入数据集到mysql数据库中 总共有940个独立消费数据 K-Means 算法 K-Means 算法是一个聚类算法.你可以这么理解,最终我想把物体划分成 K 类.假设每 ...
随机推荐
- unittest_expectedFailure预期用例失败(5)
在断言用例执行结果时,会出现预期结果与实际结果不一致的情况,此时我们明确知道用例执行结果为FAIL,不想看到打印错误信息怎么办? 使用装饰器@unittest.expectedFailure标记该用例 ...
- [ SQLAlchemy ] 经验总结、QA
1.filter 和 filter_by [ 共同点 ]:查询后,用于过滤数据 [ 不同点 ]: 1.filter:过滤查询后的数据,用SQL表达式 session.query(MyClass).fi ...
- a href 鼠标滑过变成小手图标
<a id="l05" style="cursor:pointer;text-decoration:none;" href="<%=pat ...
- Spark-2.0.2源码编译
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6813925210731840013/ Spark官网下载地址: http://spark.apache.org/d ...
- Pop Sequeue
题目描述 Given a stack which can keep M numbers at most. Push N numbers in the order of 1,2,3...,N and p ...
- RHCSA 第七天
1.创建文件,并赋予权限611(两种方式,一种guoa,一种nnn) 2.创建目录,并赋予权限755(两种方式,一种guoa,一种nnn) 3.创建文件,并将文件的属主和属组修改其他用户 4.设置su ...
- 极简promise雏形
function Promise(fn) { var value = null, callbacks = []; //callbacks为数组,因为可能同时有很多个回调 this.then = fun ...
- spring 事务失效的几种场景
以下场景是基于mysql数据库,InnoDB的存储引擎. 一.没有添加@Transactional注解 二.方法声明是private或者static 三.没有抛出异常而是try catch了异常 下面 ...
- 将Cesium Tools用于更好的构建管理
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Cesium技术正在给建筑业带来革命性的变化.我们与 partn ...
- golang中的反射解析结构体标签tag
package main import ( "fmt" "reflect" ) type resume struct { // 反射解析结构体标签tag Nam ...