加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 教程 > 正文

不到70行Python代码,轻松玩转RFM用户分析模型

发布时间:2019-10-30 05:04:56 所属栏目:教程 来源:一枚程序媛呀
导读:副标题#e# 本文从RFM模型概念入手,结合实际案例,详解Python实现模型的每一步操作,并提供案例同款源数据,以供同学们知行合一。 注:想直接下载代码和数据的同学可以空降文末 看这篇文章前源数据长这样: 学完后只要敲一个回车,源数据就变成了这样: 是

RFM模型中打分一般采取5分制,有两种比较常见的方式,一种是按照数据的分位数来打分,另一种是依据数据和业务的理解,进行分值的划分。这里希望同学们加深对数据的理解,进行自己的分值设置,所以讲述过程中使用的是第二种,即提前制定好不同数值对应的分值。

R值根据行业经验,设置为30天一个跨度,区间左闭右开:

不到70行Python代码,轻松玩转RFM用户分析模型

F值和购买频次挂钩,每多一次购买,分值就多加一分:

不到70行Python代码,轻松玩转RFM用户分析模型

我们可以先对M值做个简单的区间统计,然后分组,这里我们按照50元的一个区间来进行划分:

不到70行Python代码,轻松玩转RFM用户分析模型

这一步我们确定了一个打分框架,每一位用户的每个指标,都有了与之对应的分值。

04 分值计算

分值的划分逻辑已经确定,看着好像有点麻烦。下面我们有请潘大师(Pandas)登场,且看他如何三拳两脚就搞定这麻烦的分组逻辑,先拿R值打个样:

不到70行Python代码,轻松玩转RFM用户分析模型

沧海横流,方显潘大师本色,短短一行代码就搞定了5个层级的打分。Pandas的cut函数,我们复习一下:

  • 第一个参数传入要切分的数据列。
  • bins参数代表我们按照什么区间进行分组,上面我们已经确定了R值按照30天的间隔进行分组,输入[0,30,60,90,120,1000000]即可,最后一个数值设置非常大,是为了给分组一个容错空间,允许出现极端大的值。
  • right表示了右侧区间是开还是闭,即包不包括右边的数值,如果设置成False,就代表[0,30),包含左侧的分组数据而不含右侧,若设置为True,则是[0,30],首尾都包含。
  • labels和bins切分的数组前后呼应,什么意思呢?bins设置了6个数值,共切分了5个分组,labels则分别给每个分组打标签,0-30是5分,30-60是4分,依此类推。

接着,F和M值就十分容易了,按照我们设置的值切分就好:

不到70行Python代码,轻松玩转RFM用户分析模型

第一轮打分已经完成,下面进入第二轮打分环节。

客官不要紧脏,面试都还不止两轮呢,伦家RFM模型哪有那么随便的。

现在R-SCORE、F-SCORE、M-SCORE在1-5几个数之间,如果把3个值进行组合,像111,112,113...这样可以组合出125种结果,过多的分类和不分类本质是一样的。所以,我们通过判断每个客户的R、F、M值是否大于平均值,来简化分类结果。

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读