首页 > 编程语言 >理论+实操(全文python代码)—— 01 详解RFM模型,让你知道你咋被大数据杀熟的。

理论+实操(全文python代码)—— 01 详解RFM模型,让你知道你咋被大数据杀熟的。

时间:2024-12-11 14:56:27浏览次数:5  
标签:RFM2 消费 return 01 python sign 客户 杀熟 RFM

大家好,我是摇光~,用大白话讲解所有你难懂的知识点

最近在和同事讨论大数据杀熟,其实就是网络上说的,你在网络上没有秘密~
很多企业都用上了数据分析,为客户归类,再对你们进行大数据杀熟!!

今天我们就来破解一下这个大数据杀熟的一种模型 —— RFM模型

接下来我将从理论到实操,来给大家讲解一下(全文使用python代码)


一、RFM 模型是什么?

我们还是用几个问题来展开。

① RFM模型是什么?

  • RFM模型是衡量客户价值和客户创造利益能力的一种工具。
    (其实就是利用客户给公司创造价值)2

② RFM三个字母是什么?
RFM三个字母代表三个指标,用来描述客户,以便对客户分层

  • R:Recency 表示最近 1 次消费时间间隔
  • F:Frequency 表示消费频率
  • M:Monetary 表示消费金额

③ RFM模型 实际运作原理是什么?
其实很简单,就是根据上面三个指标,将客户分成8中类型,针对不同类型进行不同的运营方针。“大数据杀熟”也就是针对你是属于 “熟” 的类型。那我们看看有哪八种吧。
在这里插入图片描述

上面的分类是官方的分类方法,你可以根据自己的业务情况进行分类,不一定要分成八类,六类、五类都可以。

从上面的解释,我们应该也就知道 RFM模型 适合哪些数据。

④ RFM模型 适合哪些数据?

  • RFM模型 主要适用于复购较多的业务场景,比如 快消、电商、美业、服务业等行业
  • 这些用户基本都满足 付费流程短,复购较多的特点

⑤ RFM模型 扩展

  • 其实根据业务所需,可以将指标进行替换,比如研究用户的活跃程度,指标可以换成最近一次登录时间、登录频次、活跃时长。以此也可以研究用户留存情况。

我们再来了解一下 RFM模型 的优缺点。

⑥ RFM模型的优缺点?

  • 优点:数据比较少,只需要 “人、时间、钱” 这三个,就可以算出指标;而且模型分层简单清晰
  • 缺点:RFM模型 只适用复购业务、或者重复进行的业务,不适合流程较长的业务。

二、数据准备

在上面我们了解到 RFM模型 是什么、优缺点、及适用场景。

接下来我们来用实战的方式来具体展示 RFM模型。

首先我们来准备数据,需要就数据就三列:客户号、消费日期、消费金额。

需要完整数据和代码,后台联系我哦~

在这里插入图片描述

三、实践

1、导入数据

import pandas as pd
df = pd.read_excel('RFM数据.xlsx')                # 导入数据

2、数据清洗

因为我们需要进行日期的加减,所以必须确保日期列为:datetime类型。

其他数据清洗,比如空值、错误值、偏差值,可以参考我以前的数据清洗文章进行操作。

df['消费日期'] = pd.to_datetime(df['消费日期'])     # 确保 消费日期 列为datetime类型

3、得到消费频率、消费金额、消费间隔数据

对数据清洗之后,就可以求 F、R、M的值,这里就对客户进行 group by 进行分类

再对金额求和、对日期求次数、对日期求最大值,这样就能求得 F、R、M值了。

# 这里对消费日期求 count 以此求得 消费频率(R)
# 这里对消费日期求 max 以此求得 最近一次消费时间
# 这里对消费金额求 sum 以此求得 消费金额(M)
RFM2 = df.groupby('客户号').agg({'消费日期':['count','max'],'消费金额':'sum'}).reset_index()

# 对字段重命名
RFM2.columns = ['客户号','F','R','M']

# 将现在的日期或统计日期 减去 最近一次消费时间,就可以得到消费间隔时间(F)
RFM2['R'] = (datetime.now()-RFM2['R']).dt.days

