专栏名称: 爱数据原统计网
中国统计网(www.itongji.cn),国内最大的数据分析门户网站。提供数据分析行业资讯,统计百科知识、数据分析、商业智能(BI)、数据挖掘技术,Excel、SPSS、SAS、R等数据分析软件等在线学习平台。
目录
相关文章推荐
51好读  ›  专栏  ›  爱数据原统计网

实战: RFM模型使用

爱数据原统计网  · 公众号  · BI  · 2017-02-01 17:09

正文



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


本文所使用到的数据纯属随机产生,也许结果没有任何意义,但重点是理解RFM模型背后的原理。接下来将结合Mysql数据库和R语言实现该理论的应用。


如下是Mysql随机产生的R、F和M三个指标的数值代码,共产生10万行的虚拟记录:


#创建数据库

create database sample;

use sample;


#创建表

drop table if exists data_rfm;

create table data_rfm(

id int unsigned primary key auto_increment,

Recency mediumint unsigned,

Frequency smallint unsigned,

Monetary decimal(10,2)

);


#删除是否存在的存储过程

drop procedure if exists randnum_p;


#变换SQL语句的结束符

\d //


#创建存储过程

create procedure randnum_p(n int)

begin

declare i int default 1;

declare Recency mediumint default 0;

declare Frequency smallint default 0;

declare Monetary decimal(10,2) default 0.00;

while i

set autocommit = 0;

set Recency = floor(1+365*rand());

set Frequency = floor(1+150*rand());

set Monetary = floor(200+3500*rand());

insert into data_rfm

(id,Recency,Frequency,Monetary)

values

(null,Recency,Frequency,Monetary);

set i = i+1;

end while;

commit;

end//


#重新变换SQL语句的结束符

\d ;


#调用存储过程

call randnum_p(100000);


查看一下前10行的数据结构:



接下来就是用R去连接Mysql数据库,需要 下载并加载RMySQL包


if(!suppressWarnings(require('RMySQL'))){

install.packages('RMySQL')

require('RMySQL')

}


#接下来,通过 dbDriver函数 加载MySQL驱动程序,使DBI接口知道它正在链接什么类型的数据库


driver

#连接数据库

connect

password='snake',host='localhost')


#通过 dbGetQuery()函数 取出Mysql数据库中的数据


data_rfm

head(data_rfm)



数据有了,接下来就是如何实现RFM模型的应用:


一、首先需要为R、F、M三个维度的指标打上相应的分数。 具体步骤如下:


1)对三个指标进行分箱的工作,一般采用等深的原则对数据进行分箱,这里的等深指每个箱中的样本量大体一致。


2)根据样本的三个指标值落在不同的箱中,打上不同的分数,这里的处理原则是:


对于R(最近消费时间距当前日期的时间长度)从小到大分别给出10至1分(反向打分)


对于F(某段时间内消费者消费的频次)从小到大分别给出1至10分(正向打分)


对于M(某段时间内消费者消费的总金额)从小到大分别给出1至10分(正向打分)


这里采用Hmisc包中的cut2函数对数据进行分箱



从图中的结果可以发现,各个区间(箱)中的样本量大体一致。


接下来需要为数据进行重编码,即根据不同的区间(箱)打上不同的分数。



然后需要将打好分的R、F、M合并到原来的数据框中,效果如下图:




二、其次要根据R、F和M的得分,为每一个id算一个综合得分 这里使用加权总得分法,根据不同的行业背景,给R、F和M不同的权重,SPSS Modeler默认的采用100、10和1加权。这里使用2、3和5加权,即消费总额最重要,其次频次最后是最近消费时间。


data_rfm$Tot_score


根据著名的2-8原则,接下来根据每个id的总得分为其打上标签。一般有4个标签:VIP,高价值,潜在价值和低价值。这4个标签的的比例一般为5%、15%、30%和50%,这样就需要为每个标签定制好总分区间。


#计算各个标签的临界值


q


接下来就是根据总分所属的区间为每一个id打上不同的标签:







请到「今天看啥」查看全文