一文速览-Python构建用户是否为常驻用户的RFM判别模型

简介: 一文速览-Python构建用户是否为常驻用户的RFM判别模型

前言


个人认为该模型可以运用到很多场合不单单是进行普通的用户挖掘。而且可以举一反三形成另一维度特征用来标记用户。也是一个经常用于用户购买行为预测的重要特征之一。通过该篇文章能够知晓如何根据这一个模型反建更多相对模型。


提示:以下是本篇文章正文内容,下面案例可供参考


一、RFM概念


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


根据美国数据库营销研究所Arthur Hughes的研究,客户数据库中有三个神奇的要素,这三个要素构成了数据分析最好的指标:


最近一次消费(Recency)

消费频率(Frequency)

消费金额(Monetary)

根据模型原理可知该模型主要由三个特征R、F、M所组成,当然要构建这个模型可以不用仅仅局限于这三个特征进行构建,我们可以根据不同数据特征筛选出最为需要的三个因素进行构建。


二、根据实例构建模型步骤


1.数据预览


此次数据选为2021年的全国大学生数据统计与分析竞赛B题数据。

(如有数据需要可联系笔者)


image.png

image.png


image.png


image.png


2.模型的构建

48f558d4cb6e454184a807162052fde4.png



在该模型中,我们选择用户的三个指标,即“login_diff_time”(登录间隔)、“login_time” (登录时长)、“login_day”(登录天数)依次承担这三个维度。设置这些特征表达了 一定的用户依赖度,提取该特征我们可以了解该用户对课程的粘粘度,判断是否为使用 该软件的核心用户。从而推测符合行为程度的用户对购买课程是否拥有强烈的意愿,加 大推送课程购买概率。


3.维度打分


对每个用户进行 R/F/M 三个维度的打分。R 维度打分的标准是:登录越频繁,则分 值越高。F 维度打分的标准是:登录的时长越多,则分值越高。M 维度打分的标准是: 登录的天数越多,则分值越高。


我们首先需要根据数据情况进行合理的划分区间:


首先看login_diff_time:


0d1a287ad2534c4183d461ae317ba50c.png

b1cfa46efc8d4162af51c7f30685c7fd.png

R打分 R值 含义
1 [30,135] 一个月以上四个月半之内未登陆
2 [10,30] 10天以上一个月之内未登陆
3 [3,10] 3天以上10天以下未登陆
4 [1,3] 1天以上3天以下未登陆
5 [0,1] 1天之内登陆过


'login_time'


d98ab420ef1a438299817539393d74da.png


223016592512491bbcea47ec915035bb.png



F打分 F值 含义
1 [0,1] 登陆时长不足一天
2 [1,10] 登陆时长超过一天不足十天
3 [10,30] 登陆时长超过十天不足一个月
4 [30,365] 登陆时长超过一个月不足一年
5 [365.--] 登陆时长超过一年



M值设为

‘login_day':


M打分 M值 含义
1 [0,1] 登陆天数不超过一天
2 [1,3] 登陆天数超过一天不足三天
3 [3,5] 登陆天数超过三天不足五天
4 [5,10] 登陆天数超过五天不足十天
5 [10,120] 登陆天数超过十天在三个月之内


由此我们可对各个用户进行 R/F/M 的打分。因为每个用户和平均值对比后的 R/F/M 只有 0 和 1 两个值。0 表示小于平均值,1 表示大于平均值。整体组合一共有 8 个分组。 所以我们设定 RFM 的分类标准,将用户分为了 2 × 2 × 2 = 8 种。


056f1f5681a049489b4e60e4b30145d9.png

4.模型建立


根据建立的 RFM 模型对每个用户进行分类。其输出结果预览如下图。

b46cc1b20d5440bb832471cdd762d4aa.png

2290715b2a5e4e13a3dd1a55708c8275.png



该模型能够快速地帮助企业对用户进行分类,进而对不同层次的用户制定不同的营 销策略。由下图可以直观地看出该企业存在的流失用户是比例最大的,而重要价值用户 占中等比例,一般用户占的比例最小。通过 RFM 方法,对用户的属性数据分析,对用 户进行了归类。在推送和营销时,可以更加精准化,不至于出现用户反感的情形。更重 要的是,对产品转化等商业价值也有很大的帮助 。

798116eda76d4c4f90381fb51c2158bd.png


三、具体代码以及思路

#我们可构建代表用户是否为常驻用户的RFM判别模型
#首先我们可知道
# R,Rencency,即每个客户有多少天没回购了,可以理解为最近一次购买到现在隔了多少天。
# F,Frequency,是每个客户购买了多少次。
# M,Monetary,代表每个客户平均购买金额,这里也可以是累计购买金额。
#那我们设置 R为用户登入间隔 F为登陆时长 M即为开课数
df2=df1[['user_id','login_diff_time','login_time','login_day']]
df2


d8d10e1db2284760bc88f58fd06d55b1.png

df2.columns=['用户','R','F','M']
df2

4f8664c5e7974a96a2ed1741a2648505.png


df2['R-SCORE']=pd.cut(df2['R'],bins=[-1,1,3,10,30,135],labels=[5,4,3,2,1],right=False).astype(float)
df2['F-SCORE']=pd.cut(df2['F'],bins=[-1,1,10,30,365,1481],labels=[1,2,3,4,5],right=False).astype(float)
df2['M-SCORE']=pd.cut(df2['M'],bins=[-1,1,3,5,10,120],labels=[1,2,3,4,5],right=False).astype(float)
df2.head()

c9f82901b4554e6c91a7a9cd783562df.png

df2['R是否大于均值']=(df2['R-SCORE']>df2['R-SCORE'].mean())*1
df2['F是否大于均值']=(df2['F-SCORE']>df2['F-SCORE'].mean())*1
df2['M是否大于均值']=(df2['M-SCORE']>df2['M-SCORE'].mean())*1
df2['人群数值']=(df2['R是否大于均值']*100)+(df2['F是否大于均值']*10)+(df2['M是否大于均值']*1)
df2.head()

742d084bf2da49fcb81d6ddffe9459df.png

#判断R/F/M是否大于均值
def transform_label(x):
    if x == 111:
        label='重要价值用户'
    elif x ==110:
        label='消费潜力用户'
    elif x == 101:
        label='频次深耕用户'
    elif x == 100:
        label='新用户'
    elif x == 11:
        label='重要价值流失用户'
    elif x == 10:
        label='一般用户'
    elif x == 1:
        label='消费潜力唤回用户用户'
    elif x == 0:
        label='流失用户'
    return label
count=df2['人群类型'].value_counts().reset_index()
count.columns = ['客户类型','人数']
count['人数占比'] = count['人数']/count['人数'].sum()

d6b0d71749ec4d7ea93317bb8d468569.png

目录
相关文章
|
9天前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品安全追溯系统的深度学习模型
使用Python实现智能食品安全追溯系统的深度学习模型
31 4
|
1天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费习惯分析的深度学习模型
使用Python实现智能食品消费习惯分析的深度学习模型
87 68
|
7天前
|
机器学习/深度学习 数据采集 安全
使用Python实现智能食品物流管理的深度学习模型
使用Python实现智能食品物流管理的深度学习模型
20 5
|
13天前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品价格预测的深度学习模型
使用Python实现智能食品价格预测的深度学习模型
42 6
|
11天前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
|
4天前
|
机器学习/深度学习 数据采集 供应链
使用Python实现深度学习模型:智能食品市场分析
使用Python实现深度学习模型:智能食品市场分析
21 0
|
10天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
|
16天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
16天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
16天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!