【数据分析思维】RFM用户分层

【数据分析思维】RFM用户分层

01
写在前面
跟着互联网流量盈利的逐步消失,之前粗狂式的拓客和一刀切的用户运营现已难以为继,越来越多的公司开端意识到,只靠烧钱圈用户、养用户本钱太高,由于不是一切的用户都需求你要点投入,金主爸爸一定要好好保护,潜力股一定要加大投入发掘价值,而羊毛党永远都是你应该谨防的目标,这便是所谓的精密化运营,钱要花在刀刃上,要花在事务和中心用户上。
精密化运营考究的是千人千面,一千类用户一千种运营战略,所以榜首步便是要把用户进行分类,然后才有针对性的运营战略,而用户分类中一种尤为重要和常用的办法便是RFM。
02
什么是RFM?

什么是RFM?RFM最早产生于电商范畴,依据客户的买卖频次和买卖额衡量客户的价值,对客户进行细分。RFM是衡量客户价值的三个维度,别离为R(Recency)买卖间隔、F(Frequency)买卖频度、M(Monetary)买卖金额组成。

R表明间隔(Recency):也便是客户最近一次买卖距今的间隔,需求留意的是,R是最近一次买卖时刻到现在的间隔,而不是最近一次的买卖时刻,R越大,表明客户越久

未产生买卖,反之R越小,表明客户越近有买卖产生。F表明频次(Frequency):也便是客户在最近一段时刻内买卖的次数,一般来说选取一个特定的时刻段,F越大,表明客户买卖越频频,反之F越小,表明客户不行

活泼。M表明额度(Monetary):也在相同的时刻段内,客户买卖的金额,M越大,表明客户价值越高,M越小,表明客户价值越低。

有了以上3个维度的数据,就能够对每个用户依照每个维度进行衡量,一般来说咱们会选取一个合理的分值对R、F、M进行区分,将3个维度别离分为高、低两类,组合下来便是8类,也就形成了8个用户集体。当然你说我每个维度分红3类行不行,终究分红27个用户集体不是更精密,当然没问题,可是咱们能不能给出27种不同的运营计划,假如给不出,如此细分不便是自嗨么?究竟,分为多少个集体不重要,每个集体都要有个性化的运营战略才重要。
下面是一张经典RFM客户细分模型图,R分值、F分值和M分值三个目标构成了一个三维立方图,在各自维度上,依据得分值又能够分为高、低两个分类,别离用2、1表明,终究3个目标两两组合,就构成了8大客户集体。
对每个用户集体进行定性,例如R、F、M分值高的客户为重要价值客户,R、F、M三个分值都低的客户为潜在客户,其他类型客户能够此类推解读。

03
RFM实践事例

RFM的原理到这儿就讲完了,是不是很简单?的确很简单,可是也的确很有用,在实践的工作中是怎么施行这个用户分层模型的呢?下面咱们就用一个实践的事例手把手教你怎么进行RFM用户分层。
全体来说,RFM模型施行需求以下几个要害的过程。

