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

在信息时代企业营销的焦点已经从产品中心转变为客户中心,客户关系管理正成为企业的核心问题。
客户关系管理的关键是客户分类,通过客户分类可以区分低价值和高价值客户。企业针对不同价值的客户制定个性化服务方案,采取差异化营销策略,从而将有限的营销资源集中在高价值客户,实现企业利润最大化。
准确的客户分类结果是企业优化营销资源分配的重要依据,其越来越成为客户关系管理中亟待解决的关键问题之一。
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)如下:

数据
如何定义客户价值?聚类算法告诉你!
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



