商业数据分析模型,RFM客户分类模型的分析与应用

本节给大家介绍的是RFM模型,RFM模型是衡量客户价值客户创利能力的重要工具和手段,通过一个客户的近期购买行为、购买的总体频率以及消费额度三个指标来描述该客户的价值状况。其中,用R(Recency)表示交易间隔、F(Frequency)表示交易频度、M(Monetary)表示交易金额组成,具体的含义如下表格所示:

商业数据分析模型,RFM客户分类模型的分析与应用

首先,计算R、F和M的分值,计算方法是在各自的维度上分为高低两类,分值高记为2,分值低记为1,R、F和M三个指标两两组合,可以得出8个不同的RFM值,按照实际情况分为8大客户群体,具体分类规则如下所示:

商业数据分析模型,RFM客户分类模型的分析与应用

1 数据预处理


本文所使用的数据集一共包含七个字段和5500条样本,这些字段分别是用户id,用户出生日期,下单时间,订单ID、支付方式、支付金额和是否享受折扣。

import pandas as pd
data = pd.read_csv( r'C:Users尚天强DesktopOrders.csv',engine='python',encoding='gbk') data.head()
商业数据分析模型,RFM客户分类模型的分析与应用

##查看数据情况 
data.shape

(5500, 7)

#重复值计数 
data['Uid'].duplicated().value_counts()

False 2822

True 2678

Name: Uid, dtype: int64

对用户id字段重复数计数,发现一共有2678个重复值。

#删除重复值 
data.drop_duplicates(subset=['Uid'],keep='first',inplace=True) 
data['Uid'].duplicated().value_counts()

False 2822

Name: Uid, dtype: int64

删除用户id的重复值后剩余2822条记录。

#查看是否有缺失值,以及查看数据类型
data.info()
商业数据分析模型,RFM客户分类模型的分析与应用

代码运行后发现没有缺失值,这里下单时间的数据类型是object,需要将其转化为日期类型,然后,根据交易日期,计算出每次交易距今的间隔天数。

# 将交易日期处理为日期数据类型 
data['Order_Date'] = pd.to_datetime(data.Order_Date,format='%Y/%m/%d')
# 假设2018-11-11是计算当天,求交易日期至计算当天的距离天数 
data['Days'] = pd.to_datetime('2018-11-11') - data['Order_Date']
# 从时间距离中获取天数 
data['Days'] = data['Days'].dt.days
data.head()
商业数据分析模型,RFM客户分类模型的分析与应用

2 计算R、F、M的值


计算R、F、M的值,以用户ID作为分组列,间隔天数、订单ID、支付金额分别为聚合列,分别求最小值、计数、求和,得出结果。

# 统计每个客户距离指定日期有多久没有消费了,即找出最小的最近消费距离 
R = data.groupby(by=['Uid'],as_index=False)['Days'].agg('min')
商业数据分析模型,RFM客户分类模型的分析与应用

# 统计每个客户交易的总次数,即对订单ID计数 
F = data.groupby(by=['Uid'],as_index=False)['Order_Id'].agg('count')
商业数据分析模型,RFM客户分类模型的分析与应用

# 统计每个客户交易的总额,即对每次的交易金额求和 
M = data.groupby(by=['Uid'],as_index=False)['Pay_Amt'].agg('sum')
商业数据分析模型,RFM客户分类模型的分析与应用

使用merge方法,将R、F、M三个数据在客户ID维度上关联起来,因为它们拥有共同的列名,在这种情况下,on参数可以省略不写。

# 将R、F、M三个数据框关联,merge默认内连接,可省略,两表on条件的关联列名均为CustomerID,同样可省略 
RFM_Data = R.merge(F).merge(M)
# 修改列名 
RFM_Data.columns = ['Uid', 'R', 'F', 'M']
RFM_Data.head()
商业数据分析模型,RFM客户分类模型的分析与应用

3 计算R、F、M综合分值


计算完R、F、M的值后,需要将他们各自按照平均值划分为高、低两类,高于平均值的赋值为2,低于平均值的赋值为1。

