基于RFM模型的用户价值的数据分析报告

分析背景与目的

  目前企业的业务逐步从产品为主导转向以客户的需求为主导。一种全新的”以客户为中心“的业务模式正在形成并提升的前所未有的高度。然而与客户保持关系需要花费成本,企业所拥有的客户只能一部分为企业带来利润。企业的资源也是很有限的,忽视高潜力的客户而对所有客户都提供同样的服务,将使企业的资源利润无法发挥其最大效用去创造最大化的利润。那么如何进行客户价值分析,甄选出有价值的客户,让企业精力集中在这些客户上,有效地提升企业竞争力是企业获得更大的发展。

  在用户价值领域,最具有影响力并得到实证验证的理论与模型有:用户终生价值理论、用户价值金字塔模型,策论评估矩阵分析法和RFM客户价值分析模型等。本次分析将用到客户价值RFM模型进行分析。
为网上获得的用户交易数据原文连接为https://blog.csdn.net/NIeson2012/article/details/50150521。 为Excel文件。

分析思路

(1) 对得到的数据进行数据清洗,特征的构建和数据标准化
(2) 基于RFM模型,使用K-Means算法进行客户分群。
**(3) 基于RFM模型,使用Excel对用户进行分群。
(3) 针对模型得到的价值不同的客户采用不同的营销手段,以提供定制化服务。

分析报告正文

基于RFM模型,使用K-Means算法

预处理客户数据

该数据集共有26600多条数据,包含记录ID(数据库的primarykey)、客户编号、收银时间、销售金额、销售类型共5个字段:

通过简单的筛选,可以看到,在交易金额中有0消费额,有负数消费额,继续查看交易类型,发现为“赠送”和“退货”所造成。这些数据在本次分析中用不到,所以在数据处理时进行丢弃处理,并且字段名称重新命名,方便后续处理时间格式也需要进一步简化为yyyy-mm-dd格式,具体方法如下:

  • ‘记录ID’:‘numid’,‘客户编号’:‘useid’,‘收银时间’:‘time’,‘销售金额’:‘amount’,‘销售类型’:‘type’。
  • 丢弃销售金额为小于等于0的记录(丢弃销售类型为‘赠送‘和’退货’的记录)。
  • 去掉时间中时分秒的部分。
from datetime import datetime
//重命名
df.rename(columns={'记录ID':'numid','客户编号':'useid','收银时间':'time','销售金额':'amount','销售类型':'type'}, inplace = True)
//更改时间格式
df['time'] =df['time'].apply(lambda x:datetime.strftime(x,'%Y-%m-%d'))
//删除无效数据,同时index重新计数
df = df[df.amount>0].reset_index(drop=True)   // df = df[(df.type=='特价')|(df.type=='正常')]
print("删除无效数据后数据的形状:",df.shape)
df.tail()

构建用户价值分析关键特征—RMF模型的特征

本项目采用RFM模型,需要在原数据的基础上构建数据框:进行数据透视表的构建,time采用最大值,amount采用均值,numid及购买记录采用计数的方式。

