CREATED BY TAO

一 .先了解一下什么是RFM分析,RFM分析是根据客户活跃程度和交易金额贡献,进行客户价值细分的一种客户细分方法。

RFM由R(Recency)进度,F(Frequency)频度,M(Monetary)额度组成。

R表示客户最近一次交易时间的间隔。R值越大,表示客户交易发生的日期越久。R值越小,表示客户交易发生的日期越近。

R表示客户在最近一段时间内交易的次数。F值越大,表示客户交易越频繁。F值越小,表示客户越不活跃。

M表示客户在最近一段时间内交易的金额。M值越大,表示客户价值越高。M值越小,表示客户价值越低。

这样不同分类组合,就形成了八种客户类型

RFM的八种客户类型

RFM的分析过程

FRM=100*R_S+10*F_S+1*M_S

二.接下来就是基于python来进行RFM分析

将csv数据导入python

查看数据框维度和数据框内的数据类型

一共有5列数据,每列有76050行

数据虽然有5列,5个字段,但真正参与分析的只有4个字段USERID、ORDERDATE、ORDERID、AMOUNTINFO

USERID列为客户ID、ORDERDATE列为时间列、OEDERTD列为订单ID、AMOUNTINFO列为金额列

可以看出有缺失值的列为ORDERDATE列和AMOUNTINFO列

第一步:进行数据清洗

查看AMOUNTINFO列中的最大值为30999

查看AMOUNTINFO列中的最大值为为0.5

(1)删除所有空值的行

删除所有为空值的行,并把数据添加到dt数据框中

(2)筛选AMOUNTINFO列的数据,因为金额的最小值为0.5,数值<1,因此要提取出AMOUNTINFO列中>1的数据进行分析

将数据提取出来后依然放入dt数据框,按照金额大小降序排列

查看dt数据框的维度和数据类型

删除和提取数据之后 dt数据框一共有5列数据,每列有75240行

(3)处理时间列的数据类型

已知时间列ORDERDATE的数据类型为Object、字符型

将ORDERDATE列处理为日期数据类型

查看ORDERDATE列的数据类型 为'

如上图

第二步:进行数据分析

(4)求日期到现在的距离

求日期到现在的距离,并把结果数据放入datediff列中

如上图

(5)从时间距离中获得天数

从时间距离中获得天数

如上图

(6)统计每个用户距离现在多久没有消费了,找到最小的最近消费距离

找出最近消费距离数据放入r_agg数据框中

查看r_agg列的数据维度,一共有2列,每列55143行

(7)统计每个用户交易的总次数,即对订单数计数

找出交易次数数据放入f_agg数据框中

查看f_agg列的数据维度,一共有2列,每列55143行

(8)统计每个用户交易的总金额,即对每次的交易金额求和

找出交易金额数据放入m_agg数据框中

查看m_agg列的数据维度,一共有2列,每列55143行

(9)使用merge函数把r_agg、f_agg、m_agg三个数据框关联起来

把三个数据框关联起来并放入aggData数据框中

更改aggData数据框的列名

FRM=100*R_S+10*F_S+1*M_S

(10)求R_S的得分

把得分数据放入r_s数据框中

最近消费距离列(recencyAgg)按照从小到大顺序排列,间隔距离越大也就是recencyAgg列的值越大,得分越小

因此,标签rlabels按照从大到小排列。

(11)求F_S的得分

把得分数据放入f_s数据框中

消费频次列(requencyAgg)的数据并未呈正态分布,所以未使用quantile函数,而是查看数据的分布情况按照分布情况的从小到大顺序进行排列,消费频次越大也就是frequencyAgg列的值越大,得分越大

因此,标签flabels按照从小到大排列。

(12)求M_S的得分

把得分数据放入m_s数据框中

消费金额列(monetaryAgg)按照从小到大的顺序排列,消费金额越大也就是monetaryAgg列的值越大,得分越大

因此,标签mlabels按照从小到大排列。

(13)将r_s、f_s、m_s添加到数据框aggData中

添加到数据框aggData中

查看aggData数据框中各列的数据类型

(14)将r_s、f_s、m_s列数据类型转换成数值型(int),再计算RFM得分

计算RFM得分

(15)为RFM得分添加标签

为RFM得分添加了标签并分成了八类,将数据放入level数据框中