结果如下:
在这里插入图片描述

4、制定标准并得出 F、R、M值

这里我采用 R、F、M 的平均值制定标准,你们可以根据实际业务来进行判断 RFM 的高低值。

可以不按照他官方的制定,反正这个模型也就是一个思想,最终利用都是靠自己。

R_mid = RFM2['R'].mean()        # 最近一次消费时间间隔
F_mid = RFM2['F'].mean()        # 消费频率
M_mid = RFM2['M'].mean()        # 消费金额

# 对于 F、M 值,大于均值的属于 高,小于均值的属于 低
def sign_FM(values,mid):
    if(values) > mid:
        return 1
    else:
        return 0

# 对于 R 值,小于均值的属于 高,大于均值的属于 低
def sign_R(values,mid):
    if(values) < mid:
        return 1
    else:
        return 0

# 计算 R、F、M 对应的 高低 值
RFM2['R_sign'] = RFM2['R'].apply(lambda x:sign_R(x,R_mid))
RFM2['F_sign'] = RFM2['F'].apply(lambda x:sign_FM(x,F_mid))
RFM2['M_sign'] = RFM2['R'].apply(lambda x:sign_FM(x,M_mid))

结果如下:

在这里插入图片描述

5、根据标准判定客户类别

我们再根据前面算出来的 F、R、M值来判断 客户类别。

这种判断也是根据业务所需,进行判断,也可以再细分,也可以分大类。

def cust_category(R,F,M):
    if R == 1:
        if F == 1:
            if M == 1:
                return '重要价值客户'
            else:
                return '一般价值客户'
        else:
            if M == 1:
                return '重要发展客户'
            else:
                return '一般发展客户'
    else:
        if F == 1:
            if M == 1:
                return '重要保持客户'
            else:
                return '一般保持客户'
        else:
            if M == 1:
                return '重要挽留客户'
            else:
                return '一般挽留客户'

# 判断客户类别
RFM['Cust_Category'] = RFM.apply(lambda x:cust_category(x['R_sign'],x['F_sign'],x['M_sign']),axis = 1)

6、导出数据

最后导出数据

RFM.to_excel('结果数据.xlsx',index=False,sheet_name='结果')

结果如下:
在这里插入图片描述

四、制定策略

在这里插入图片描述

1、重要保持客户

这种客户就是消费金额和消费频次都很高,但是最近不咋消费;就是快要流失的土豪了。

营销策略:

  • 可以提供定制产品、优先服务,构建会员特权等,增加客户的忠诚度和满意度。
  • 定期与客户沟通、了解需求和反馈,调整自己的服务。

2、重要挽留客户

这种客户就是属于土豪买了几次,这种肯定就是需要去挽留的用户。

营销策略:

  • 分析客户流失的原因,如产品质量、服务态度、竞争对手影响等。
  • 通过电话、邮件、短信等方式主动联系客户,提供个性化的挽回方案,如优惠券、折扣、赠品等。
  • 还可以邀请客户参加产品体验活动或新品发布会,重新激发客户的购买兴趣。

3、一般保持客户、一般价值客户

这类客户消费频次较高,消费金额较低;这种就是捡便宜,有活动才会出现。

策略:

  • 发送优惠券、提醒客户参与促销活动等。
  • 鼓励客户增加购买金额,提供满额赠品或折扣等优惠措施。

4、一般发展客户

这类客户最近有过购买行为,但消费频次和消费金额都不高。这种就是看到你的产品还可以,就买了,如果有新品、优惠还是可以再次购买。

策略:

  • 通过邮件、短信等方式定期向客户推送产品信息、优惠活动等,提高客户的购买频次。
  • 提供个性化的推荐服务,如根据客户的历史购买记录推荐相似产品或新产品。
  • 鼓励客户参与社交媒体互动,提高客户的品牌认知度和忠诚度。

5、一般挽留客户

这类客户在最近一段时间内既没有频繁购买,也没有高额消费,且最后一次购买时间也较远。这种就是没钱、也对你的产品不感兴趣。

策略:

  • 可以提供特别优惠、新品试用、定制化服务等。
  • 如果挽回无望,就算了,转战新客户

