vlambda博客
学习文章列表

如何定义客户价值?聚类算法告诉你!


关注并将【PaaS平台那些事】设为星标
工作日早上07:45准时推送文章

周六早上10:00准时推送周刊


在信息时代企业营销的焦点已经从产品中心转变为客户中心,客户关系管理正成为企业的核心问题。

客户关系管理的关键是客户分类,通过客户分类可以区分低价值和高价值客户。企业针对不同价值的客户制定个性化服务方案,采取差异化营销策略,从而将有限的营销资源集中在高价值客户,实现企业利润最大化。

准确的客户分类结果是企业优化营销资源分配的重要依据,其越来越成为客户关系管理中亟待解决的关键问题之一。

RFM模型是客户价值分析中一个经典的模型,是通过最近消费时间间隔(Recency)、消费频次(Frequency)和消费金额(Monetary)3个指标进行客户细分。

本文我们介绍通过此3个指标作为特征,以K-Means算法进行聚类分析,细分出高价值客户、重点保持客户、重要发展客户、一般维持客户、低价值客户和流失客户六类客户群。


如何定义客户价值?聚类算法告诉你!


1、数据预处理

如何定义客户价值?聚类算法告诉你!


我们使用销售订单表和销售订单财务信息表中的数据进行客户价值分析。接入数据后,首先需要对数据进行去重、缺失值处理和异常值处理。


数据去重

通过数据表的主键进行去重。

缺失值处理

由于存在字段缺失的行在数据表中占比极低,故对字段缺失行直接剔除。

异常值处理

通过单据状态和字段数据类型不一致的异常行采取剔除操作。


完成数据预处理后,则可进行数据集的特征提取和标准化过程。


2、特征工程

如何定义客户价值?聚类算法告诉你!


Step1

提取特征


通过客户ID关联销售订单表和销售订单财务信息表,计算窗口期内客户的最近消费时间间隔(Recency)、消费频次(Frequency)和消费金额(Monetary)。

数据集(dataset):

R: 最近消费时间间隔

F: 消费频次

M: 消费金额

如下图所示,通过销售定单数据提取1536个客户的R、F、M三个特征,用于后面的聚类计算。


如何定义客户价值?聚类算法告诉你!


数据描述(dataset.describe()):

用于生成描述性统计数据,统计数据集的集中趋势,分散和行列的分布情况。主要包括以下指标:


count:数据集行数           mean:均值

std:标准差                     50%:中位数

min:最小值                    max:最大值

25%:下四分位数              75%:上四分位数


如何定义客户价值?聚类算法告诉你!


Step2

标准化


由于R、F、M三个特征的数量级差别巨大,需要平衡各特征在模型训练中的贡献度,故需要对特征数据进行标准化处理。

标准化处理后,会得到均值为0,标准差为1的服从正态分布的数据。标准化公式如下:


如何定义客户价值?聚类算法告诉你!

脚本:


from sklearn.preprocessing import StandardScaler
features = dataset.columns
ss = StandardScaler()
dataset_ss = ss.fit_transform(dataset)
dataset_ss = pd.DataFrame(dataset_ss,columns=features)


应用上述标准化公式后,特征数据集如下图所示。查看数据描述可以看到三个特征的均值都为0,标准差都为1,处于同一量纲。


标准化后的数据集(dataset_ss)如下:

如何定义客户价值?聚类算法告诉你!


数据描述(dataset_ss.describe())如下:

如何定义客户价值?聚类算法告诉你!


3、模型训练及预测

如何定义客户价值?聚类算法告诉你!


K-Means算法是被一种应用广泛的无监督学习的聚类算法,能够按照样本之间的距离大小,将样本集划分为K个类簇,并且使得簇内的数据点尽量紧密,簇间距离尽量大。

脚本:


(1) 模型训练
from sklearn.cluster import KMeans
n_clusters = 6
km = KMeans(n_clusters=n_clusters,verbose=1)
km.fit(dataset_ss)

运行效果

如何定义客户价值?聚类算法告诉你!


(2)类簇标签


km.labels_




 运行效果:


如何定义客户价值?聚类算法告诉你!


(3)聚类中心

km.cluster_centers_


运行效果
如何定义客户价值?聚类算法告诉你!


(4)反标准化后的聚类中心

   
     
     
   
cluster_centers = round(pd.DataFrame(ss.inverse_transform(km.cluster_centers_),
                                     columns=features),  2)
cluster_centers
运行效果

如何定义客户价值?聚类算法告诉你!


聚类结果的可视化:

如何定义客户价值?聚类算法告诉你!

聚类结果可视化


4、分析与决策

如何定义客户价值?聚类算法告诉你!


将聚类结果通过雷达图可视化分析,分析类簇之间指标的差异,给归属于不同类簇的客户打上标签,细分出高价值客户、重点保持客户、重要发展客户、一般维持客户、低价值客户和流失客户六类客户群。


如何定义客户价值?聚类算法告诉你!

类簇特征雷达图


如何定义客户价值?聚类算法告诉你!

类簇特征分析表


对6个类簇的R、F、M值分析后所的到的6类客户群如下表所示,其中高价值客户3个,重要保持客户11个,重要发展客户42个,一般维持客户609个。



在星空-供应链领域,已上线了【客户价值分析】产品,通过RFM模型来分析企业客户的购买行为、购买频率、购买金额,帮助企业识别不同类别的客户:重要价值客户、一般价值客户、流失客户等,以便制定和落实精准的客户经验策略。 

具体业务应用详细说明及开通介绍,详见以下链接:

https://vip.kingdee.com/article/139023679869921536

https://vip.kingdee.com/article/160746458705020928


#往期推荐#

#  

#  

 

#  


PaaS平台那些事
分享PaaS平台的新功能、新特性和开发小技巧等,做开发者的知心朋友
135篇原创内容
Official Account


喜欢就奖励小编一个“赞” 和  “在看”呗~