如上图

(16)对客户等级列(level)进行分组,按照客户ID进行计数统计,并把数据放入customerlevels数据框中

将分组后的数据放入customerlevels数据框中

如上图

结论:

RFM模型可以对客户的终生价值做一个合理的预估,基于一个理想的客户特征来衡量现实中客户价值的高低,通过此类分析,定位最有可能成为品牌中式客户的群体,让我们把主要精力放在最有价值的用户身上开展精准营销。

细分出来的客户类型分布情况

各类客户的占比情况

CREATED BY TAO

基于python的步态分析_基于python实现RFM分析相关推荐

  1. 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法的制作方法...

    本发明涉及一种三维肢体活动角度算法,特别是涉及一种基于Python的步态周期及三维肢体活动角度算法. 背景技术: 肢体活动角度(ROM,Range of Motion)是指人体在运动时的肢体活动范围, ...

  2. 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法_2017108489397_说明书_专利查询_专利网_钻瓜专利网...

    技术领域 本发明涉及一种三维肢体活动角度算法,特别是涉及一种基于Python的步态周期及三维肢体活动角度算法. 背景技术 肢体活动角度(ROM,Range of Motion)是指人体在运动时的肢体活 ...

  3. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  4. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  5. python遥感图像处理_基于Python的矿山遥感监测系统开发方法

    目前,很多学者都是从宏观上讨论遥感和GIS一体化集成的可能性及集成的方法,但这些研究在GIS和RS方向只是对Python集成研究的思路或某一功能的介绍,并没有一个基于Python开发的集成GIS与RS ...

  6. python自动化算法_基于Python语言和Abaqus平台的边坡可靠度计算自动化算法开发

    2.2 求解过程 求解过程包括7步,如 图 2 图 2 自动化程序的求解过程 Fig. 2 The solving part of the automation program 1) Python形成 ...

  7. python hook微信_基于hook的python机器人,彻底取代itchat

    本文档部分由itchat与wxpy的开发文档修改得出 禁止不规范转载 WechatBot WechatBot是一个半开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到20行的代码, ...

  8. python 交互式流程图_使用Python创建漂亮的交互式和弦图

    python 交互式流程图 Python中的数据可视化 (Data Visualization in Python) R vs Python is a constant tussle when it ...

  9. python 网页编程_通过Python编程检索网页

    python 网页编程 The internet and the World Wide Web (WWW), is probably the most prominent source of info ...

最新文章

  1. 用c语言实现去bmp图片的背景,菲律宾博牛网-官方网站
  2. Nginx配置文件粗解
  3. word2vec安装以及使用
  4. python与人工智能编程-总算明白python人工智能编程入门案例
  5. iphone各机型参数对比_我们对比新旧两代iPhone,发现iPhone 12最值得买
  6. android 消息列表,[Android]用LinearLayout 实现类微信消息列表项
  7. Win10系统添加 Win10 LTSC2019闹钟
  8. led计数电路实验报告_LED点亮程序
  9. PHP常量详解:define和const的区别
  10. (专题一)05 矩阵元素的引用方式
  11. typeof, offsetof, container_of宏
  12. 概率论于数理统计(陈希孺)笔记2.3
  13. Servlet的面试题
  14. GPS里集成的指南针一般叫做外置罗盘是1#,飞控里面的指南针叫内置罗盘是2#
  15. 搜索词纠错(拼写检查)、相关搜索的原理与实现
  16. 华为手机能隐藏蓝牙吗_华为手机隐藏功能大全展示!
  17. Unity报错:Assertion failed on expression: ‘IsMatrixValid(matrix)‘...的解决办法
  18. 拓嘉启远:拼多多流量一下子涨很快的原因
  19. Kotlin基础语法之 ==和===的区别
  20. 用html怎么制作风车,css3 animation实现风车转动

热门文章

  1. iOS10---新特性以及适配点
  2. cocos2d-lua中的弧度和角度
  3. ERP系統借贷关系表
  4. 6.S081-Lab 2: System Calls
  5. python中input()函数详解
  6. VLFeat工具包下载
  7. 推荐一个github上好玩的工具
  8. 解决pip下载速度过慢的问题
  9. CentOS 修改变大字体
  10. A tutorial on Spectral Clustering