rfm模型python_使用python实现RFM模型
今天用Python做了一个RFM模型分析,数据来源是Kaggle上的一个专门用于RFM模型学习的数据集,数据链接我会在文章附上。
日常呼唤一下,喜欢点赞呀
正文开始:
模型介绍:RFM模型根据客户活跃程度和交易金额的贡献,进行客户价值细分的一种方法。R(Recency)——最近一次交易时间间隔。基于最近一次交易日期计算的得分,距离当前日期越近,得分越高。如5分制。反映客户交易活跃度。
F(Frequency)——客户在最近一段时间内交易次数。基于交易频率计算的得分,交易频率越高,得分越高。如5分制。反映客户交易活跃度。
M(Monetray)——客户最近一段时间内交易金额。基于交易金额计算的得分,交易金额越高,得分越高。如5分制。反映客户价值。
数据:
在开始数据分析之前,先把用excel的查找空值功能,查找空值,进行数据预处理
做好知识准备+数据准备,开始数据分析!!!!
把要用的库都先引用上
import os
import numpy as np
import pandas as pd
import seaborn as sns
import datetime as dt
import matplotlib.pyplot as plt
输出数据前5条展示一下:
df = pd.read_csv('Retail_Data_Transactions.csv')
df.head()
需要查看时间列是否为时间格式,不是的话要进行修改:
df.dtypes
df["trans_date"] = pd.to_datetime(df["trans_date"])
df.dtypes
开始构建3个指标R,F,M,R指标需要先计算一下每条数据举例今天的时间差
print(df['trans_date'].min(), df['trans_date'].max())
R_today = dt.datetime(2015,3,17)
df['R_diff'] = (R_today - df['trans_date']).dt.days # 计算时间差
df.head()
再计算每个用户最近一次购买行为的时间差作为R指标的基础
R = df.groupby(by=['customer_id'])['R_diff'] #客户ID进行分组
R = R.agg([('R_diff','min')]) #求每个客户最小时间差
R.head()
构建F、M指标,F为客户交易频率,M为总交易金额
F = df.groupby(by=['customer_id'])['customer_id'].agg([('F_fre','count')])
M = df.groupby(by=['customer_id'])['tran_amount'].agg([('M_sum',sum)])
RFM = R.join(F).join(M)
RFM.head()
接下来需要构建评分体系,按照各指标的分位数进行1-4的打分。需要先查看一下分位数情况,手动进行划分
RFM.describe()
然后构建RFM总体评分指标,这个就需要大家更具自己的数据富于不同的权重了,我是R给了0.3,F给了0.4,M给了0.3
RFM["R_score"]=np.where(RFM.R_diff<=23,4,np.where(RFM.R_diff<=54,3,np.where(RFM.R_diff<=112,2,1)))
RFM["F_score"]=np.where(RFM.F_fre<=14,1,np.where(RFM.F_fre<=18,2,np.where(RFM.F_fre<=22,3,4)))
RFM["M_score"]=np.where(RFM.M_sum<=781,1,np.where(RFM.M_sum<=1227,2,np.where(RFM.M_sum<=1520,3,4)))
RFM.head()
RFM["RFM"] = RFM["R_score"]*0.3+RFM["F_score"]*0.4+RFM["M_score"]*0.3
RFM.head()
最后就是根据RFM得分,判断客户类别啦,一共8个客户类别
bins = RFM.RFM.quantile(q=np.linspace(0,1,num=9),interpolation='nearest')
labels = ['潜在客户','一般发展客户','一般保持客户','一般价值客户','重要挽留客户','重要发展客户','重要保持客户','高价值客户']
RFM['types'] = pd.cut(RFM.RFM, bins=bins, labels=labels, include_lowest=True)
RFM.head()
看一下我们这个数据集各个类别的分布情况吧,还挺平均的
plt.figure(figsize=(20,5))
sns.countplot(data=RFM,x="types")
plt.show()
大功告成!!!
期待大家点评,有什么想实现的其他数据分析模型告诉我呀,我来准备准备~
rfm模型python_使用python实现RFM模型相关推荐
- rfm模型python_数据分析实战——用RFM模型分析客户价值
数据分析实战--用RFM模型分析客户价值 阿雷边学边教python数据分析第4期--数据可视化 一.介绍什么是RFM模型和作用 1.什么是RFM模型 RFM模型是衡量客户价值的一种工具,该模型通过客户 ...
- python knn模型_使用Python训练KNN模型并进行分类
K临近分类算法是数据挖掘中较为简单的一种分类方法,通过计算不同数据点间的距离对数据进行分类,并对新的数据进行分类预测.我们在之前的文章<K邻近(KNN)分类和预测算法的原理及实现>和< ...
- sklearn实现lda模型_使用python+sklearn实现模型复杂性的影响
本示例演示了模型复杂性是如何影响预测精度和计算性能的.数据集是用于回归(或者分类)的波士顿住房(Boston Housing)数据集(或者20 Newsgroups).对于每一类模型,我们通过选择相关 ...
- Python 生产者消费者模型
Python 生产者消费者模型 文章目录 Python 生产者消费者模型 生产者消费者模型介绍 生产者消费者模型实现 函数yield 方式 多进程方式 实现一. 实现二. 多线程方式 生产者消费者模型 ...
- Python金融风控模型案例实战大全
大家好,我是Toby老师,今天介绍 <Python金融风控模型案例实战大全>. 1.<Python金融风控模型案例实战大全>程覆盖多个核心知识点,包括风控建模全流程知识介绍,信 ...
- Python银行风控模型的建立 SVM 决策树 神经网络 三种模型比较
一.首先要感谢原作者的无私分享 原文网页链接: Python银行风控模型的建立_DG息的博客-CSDN博客_银行风控模型 首先感谢"Python银行风控模型的建立"()这位老师,他 ...
- python给用户打标签_用Python实现RFM模型——互联网产品用户分层必备技巧
1.前言 RFM模型即"R"--Recency(最近一次消费时间)."F"--Frequency(一段时间内消费频次)."M"--(一段时间 ...
- 【Python】RFM模型实现
[Python]RFM模型实现 1 RFM模型 RFM模型:根据用户历史行为数据,结合业务理解,实现用户分层分类,助力用户的精准营销,是衡量客户价值和客户创利能力的重要工具和手段 Recency 最近 ...
- 数据分析常用五个方法三个模型(逻辑分析、多维度拆解、对比分析、假设验证、相关性分析、RFM模型、漏斗分析模型、AARRR模型)
目录 一.逻辑树分析法 二.多维度拆解分析法 三.对比分析法 四.假设检验法/归因分析法 五. 相关性分析法 六. RFM分析模型 七. 漏斗分析模型 八. AARRR模型 一.逻辑树分析法 定义:将 ...
- 逻辑回归模型 python_机器学习-逻辑回归分析(Python)
编辑推荐: 本文首先介绍这两种方法的区别和联系,然后对分类方法中的逻辑回归进行较详细的说明(包括其基本原理及评估指标),最后结合案例介绍如何利用Python进行逻辑回归分析. 本文来自于csdn,由火 ...
最新文章
- G20国家科技竞争力大盘点,中国科研创新表现突出,人工智能变道超车
- termux安装python3失败_boot空间不足导致安装python3失败
- iphone7无服务_iphone7基带坏了怎么办,iphone7基带修复多少钱
- JAVA进制及进制之间的转换
- flink的savepoint实验-java
- Java NIO总结
- windows和Linux查看端口占用进程并关闭
- Elasticsearch 嵌套类型nested
- Python 之 变量的基本使用
- HTTP协议详细介绍~超详细
- 实用的base.css文件
- HTML5网页设计基础——拼图效果
- unity5.0安卓开发环境配置
- Android实现IOS轮效果(Android Studio)
- springboot+shrio简易登录登出和用户权限认证。
- 华为语音解锁设置_华为手机免费语音转文字功能如何开启?手把手教你如何设置,超赞...
- SystemUI架构分析学习
- 论文笔记:联邦学习——Federated Learning: Strategies for Improving Communication Efficiency
- iOS 浏览相册功能实现 —— HERO博客
- 观后感《没事别看哲学书!》