4步用Python搞定客户细分!
细分客户群是向客户提供个性化体验的关键。它可以提供关于客户行为、习惯与偏好的相关信息,帮助企业提供量身定制的营销活动从而改善客户体验。在业界人们往往把他吹嘘成提高收入的万能药,但实际上这个操作并不复杂,本文就将带你用简单的代码实现这一项目。
客户细分
我们需要创建什么?
通过使用消费交易数据,我们将会通过创建一个2 x 2的有价值属性的矩阵来得到4个客户群。每一个客户群将与其他群体有两大区别,即当前客户价值和潜在客户价值。
我们将使用什么技术?
我们将使用RFM模型从消费交易数据中创建所需变量。RFM模型代表:
• 最近消费(Recency):他们最近一次消费是什么时候?
• 消费频率(Frequency):他们多久消费一次、一次消费多久?
• 消费金额(Monetary):他们消费了多少?
该模型通常被用于在三个属性交叉处寻找高价值客户。但在本例中,我们将仅适用R(最近消费)与M(消费金额)来创建二维矩阵。
RFM模型
我们使用什么数据?
我们将使用消费数据样本——它也被称为“Global Superstore”。它通常被用于预测与时间序列分析。该数据集包含超过1500位不同客户4年的消费数据。既然我们做的是行为细分而非人口细分,我们将通过仅选择B2C领域的消费者以及美国区域的消费数据来去除潜在的人口偏差。
我们采取什么方法?
第0步:导入、筛选、清理、合并消费者层级数据。
第1步:为每一位消费者创建RFM变量。
第2步:为实现自动细分,我们将使用R与M变量的80%分位数;我们其实还可以用k均值
聚类(K-mean Clustering)或者利用商业背景知识来进行群体区分——比如,全球超市企业用户将活跃客户定义为最近一次订单在100天内的客户。
第3步:计算RM分数,并对客户进行排序。
第4步:可视化价值矩阵,并对关键指标进行进一步分析。
Python实现:
第0步:导入、筛选、清理、合并消费者层级数据。
import matplotlib as plt
import numpy as np
%matplotlib inline
import warnings
warnings.filterwarnings(‘ignore’)
import pandas as pd
url = ‘https://github.com/tristanga/Data-Analysis/raw/master/Global%20Superstore.xls’
df = pd.read_excel(url)
df = df[(df.Segment == ‘Consumer’) & (df.Country == ‘United States’)]
df.head()
第1步:为每一位消费者创建RFM变量。
df_RFM = df.groupby(‘Customer ID’).agg({‘Order Date’: lambda y: (df[‘Order Date’].max().date() – y.max().date()).days,
‘Order ID’: lambda y: len(y.unique()),
‘Sales’: lambda y: round(y.sum(),2)})
df_RFM.columns = [‘Recency’, ‘Frequency’, ‘Monetary’]
df_RFM = df_RFM.sort_values(‘Monetary’, ascending=False)
df_RFM.head()
第2步:使用R与M变量的80%分位数实现自动细分。
# We will use the 80% quantile for each feature
quantiles = df_RFM.quantile(q=[0.8])
print(quantiles)
df_RFM[‘R’]=np.where(df_RFM[‘Recency’]<=int(quantiles.Recency.values), 2, 1)
df_RFM[‘F’]=np.where(df_RFM[‘Frequency’]>=int(quantiles.Frequency.values), 2, 1)
df_RFM[‘M’]=np.where(df_RFM[‘Monetary’]>=int(quantiles.Monetary.values), 2, 1)
df_RFM.head()
第3步:计算RM分数,并对客户进行排序。
# To do the 2 x 2 matrix we will only use Recency & Monetary
df_RFM[‘RMScore’] = df_RFM.M.map(str)+df_RFM.R.map(str)
df_RFM = df_RFM.reset_index()
df_RFM_SUM = df_RFM.groupby(‘RMScore’).agg({‘Customer ID’: lambda y: len(y.unique()),
‘Frequency’: lambda y: round(y.mean(),0),
‘Recency’: lambda y: round(y.mean(),0),
‘R’: lambda y: round(y.mean(),0),
‘M’: lambda y: round(y.mean(),0),
‘Monetary’: lambda y: round(y.mean(),0)})
df_RFM_SUM = df_RFM_SUM.sort_values(‘RMScore’, ascending=False)
df_RFM_SUM.head()
第4步:可视化价值矩阵,并对关键指标进行进一步分析。
# 1) Average Monetary Matrix
df_RFM_M = df_RFM_SUM.pivot(index=’M’, columns=’R’, values=’Monetary’)
df_RFM_M= df_RFM_M.reset_index().sort_values([‘M’], ascending = False).set_index([‘M’])
df_RFM_M
# 2) Number of Customer Matrix
df_RFM_C = df_RFM_SUM.pivot(index=’M’, columns=’R’, values=’Customer ID’)
df_RFM_C= df_RFM_C.reset_index().sort_values([‘M’], ascending = False).set_index([‘M’])
df_RFM_C
# 3) Recency Matrix
最终矩阵(左上:流失客户;右上:明星客户;左下:次要客户;右下:新客户)
一些简单的销售与营销策略的启发性实例
“流失客户”分类中的客户人数不是很多,并且从他们身上得到的的平均收入高于“明星客户”分类。既然人数不多,从客户层面与业务部门合作对这些客户进行分析研究并制定一个留住他们的策略:给他们打电话或者直接见面,说不定就可以把他们挪到“明星客户”分类(例如,高参与度客户)。
“次要客户”分类的平均最近消费时间非常久远(超过1年,而参与度较高的客户平均来说该数据只有60至70天)。发起一些发放优惠券一类的营销活动可能能够带来新的消费,并帮助把该类客户挪至“新客户”分类(例如,高参与度客户)。
简单策略实例(上:打电话;下:电邮营销)
客户细分,是企业迭代的最重要的一步
End.
来源:数盟
鉴于此 诚心推荐给大家python实战!
另外文末可领取VIP视频(前100名免费赠送)。
【基础】0基础入门python,24小时有人快速解答问题;
【提高】40多个项目实战,老手可以从真实场景中学习python;
【直播】不定期直播项目案例讲解,手把手教你如何分析项目;
【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。
【人脉】收获一群志同道合的朋友,并且都是python从业者
【价格】本着布道思想,只需 69元 加入一个能保证学习效果的良心圈子。
【赠予】后续小马哥将开发python,0基础入门在线课程,免费送给圈友们,供巩固和系统化复习
最近入圈送大礼包:
1、2.7G、308份最新数据分析报告
2、40G 人工智能算法 视频课
3、python爬虫课,共14课时
加入方式,扫码付费即可
4步用Python搞定客户细分!相关推荐
- 三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQL2005版本)
三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 转载原文,并注明出处!虽无多少技术含量,毕竟是作者心血原创,希望理解. 转自 http://blog.csdn.net ...
- mysql降低数据库版本_三步10分钟搞定数据库版本的降迁 (将后台数据库SQL2008R2降为SQ...
三步10分钟搞定数据库版本的降迁 (将SQL2008R2降为SQL2005版本) 前思后想仍觉得实战数据库版本的降迁一文中的方式不仅老土而且低效,故有了下文三步搞定数据库从MSSQL2008R2 高版 ...
- 专业应用软件随身带,一招助您轻松搞定客户
电脑和电脑之间的价格差距从数千到数万不等,造成这种巨大差异的就是配置不同,一些专业的应用软件,如绘图软件.设计软件.视频剪辑软件等对电脑配置都是有要求的,公司为了工作的需要,都是配有专门的高配电脑. ...
- 50行Python搞定京东商品抢购
50行Python搞定京东商品抢购 之前写的一篇京东抢购商品传送门,由于京东账号登录图片验证码改为了极验验证码,一直在尝试怎么用请求来去破解,而不是selenium去模拟点击,但是技不如人搞不定... ...
- 成功解决wps文档的论文中插入图片时只显示一半图片(两步教程完美搞定!)
成功解决wps文档的论文中插入图片时只显示一半图片(两步教程完美搞定!) 目录 解决问题 解决思路 解决方法 解决问题 解决wps文档的论文中插入图片时只显示一半图片,如图所示, 解决
- B端产品经理的心得之如何搞定客户
做了几年的B端产品经理深刻感受到B端产品经理和C端产品的区别,现总结一些心得,希望对转型B端产品经理的人有些帮助. 首先B端产品经理不同于C端产品的一个重大的区别在于,B端产品在产品和用户之前多了一个 ...
- 多个PDF文件如何合并成一个?三步教你搞定
在日常学习生活中,如果你需要将多个文档整合为一个完整的文件,比如说多篇文章.多张图片.多个表格等等,这时候就需要将这些文档合并成一个PDF文件.如何将多个PDF文件如何合并成一个?三步教你搞定. 步骤 ...
- python 画虚线_宝宝爱看小猪佩奇,很简单,让我们用python搞定它
宝宝爱看小猪佩奇,很简单,让我们用python搞定它 现在很多宝宝喜欢看小猪佩奇,今天就教大家用python的海龟画图画一个乖巧萌萌的小猪佩奇,引导对编程产生浓浓 的兴趣. 画图前引导 1.让我们打开 ...
- 计算机一级b证书图片p,只需两步,分分钟搞定证件照(内附福利)
原标题:只需两步,分分钟搞定证件照(内附福利) 简历中要不要放证件照? 当然要! 怎么样才能让证件照成为求职过程中的加分项? 不浮夸,不造作! 证件照怎么拍? 不要998,小V教你在家就能自制最美证件 ...
- 用python画小猪佩奇动画片全集_宝宝爱看小猪佩奇,很简单,让我们用python搞定它...
宝宝爱看小猪佩奇,很简单,让我们用python搞定它 现在很多宝宝喜欢看小猪佩奇,今天就教大家用python的海龟画图画一个乖巧萌萌的小猪佩奇,引导对编程产生浓浓 的兴趣. 画图前引导 1.让我们打开 ...
最新文章
- OC基础-关于构造方法
- mysql 在存储过程出现的问题,记录一下
- 由Lucnene 对于预治疗的文字,全角半角转换器(可执行)
- 网络编程释疑之:同步,异步,阻塞,非阻塞
- FreeModbus TCP传输
- 实战演练:PostgreSQL在线扩容
- 人物结局 归德侯府_影视里的唐伯虎抱得美人归 历史上的他结局又是什么样呢?...
- php正则表达式修正符,深入解析PHP正则模式修正符
- EasyUI组件使用
- 走迷宫算法1(递归 非最短路径)
- iphone手机 ios系统 无法更新app 跳转到AppStore 显示 打开
- C语言_【学习笔记】二元一次方程的虚根
- 淘宝CRM是如何通过数据分析进行解决问题的
- 魔窗--H5网页唤醒APP
- 请编写一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
- 工控电脑服务器维修,2U机箱厂家分享:工控计算机电脑主板坏了如何维修?
- layui表头宽度和表格一致_layui表格如何把表头固定
- Rocket之环境搭建
- P1618 三连击(升级版)
- 可解释机器学习-shap value的使用