RFM客户价值分析模型

模型概述

RFM模型是用来衡量当前客户价值和潜在客户价值的重要工具和手段。RFM是指Recency(近度),Frequency(频度)、Monetary(额度),三个指标首字母组合,如图所示(图1-1):


1-1

通过RFM分析将客户群体划分成高价值客户、重点保持客户、重点发展客户、重点挽留客户、一般价值客户、一般保持客户、一般发展客户、潜在客户等八个级别,如图所示(图1-2):


1-2.png
分类客户特点:

高价值客户(高、高、高):最近消费时间较短、消费频度和消费金额都较高,这是需要重点关注和维护的客户。

重点保持客户(低、高、高):最近消费时间较长,消费频次和消费金额都较高,说明这是个一段时间没来的忠实客户,需要主动保持联系。

重点发展客户(高、低、高):最近消费时间较短、消费金额高,但消费频次较低。忠诚度不高,但是消费能力强,是非常有潜力的客户,需要重点跟进。

重点挽留客户(低、低、高):最近消费时间较长、消费频次不高,但消费金额高的客户,可能是将要流失或者已经要流失的客户,应吸引客户回流。

RFM模型的最终目的是为了在经营过程中区别出客户类群,并在此基础上针对不同类型客户进行精准化营销,进而提升客户价值,实现企业利益最大化。

模型实现

1.数据准备
我生成了一份模拟数据,该数据集共有940条数据,包含ID(主键)、R(Recency)、F(Frequency)以及M(Monetary),共4个字段。数据存储在mysql数据库中,需连接mysql并进行提取。代码如下:

#导入库
import pandas as pd
import numpy as np
import pymysql
from sklearn.cluster import KMeans

#连接数据库并导出数据
conn= pymysql.connect(host='localhost',user='root',password='123456',
                                       db='test',port=3306)
rfm_model = pd.read_sql("select * from consumption_data",con=conn)
conn.close()

#查看数据描述
rfm_model.describe()

#查看数据
frm_model.head()

数据如下图所示(图2-1):


2-1

数据描述性统计(图2-2):


2-2

2.随机选取中心点并生成分类标签
# 调用KMeans算法,n_clusters参数表示划分的类别数,
# random_state参数表示自由度
clf = KMeans(n_clusters=8,random_state=100)

# 对数据进行拟合,训练出模型
clf.fit(rfm_model)

# 查看分类标签(0-7,共8类)
clf.labels_

# 将标签添加至数据
rfm_model['label']=clf.labels_

添加标签后数据如下(图2-3):


2-3

3.查看每类数据中心点,并得出8类分组RFM值的中位数

# 查看每类数据的中心点
# 每一行代表一个类别,三列对应了R,F,M,
r = pd.DataFrame(clf.cluster_centers_,columns=['id','R','F','M'])
rmd = r['R'].median()
fmd = r['F'].median()
mmd = r['M'].median()
print(rmd,fmd,mmd)

每类数据中心点(图2-4):


2-4

RFM值中位数(图2-5):


2-5

4.把每个类中的RFM的值分别与刚刚得出的RFM的中位数的值进行比较,并添加客户分类属性。
# 标识客户类型
customer_type = []
for i in range(len(r)):
    if r.iloc[i,1]> rmd and r.iloc[i,2]>=fmd and r.iloc[i,3]>=mmd:
        customer_type.append('高价值客户')
    elif  r.iloc[i,1]<rmd and r.iloc[i,2]>=fmd and r.iloc[i,3]>=mmd:
        customer_type.append('重点保持客户')
    elif  r.iloc[i,1]>=rmd and r.iloc[i,2]<fmd and r.iloc[i,3]>=mmd:
        customer_type.append('重点发展客户')
    elif  r.iloc[i,1]<rmd and r.iloc[i,2]<fmd and r.iloc[i,3]>=mmd:
        customer_type.append('重点挽留客户')
    elif  r.iloc[i,1]>=rmd and r.iloc[i,2]>=fmd and r.iloc[i,3]<mmd:
        customer_type.append('一般价值客户')
    elif  r.iloc[i,1]<rmd and r.iloc[i,2]>=fmd and r.iloc[i,3]<mmd:
        customer_type.append('一般保持客户')
    elif  r.iloc[i,1]>=rmd and r.iloc[i,2]<fmd and r.iloc[i,3]<mmd:
        customer_type.append('一般发展客户')
    else:
        customer_type.append('潜在客户')

#添加标签
r['客户分类'] = customer_type       

添加标签后分类结果如下(图2-6):


2-6

5.把分类结果与原数据进行合并

# 结果合并
right = pd.DataFrame(r['客户分类'])
result=pd.merge(rfm_model,right,left_on='label',right_index=True)
result.sort_values(by='Id')

合并后结果如下(图2-7):


2-7

6.客户运营策略:
针对上述分类结果,我们可以对不同的客户分类采取相应的营销策略,例如:
对于高价值客户,我们需要重点保持关注,并对客户进行长期维护与联系;
对于重点保持客户,我们可以给予优惠券或其他促销活动,以吸引客户回流;
对于重点发展客户,我们可以为客户办理会员卡以提升客户消费频次;
对于重点挽留客户,我们可以定时推送消息和给予优惠券,以吸引客户回流。

小结

消费近度、消费频度、消费额度是衡量消费者价值最重要也是最容易的方法,这次的分析体现了这三个指标对营销活动的参考意义,但是在实际工作中,涉及到的维度以及客户的分类可能会更复杂,要针对不同公司、不同业务对RFM模型做出相应的调整。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容