rfm = df.pivot_table(index = 'useid',values = ['time','amount','numid'],aggfunc = {'time':'max',  // 最近消费时间'amount':'mean','numid':'count',})
rfm.head()


进一步需要插入截至日期,同时计算客户最后一次购买时间到截至日期的时间字段,为方便后续采用K-Means方法处理把时间进一步转换为int类型。

import datetime
// 假定截至日期为2019年9月28号
rfm['endtime'] = 20100928
rfm.endtime = pd.to_datetime(rfm.endtime,format = '%Y%m%d')
// 添加一个 R_score字段
rfm['R_score']= pd.DataFrame(pd.to_datetime(rfm.endtime) - pd.to_datetime(rfm.time))
// 把日期days 转换为以int类型的天数
rfm['R_score']= rfm['R_score'].astype(str).apply(lambda x:x.replace(' days 00:00:00.000000000','')).astype(int)
rfm.head()


去掉没用的数据,同时命名重新命名’amount’:‘M_score’和’numid’:‘F_scory’,命名不是必要步骤,在这里我为了更加清楚的表示,采用了重命名。

// 需要的字段重新命名,不需要的进行drop丢弃处理
rfm = rfm.rename(columns={'amount':'M_score','numid':'F_scory'})
rfm = rfm.drop(columns=['time', 'endtime'])
print('共有记录数',len(rfm))
rfm.head()


至此数据预处理部分结束

标准化RMF模型特征

由于聚类分析不需要划分数据集为训练集和测试集,标准化可以使用sklearn的preprocessing 模块,也可以使用自定以函数的方法实现,在这里直接采用sklearn的模块进行处理。

from sklearn.preprocessing import StandardScaler
import numpy as np
data = StandardScaler().fit_transform(rfm)
np.savez('data.npz',data)
print('标准化后的三个特征为:\n',data[:5])

使用K-Mean方法进行客户分群

K-Means聚类分析是一种基于质心的划分方法,给聚类格式k,以及包含n个数据对象的数据库,输入满足误差平方和最小标准的k个聚类,具体计算步骤不在这里进行阐述,有兴趣的同学可以搜一下相关的方法。
sklearn的cluster模块提供了KMeans函数来构建K-Means聚类模型,可以直接使用,算法收敛阀值采用默认0.0001 :

from sklearn.cluster import KMeans
import numpy as np
data = np.load('data.npz')['arr_0']
// 构建模型
k = 5
kmeans_model = KMeans(n_clusters = k ,n_jobs = 4,random_state = 123)
fit_kmeans = kmeans_model.fit(data)
kmeans_model.cluster_centers_ #查看聚类中心

kmeans_model.labels_ # 查看样本的类别标签

// 统计不同类别样本的数量
rl= pd.Series(kmeans_model.labels_).value_counts()
print('最终每个类别的数目:\n',rl)


基于RFM模型,使用Excel

使用Excel进行RFM模型的建立十分方便快捷在这里仅简单阐述一下分析思路和分析结果,详细参见链接:https://blog.csdn.net/a3881312/article/details/81200337。

生成数据透视表:

根据数据透视表进一步然后进行数据分析和展示,参见链接。


分析聚类结果

进一步分析模型特征值此处使用Excel进行数据的展示:
由于是R,F,M的顺序没有指定,在这里同data生成是的顺序相同:

使用雷达图可以更方便的看客户群在三个特征值上的分布:

综合业务分析,通过比较各个特征在群体见的大小对某一群体进行评价分析。如客户群1在R的特征上最大,在M,F上则很小,可以说R在客户群体一中是优势特征。。从而总结出每个群体的特征:
注:加粗字体表示最大值,下划线表示次最大值

根据以上特征分析图表,说明不同用户类别表现特征显著不同。基于特征描述,本案例定义了5个等级的客户类别:重要保持客户,重要发展客,重要挽留客户,一般客户和低价值客户。

  • 其中,重要发展客户,重要保持客户,重要挽留客户这三类重要的客户可分别归入用户生命管理周期管理的发展期,稳定期,和衰退期三个阶段。

根据每种用户类型特征,对各类客户群体进行排名,其结果如下图所示,针对不同类型的客户群体提供不同的产品和服务,提升重要发展客户的价值,稳定和延长重要保持客户的高消费水平,防范重要挽留客户的流失并积极进行关系回复。

模型的应用

根据各个客户群体进行特征分析,采用不同的数据营销手段和策略,为企业创造更大的利益。具体需根据世纪业务情况,采取有效手段进行,

总结

本模型采用历史数据进行建模,数据分析窗口也在变化。本次是在练习数据的基础上进行的,进行了数据清洗,数据建模,数据分析,数据可视化等步骤。较为详细的阐述了数据分析中针对RFM模型采用K-Means算法结构进行分析主要使用语言为python,在最后数据可视画使用Excel为工具,文章中也简单提示了用excel进行RFM模型的数据分析,最后模型应用本文未进行过多的阐述需要根据实际业务进行调整。由于在实际应用中情况可能更加复杂,在建模和应用的过程中还至于进一步优化,如有不足之处还望见谅。

基于RFM模型的用户价值的数据分析报告相关推荐

  1. 基于RFM模型的电商零售数据分析

    数据集介绍 E-Commerce Data Actual transactions from UK retailer 数据集地址(kaggle) https://download.csdn.net/d ...

  2. 基于RFM模型的用户价值分析——PythonTableau

    一.模型介绍 RFM模型是衡量客户价值和客户创利能力的重要工具和手段. R(Recency)--最近日期或最新日期:即客户最近一次消费日期距分析日的时间间隔.最近一次消费的时间间隔是维系顾客的一个重要 ...

  3. 实战16:RFM实战:基于使用RFM+R模型量化用户价值进行金融产品精准营销

    任务描述:本教程对LendingClub平台贷款数据进行分析并搭建用户画像,学习后可帮助学员在银行,消费金融,现金贷等场景中,实现金融场景下用户画像系统的搭建.多层级标签体系的设计.其中主要由画像体系 ...

  4. sql_数据分析之电商人货场模型分析之指标体系拆解+代码实操 (用户留存、RFM模型、 用户路径分析等)

    本文最早发表在csdn时间为:2021-09-03 本案例数据链接: 点我下载 数据来源为工作中接触到的某公司后台数据,在完成工作相关分析后,本人对该部分数据虚拟重建用以复盘整理 大家好,我是Capt ...

  5. rfm模型python_数据分析实战——用RFM模型分析客户价值

    数据分析实战--用RFM模型分析客户价值 阿雷边学边教python数据分析第4期--数据可视化 一.介绍什么是RFM模型和作用 1.什么是RFM模型 RFM模型是衡量客户价值的一种工具,该模型通过客户 ...

  6. 电商用户价值分析——基于RFM模型、KMeans聚类

    电商用户价值分析--基于RFM模型.KMeans聚类 一.背景 二.RFM模型.KMeans聚类 三.分析框架 四.具体分析 1. 导入所需的库 2. 导入数据 3. 数据清洗 4. 数据分析 4.1 ...

  7. 房地产价值大数据分析报告赋能拍卖公司2.0

    异地房地产估价难?看看拍卖公司是怎么做的! 我叫杨如意,是天津某拍卖行的创始人.虽然我的名字叫如意,可是我的人生似乎不是那么如意.初始,我创建这所拍卖行是因为自己和身边朋友的手中有一些古玩字画.由于量 ...

  8. each 数据获取attr_Python数据分析 — 基于RFM的精细化用户分层

    RFM模型是衡量客户价值和客户创利能力的重要工具和手段.在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到的.该机械模型通过一个客户的近期购买行为.购买的总体频率以及花了多少钱3项指标 ...

  9. 基于RFM模型对借贷App用户分层分析案例

    一.目的 1.根据还款未复贷老户的借贷数据,对老户进行群体分类: 2.对不同的客户群体进行特征分析,以便于定向营销. 二.分析过程 1.分析思路 数据包含了2018年4月13日至2020年4月9日期间 ...

  10. RFM模型(用户分析)

    模型定义 RFM模型是衡量客户价值和客户创利能力的重要工具和手段.在众多的客户关系管理(CRM)的分析模式中,RFM模型是被广泛提到的.该机械模型通过一个客户的近期购买行为.购买的总体频率以及花了多少 ...

最新文章

  1. 线程间通信共享变量和queue
  2. 开源ImageFilter库For IOS源码发布
  3. hdu 3395(费用流,二分图的最大权匹配)
  4. InnoDB的行锁和表锁
  5. Python之Time模块
  6. android shell用户界面,shell界面下安装和卸载Android应用程序(apk包)
  7. jdbc操作mysql数据库_JDBC操作MySQL数据库(一)
  8. JQuery元素操小结
  9. Netty RPC Demo 实现
  10. 全国所有机场 sql表 (截至2021.1.25)绝对最全!!
  11. 1.3 n-gram平滑算法:Good-Turning、拉普拉斯平滑
  12. 英特尔cpu发布时间表_英特尔公司宣布第九代桌面CPU发售时间:i9 9900K将于10月19日正式发售!...
  13. git使用——15.搭建自己的gitlab服务器来存放我们的git项目
  14. 高性能Web架构设计方案
  15. xshell 批量创建.xsh会话文件
  16. 【Java获取国家法定节假日三种工具类其一】
  17. tensorflow2.0(简介)
  18. net core mysql开源框架_.NetCore开源集成框架
  19. 特殊儿童领间最灿烂的一缕红——我们入队了
  20. MySQL登录、访问、退出操作

热门文章

  1. java excel 2007兼容包_office2007兼容包
  2. Download Software Top 10
  3. csol永恒python怎样施展技能_pycharm辅助学习使用debug功能
  4. STKX组件技术在星地链路中的仿真模式研究
  5. mysql 如何去掉毫秒_MySQL 关于毫秒的处理-阿里云开发者社区
  6. PDF阅读器开发商福昕曝出数据泄露事件,涉及用户帐户密码
  7. 工程测量(地形图测量)
  8. 宾得k5ii_K5--K5II---K5IIs,该选哪个?(喜欢宾得机的摄友)各抒己见。
  9. 语音增强二,麦克风阵列
  10. 阿蛮歌霸未能成功访问服务器,阿蛮歌霸KTV点歌软件提示“歌库数据库连接不正常”的解决方法...