# 判断R列是否大于等于R列的平均值,使用loc将符合条件R_S列的值赋值为1 
RFM_Data.loc[RFM_Data['R'] >= RFM_Data.R.mean(), 'R_S'] = 1
# 判断R列是否小于R列的平均值,使用loc将符合条件R_S列的值赋值为2 
RFM_Data.loc[RFM_Data['R'] < RFM_Data.R.mean(), 'R_S'] = 2
#同R_S赋值方法,对F_S、M_S进行赋值,但与R相反,F、M均为越大越好 
RFM_Data.loc[RFM_Data['F'] <= RFM_Data.F.mean(), 'F_S'] = 1 
RFM_Data.loc[RFM_Data['F'] > RFM_Data.F.mean(), 'F_S'] = 2 
RFM_Data.loc[RFM_Data['M'] <= RFM_Data.M.mean(), 'M_S'] = 1 
RFM_Data.loc[RFM_Data['M'] > RFM_Data.M.mean(), 'M_S'] = 2
RFM_Data.head()
商业数据分析模型,RFM客户分类模型的分析与应用

这里使用一个小技巧计算RFM综合分值

RFM综合分值=100*R_S+10*F_S+1*M_S

如上第一行求出来的结果就是212。

# 计算RFM综合分值 
RFM_Data['RFM'] = 100*RFM_Data.R_S+10*RFM_Data.F_S+1*RFM_Data.M_S
RFM_Data.head()
商业数据分析模型,RFM客户分类模型的分析与应用

4 用户分层


这里定义了一个字典,将计算出来的8个RFM综合分值,一一对应一个客户类型,并且与前面计算的RFM综合分值进行横向连接。

# 定义RFM综合分值与客户类型的对应关系表 
CustomerType = pandas.DataFrame(data={'RFM': [111,112,121,122,211,212,221,222],                                
                               'Type': ['潜在客户','重点挽留客户','一般保持客户','重点保持客户','一般发展客户','重点发展客户','一般价值客户','高价值客户'] } )
# 将RFMData与RFM综合分值客户类型的对应关系表合并为一个数据框,merge默认内连接,可省略,两表on条件的关联列名均为RFM,同样可省略 
RFM_Data = RFM_Data.merge(CustomerType)
RFM_Data.head()
商业数据分析模型,RFM客户分类模型的分析与应用

# 按RFM、Type进行分组统计客户数 
RFM_Data.groupby(by=['RFM','Type'])['Uid'].agg('count')
商业数据分析模型,RFM客户分类模型的分析与应用

对于本次结果生成的客户数进行统计,其中高价值的客户有850个,潜在的客户有681个。

import pandas as pd 
s=pd.DataFrame({'Type':['潜在客户','重点挽留客户','一般保持客户','重点保持客户','一般发展客户','重点发展客户','一般价值客户','高价值客户'], 
                '客户数':[681,22,174,276,489,6,324,850]}, 
                index=['潜在客户','重点挽留客户','一般保持客户','重点保持客户','一般发展客户','重点发展客户','一般价值客户','高价值客户']) 
s.sort_values(by='客户数',ascending=True, inplace=True) 
s.plot(kind='barh')
商业数据分析模型,RFM客户分类模型的分析与应用

对于结果可视化作图分析,其中高价值客户数最多,重点发展客户最少。


5 数据导出


# 导出数据  
RFM_Data.to_excel(r'C:Users尚天强DesktopRFM模型.xlsx',index=None)


6 结论建议


通过RFM模型分类后发现,高价值客户数最多,这部分客户最近一次交易时间近、交易频次高、交易金额大,是优质客户,针对这部分客户,可以加大一些优惠力度,享受高折扣,以及做好客情维护。

而潜在客户数也较多,这部分客户最近一次交易时间长、交易频次低、交易金额小,有流失风险,鉴于这部分客户数占比较多,优先考虑挽回,可主动增加造访机会,挽回客户。

展开阅读全文

页面更新:2024-04-22

标签:模型   客户   数据   平均值   天数   字段   间隔   金额   距离   重点   日期   类型   价值   时间   商业   用户   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top