五、大数据杀熟

从上面的理论和实战,大家肯定就知道自己在各大平台的地位了。

如果你近期对他公司产品有需求,并且购买频繁,那肯定就给你抬价了;而针对新用户,提供的优惠力度就是为了挽留你。

所以大家避免杀熟,可以先了解商品的性价比、多方比价;还可以可以多账号、多商家尝试,这样你就会成为一般价值客户,商家可能就会给你优惠刺激你消费,你就可以薅羊毛了~


以上就是完整的一套从理论到实践的 RFM模型 。

如果有什么不对的地方,欢迎指正~

还想了解什么大数据知识,可以私信我或者评论区告诉我~

我会竭尽全力用大白话讲解你们难懂的知识。

标签:RFM2,消费,return,01,python,sign,客户,杀熟,RFM
From: https://blog.csdn.net/qq_41877371/article/details/144368668

相关文章

  • python脚本转exe可执行格式
    首先写好一个脚本,如果是用的conda管理虚拟环境,需要在terminal中切换到特定的conda环境以运行Python脚本和进行打包的步骤,否则可能就会提示某些依赖不存在1.使用以下命令查看当前的conda环境列表:condaenvlist2.切换到目标环境假设你的环境名为wf,你......
  • 利用Python爬虫抓取消费者投诉数据:投诉内容与解决方案的抓取与分析
    一、引言随着电商和互联网平台的普及,消费者投诉平台逐渐成为消费者反馈产品和服务质量问题的重要渠道。消费者投诉数据不仅对企业改进产品和服务至关重要,同时也为消费者提供了更多的选择信息。通过抓取和分析这些投诉数据,我们可以了解消费者对产品或服务的具体问题、企业解决......
  • 【python脚本】python读取csv文件发送数据到kafka,然后再从kafka消费到mysql中
    前置条件pipinstallpandasconfluent-kafkamysql-connector-pythonpymysql读取csv文件到kafkaimportpandasaspdfromconfluent_kafkaimportProducerimportjsonimportcsv#配置Kafka生产者#topic名称csv_topickafka_topic='csv_topic'kafka_broker=......
  • #C01L07P03. C01.L07.for语句初识.for语句的使用说明
    1.循环变量的初值和终值应该是同一种类型,可以是整型、字符型、布尔型这些有序数据,但不能为实型。例如:循环变量是浮点型:for(floati=3.5;i<=8.5;i++) cout<<i;Copy上面程序中,i变量是浮点型,这种写法是错误的。还有这样的写法:for(inti=1.1;i<=9.9;i++) cout<<i;......
  • 【计算机毕设选题推荐】基于python的健身房管理系统的设计与实现 【附源码+讲解+部署
    ✍✍计算机毕设编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、小程序、大数据实战项目集⚡⚡文末获取......
  • 元音字母(NHOI2017初中)
    题目描述给你一个所有字符都是字母的字符串,请输出其中元音字母的个数。输入格式仅一行,包括一个字符串。输出格式输出一个整数,如题所述。输入数据1helloworld输出数据13数据规模对于100%的数据,字符串长度小于等于106。提示二十六个字母中的五个元音字母......
  • 基于PyTorch/MXNet的高效中文/英文场景文字检测Python3包设计源码-Z5yUlJls
    基于PyTorch/MXNet的高效中文/英文场景文字检测Python3包设计源码地址CnSTD是一个高效的中文/英文场景文字检测Python3包,基于PyTorch/MXNet框架开发。该项目包含106个文件,主要为Python源码文件(63个.py),以及多种格式的资源文件,包括22个JPG图片、6个PNG图片、3个Makefile、3个YAML配......
  • avifile.dll未被指定在Windows运行,代码0xc0000020或0xc000012f解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个avifile.dll文件(挑选合适的版本文件)把它放......
  • avifil32.dll未被指定在Windows运行,代码0xc0000020或0xc000012f解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个avifil32.dll文件(挑选合适的版本文件)把它......
  • azroleui.dll未被指定在Windows运行,代码0xc0000020或0xc000012f解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个azroleui.dll文件(挑选合适的版本文件)把它......