在商业分析中,我们经常会遇到以下问题:
不知道如何进行用户行为分析,对用户进行分类?
不知道哪些是重要价值客户,他们能带来什么,应该如何维护?
这时候就需要用到用户行为分析模型也就是我们通常所说的RFM模型了。小编今天就给大家分享一下RFM模型的构建以及应用,希望对大家商业分析有所帮助。
一、RFM模型简介
RFM模型,是根据客户活跃程度以及交易金额的贡献,对客户价值进行细分的一种方法,是客户关系管理中常应用到的一种操作模型。RFM模型从R、F、M、这3个维度来描述客户的价值,下面来具体解释一下R、F、M、这3个维度。
R:上一次消费 (Recency),客户上一次消费的时间,时间越是接近就表示该客户越有价值,对于提供的即时商品或是服务,这些客户是最有可能反应的。
F:消费频率 (Frequency),一段时间之内对产品的消费频次,也就是客户在限定的期间内的购买的次数。通常来说,客户消费频率越高,也就表示该客户忠诚度越高。
M:消费金额 (Monetary),用户的贡献价值,交易金额越高,该客户价值越高。帕雷托法则认为公司80%收入来自20%的客户。
二、RFM模型使用场景
RFM模型3个维度可根据实际需求变化,例如:
R:最近一次登录时间、最近一次发帖时间、最近一次投资时间、最近一次观看时间
F:浏览次数、发帖次数、评论次数
M:充值金额、打赏金额、评论数、点赞数
互动行为:最近一次互动时间、互动频次、用户的互动次数;
直播行为:最近一次观看直播时间、直播观看频次、观看直播累计时长;
内容行为:最近一次观看内容时间、观看内容频次、观看内容字数;
评论行为:最近一次评论时间、评论频次、累计评论次数等等等等。
三、RFM模型搭建
1.计算每个客户的RFM指标。可以利用CRM软件或者BI分析工具计算出每个客户的R,F,M
2.根据实际业务需求,确定具体的R,F,M的度量范围。
3.在RFM表格中添加细分的段号。
因为有R,F,M三个变量,所以我们需要使用三维坐标系来进行展示,X轴表示R,Y 轴表示F,Z轴表示M,坐标系的8个象限分别表示8类用户也就是:重要价值客户、重要保持客户、重要发展客户、重要挽留客户、一般价值客户、一般保持客户、一般发展客户、一般挽留客户,我们可以用如下图形进行描述:
四、简单示例
import pandas as pd import numpy as np import time #todo 读取数据 data = pd.read_csv('RFM_TRAD_FLOW.csv',encoding='gbk') # print(ret) # todo RFM------>R(最近一次消费) #todo 时间与字符串相互转换 data['time'] = data['time'].map(lambda x:time.mktime(time.strptime(x,'%d%b%y:%H:%M:%S'))) # print(data) # todo 分组 groupby_obj = data.groupby(['cumid','type']) # for name,data in groupby_obj: # print(name) # print(data) # todo 取值 R = groupby_obj[['time']].max() # print( # todo 转为透视表 r_trans = pd.pivot_table(R,index='cumid',columns='type',values='time') # print(data_trans) # todo 替换缺失值 有缺失值,替换成最远的值 r_trans[['Special_offer','returned_goods']] = r_trans[['Special_offer','returned_goods']].apply(lambda x:x.replace(np.nan,min(x)),axis = 0) # print(data_trans) r_trans['r_max'] = r_trans.apply(lambda x:sum(x),axis=1) # print(r_trans) # todo RFM------>F(消费频率) # 取值 F =groupby_obj[['transID']].count() # print(F) #转为透视表 f_trans = pd.pivot_table(F,index='cumid',columns='type',values='transID') # print(f_trans) #替换缺失值 f_trans[['Special_offer','returned_goods']]= f_trans[['Special_offer','returned_goods']].fillna(0) # print(f_trans) # f_trans['returned_goods'] = f_trans['returned_goods'].map(lambda x:-x) # print(f_trans) f_trans['f_total'] = f_trans.apply(lambda x:sum(x),axis=1) # print(f_trans) # todo RFM------>M(消费金额) # 取值 M =groupby_obj[['amount']].sum() # print(M) #转为透视表 m_trans = pd.pivot_table(M,index='cumid',columns='type',values='amount') # print(f_trans) #替换缺失值 m_trans[['Special_offer','returned_goods']]= m_trans[['Special_offer','returned_goods']].fillna(0) # print(f_trans) # m_trans['m_total'] = m_trans.apply(lambda x:sum(x),axis=1) # print(m_trans) # 合并 RFM=pd.concat([r_trans["r_max"],f_trans['f_total'],m_trans['m_total']],axis=1) print(RFM) r_score = pd.cut(RFM.r_max,3,labels=[0,1,2]) f_score = pd.cut(RFM.r_max,3,labels=[0,1,2]) m_score = pd.cut(RFM.r_max,3,labels=[0,1,2])
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
“最近复购率一直在下降,我们的营销力度不小啊,为什么用户还是走了?” “是不是广告投放的用户质量不高?还是我们的产品问题 ...
2025-02-21以下文章来源于数有道 ,作者数据星爷 SQL查询是数据分析工作的基础,也是CDA数据分析师一级的核心考点,人工智能时代,AI能为 ...
2025-02-19在当今这个数据驱动的时代,几乎每一个业务决策都离不开对数据的深入分析。而其中,指标波动归因分析更是至关重要的一环。无论是 ...
2025-02-18当数据开始说谎:那些年我们交过的学费 你有没有经历过这样的场景?熬了三个通宵做的数据分析报告,在会议上被老板一句"这数据靠 ...
2025-02-17数据分析作为一门跨学科领域,融合了统计学、编程、业务理解和可视化技术。无论是初学者还是有一定经验的从业者,系统化的学习路 ...
2025-02-17挖掘用户价值本质是让企业从‘赚今天的钱’升级为‘赚未来的钱’,同时让用户从‘被推销’变为‘被满足’。询问deepseek关于挖 ...
2025-02-17近来deepseek爆火,看看deepseek能否帮我们快速实现数据看板实时更新。 可以看出这对不知道怎么动手的小白来说是相当友好的, ...
2025-02-14一秒精通 Deepseek,不用找教程,不用买资料,更不用报一堆垃圾课程,所有这么去做的,都是舍近求远,因为你忽略了 deepseek 的 ...
2025-02-12自学 Python 的关键在于高效规划 + 实践驱动。以下是一份适合零基础快速入门的自学路径,结合资源推荐和实用技巧: 一、快速入 ...
2025-02-12“我们的利润率上升了,但销售额却没变,这是为什么?” “某个业务的市场份额在下滑,到底是什么原因?” “公司整体业绩 ...
2025-02-08活动介绍 为了助力大家在数据分析领域不断精进技能,我们特别举办本期打卡活动。在这里,你可以充分利用碎片化时间在线学习,让 ...
2025-02-071、闺女,醒醒,媒人把相亲的带来了。 我。。。。。。。 2、前年春节相亲相了40个, 去年春节相亲50个, 祖宗,今年你想相多少个 ...
2025-02-06在数据科学的广阔领域中,统计分析与数据挖掘占据了重要位置。尽管它们常常被视为有关联的领域,但两者在理论基础、目标、方法及 ...
2025-02-05在数据分析的世界里,“对比”是一种简单且有效的方法。这就像两个女孩子穿同一款式的衣服,效果不一样。 很多人都听过“货比三 ...
2025-02-05当我们只有非常少量的已标记数据,同时有大量未标记数据点时,可以使用半监督学习算法来处理。在sklearn中,基于图算法的半监督 ...
2025-02-05考虑一种棘手的情况:训练数据中大部分样本没有标签。此时,我们可以考虑使用半监督学习方法来处理。半监督学习能够利用这些额 ...
2025-02-04一、数学函数 1、取整 =INT(数字) 2、求余数 =MOD(除数,被除数) 3、四舍五入 =ROUND(数字,保留小数位数) 4、取绝对值 =AB ...
2025-02-03作者:CDA持证人 余治国 一般各平台出薪资报告,都会哀嚎遍野。举个例子,去年某招聘平台发布《中国女性职场现状调查报告》, ...
2025-02-02真正的数据分析大神是什么样的呢?有人认为他们能轻松驾驭各种分析工具,能够从海量数据中找到潜在关联,或者一眼识别报告中的数 ...
2025-02-01现今社会,“转行”似乎成无数职场人无法回避的话题。但行业就像座围城:外行人看光鲜,内行人看心酸。数据分析这个行业,近几年 ...
2025-01-31