01、数据预备
下面经过一个实践的事例学习RFM剖析的运用,事例是用python做的,当然了Excel也能做,不用纠结于东西哈,首先将数据导入到data变量,代码如下:
importpandasdata=pandas.read_csv('D:/RFM剖析.csv',engine='python'

能够大致看一眼data数据的款式,如下图所示。

能够看到,这儿记载的是客户的每一个订单的信息,榜首列为订单ID,第二列为客户ID,第三列为买卖日期,第四列为买卖金额。
对数据进行一下加工,依据买卖日期,核算出每次买卖距今的间隔天数,代码如下:
#将买卖日期处理为日期数据类型data['DealDateTime']=pandas.to_datetime(data.DealDateTime,format='%Y/%m/%d')#假定2015-10-1是核算当天,求买卖日期至核算当天的间隔天数data['Days']=pandas.to_datetime('2015-10-1')-data['DealDateTime']#从时刻间隔中获取天数data['Days']=data['Days'].dt.days
履行以上代码,即可得到用户每一次买卖日期间隔指定日期的天数,如下图所示。

02、核算R、F、M
用户的明细数据预备好后,接下来就能够核算每个客户的最近买卖间隔R、买卖频率F以及买卖总额M,核算办法如下:

最近买卖间隔R:运用CustomerID作为分组列,间隔指定日期间隔天数Days作为聚合列,核算函数运用最小值函数min,即可得到每个客户的最近买卖间隔R。买卖频率F:运用CustomerID作为分组列,OrderID作为聚合列,核算函数运用计数函数count。买卖总额M:运用CustomerID作为分组列,订单金额Sales作为聚合列,核算函数运用求和函数sum。

对应的代码如下:
#核算每个客户间隔指定日期有多久没有消费了,即找出最小的最近消费间隔R=data.groupby(by=['CustomerID'],as_index=False)['Days'].agg('min')#核算每个客户买卖的总次数,即对订单ID计数F=data.groupby(by=['CustomerID'],as_index=False)['OrderID'].agg('count')#核算每个客户买卖的总额,即对每次的买卖金额求和M=data.groupby(by=['CustomerID'],as_index=False)['Sales'].agg('sum')

履行以上代码,得到的成果如下图所示。

接下来运用merge办法,将R、F、M三个数据在客户CustomerID维度上相关起来,由于它们具有一起的列名,在这种情况下,on参数能够省掉不写,代码如下:

#将R、F、M三个数据框相关,merge默许内衔接,可省掉,两表on条件的相关列名均为CustomerID,相同可省掉RFMData=R.merge(F).merge(M)#修正列名RFMData.columns=['CustomerID','R','F','M']

履行以上代码,得到的成果如下图所示。

03、核算R、F、M归纳分值
每个客户的R、F、M数据核算好后,接下来就能够对R、F、M这三个维度进行分组打分赋值,得到对应的R分值、F分值、M分值。
打分规范能够依照事务经历、平均值等规范进行区分。最好是依照事务经历区分,由于这儿分类的的用户是要到后边进行精密化运营的,能够经过已有的运营战略反推这儿的区分阈值,当然,假如还没有特别明晰的运营战略,也能够选用平均值进行区分。
本例将R、F、M三列别离依照各自的平均值区分为高、低2个组,并别离赋值1分、2分。

R分值(R_S):间隔指定日期越近,R_S越大,R>=平均值,R_S为1,R<平均值,R_

S为2。

F分值(F_S):界说为买卖频率越高,F_S越大,F<=平均值,F_S为1,F>平均值,F_

S为2。

M分值(M_S):界说为买卖金额越高,M_S越大,M<=平均值,M_S为1,M>平均值,M_S为2。

对各个用户的RFM的数据行进行打分赋值,代码如下:

#判别R列是否大于等于R列的平均值,运用loc将契合条件R_S列的值赋值为1RFMData.loc[RFMData['R']>=RFMData.R.mean(),'R_S']=1#判别R列是否小于R列的平均值,运用loc将契合条件R_S列的值赋值为2RFMData.loc[RFMData['R']<RFMData.R.mean(),'R_S']=2#同R_S赋值办法,对F_S、M_S进行赋值,但与R相反,F、M均为越大越好RFMData.loc[RFMData['F']<=RFMData.F.mean(),'F_S']=1RFMData.loc[RFMData['F']>RFMData.F.mean(),'F_S']=2RFMData.loc[RFMData['M']<=RFMData.M.mean(),'M_S']=1RFMData.loc[RFMData['M']>RFMData.M.mean(),'M_S']=2

履行代码,R_S、F_S、M_S的分组分值就核算出来了,如下图所示。

依据以上得出用户终究的RFM分层,如下图所示。
#核算RFM归纳分值RFMData['RFM']=100*RFMData.R_S+10*RFMData.F_S+1*RFMData.M_S

履行代码,得到的RFM归纳分值如下图所示。CustomerID:14568的分层为221,对应的便是一般价值用户。

04、用户分层
接下来结合文章最初说到的用户分层界说,将用户细分为8种不同的类型。本例选用与RFM归纳分值与用户类型的对应联系表映射的办法完成用户分层。
首先将各个RFM归纳分值与用户类型的对应联系界说为一个映射匹配表。然后再运用merge中的内衔接inner办法,将RFMData与刚界说的RFM归纳分值用户类型的映射匹配表,依据相关列名RFM匹配合并为一个dataframe,这样就完成了用户分层的操作,代码如下:
#界说RFM归纳分值与客户类型的对应联系表CustomerType=pandas.DataFrame(data={'RFM':[111,112,121,122,211,212,221,222]'Type':['潜在客户','要点款留客户','一般坚持客户','要点坚持客户','一般开展客户','要点开展客户','一般价值客户','高价值客户']})#将RFMData与RFM归纳分值客户类型的对应联系表合并为一个数据框#merge默许内衔接,可省掉,两表on条件的相关列名均为RFM,相同可省掉RFMData=RFMData.merge(CustomerType)

履行代码,得到的数据如下图所示。

能够看到,最终一列数据,便是对每个用户细分的用户分层。最终,咱们来看看,每个类别的用户数是多少,代码如下:

<pre style="f

特别申明:本站的主旨在于收集互联网运营相关的干货知识,给运营小伙伴提供便利。网站所收集到的公开内容均来自于互联网或用户投稿,并不代表本站认同其观点,也不对网站内容的真实性负责,如有侵权,请联系站长删除,转载请注明出处:https://www.lnwcn.com/157312.html。
(0)
运营学社的头像运营学社官方
上一篇 2023年7月30日 上午10:26
下一篇 2023年7月30日 下午2:46

猜你喜欢

QQ:1124602020
微信:vl54120
备注:周一至周五全天在线,周末可能不在线,另外联系时,请告知来意。

公众号
交流群
运营学社会员,开通可享海量资源与多项权益,点击了解详情