基于python的步态分析_基于python实现RFM分析
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分析相关推荐
- 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法的制作方法...
本发明涉及一种三维肢体活动角度算法,特别是涉及一种基于Python的步态周期及三维肢体活动角度算法. 背景技术: 肢体活动角度(ROM,Range of Motion)是指人体在运动时的肢体活动范围, ...
- 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法_2017108489397_说明书_专利查询_专利网_钻瓜专利网...
技术领域 本发明涉及一种三维肢体活动角度算法,特别是涉及一种基于Python的步态周期及三维肢体活动角度算法. 背景技术 肢体活动角度(ROM,Range of Motion)是指人体在运动时的肢体活 ...
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python遥感图像处理_基于Python的矿山遥感监测系统开发方法
目前,很多学者都是从宏观上讨论遥感和GIS一体化集成的可能性及集成的方法,但这些研究在GIS和RS方向只是对Python集成研究的思路或某一功能的介绍,并没有一个基于Python开发的集成GIS与RS ...
- python自动化算法_基于Python语言和Abaqus平台的边坡可靠度计算自动化算法开发
2.2 求解过程 求解过程包括7步,如 图 2 图 2 自动化程序的求解过程 Fig. 2 The solving part of the automation program 1) Python形成 ...
- python hook微信_基于hook的python机器人,彻底取代itchat
本文档部分由itchat与wxpy的开发文档修改得出 禁止不规范转载 WechatBot WechatBot是一个半开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到20行的代码, ...
- python 交互式流程图_使用Python创建漂亮的交互式和弦图
python 交互式流程图 Python中的数据可视化 (Data Visualization in Python) R vs Python is a constant tussle when it ...
- python 网页编程_通过Python编程检索网页
python 网页编程 The internet and the World Wide Web (WWW), is probably the most prominent source of info ...
最新文章
- 用c语言实现去bmp图片的背景,菲律宾博牛网-官方网站
- Nginx配置文件粗解
- word2vec安装以及使用
- python与人工智能编程-总算明白python人工智能编程入门案例
- iphone各机型参数对比_我们对比新旧两代iPhone,发现iPhone 12最值得买
- android 消息列表,[Android]用LinearLayout 实现类微信消息列表项
- Win10系统添加 Win10 LTSC2019闹钟
- led计数电路实验报告_LED点亮程序
- PHP常量详解:define和const的区别
- (专题一)05 矩阵元素的引用方式
- typeof, offsetof, container_of宏
- 概率论于数理统计(陈希孺)笔记2.3
- Servlet的面试题
- GPS里集成的指南针一般叫做外置罗盘是1#,飞控里面的指南针叫内置罗盘是2#
- 搜索词纠错(拼写检查)、相关搜索的原理与实现
- 华为手机能隐藏蓝牙吗_华为手机隐藏功能大全展示!
- Unity报错:Assertion failed on expression: ‘IsMatrixValid(matrix)‘...的解决办法
- 拓嘉启远:拼多多流量一下子涨很快的原因
- Kotlin基础语法之 ==和===的区别
- 用html怎么制作风车,css3 animation实现风车转动