使用K-means算法进行客户价值分析
聚类可以从消费者中区分出不同的消费群体,并且概括出每一类消费者的消费模式或消费习惯,其中,K-Means算法是最为经典的基于划分的聚类方法。识别客户价值应用最广泛的模型是RFM模型,根据RFM模型,本案例中客户价值分析的关键特征,如下表所示。
特征名称 含义
R 客户最近一次消费距观测窗口结束的天数。
F 客户在观测窗口内总消费次数。
M 客户在观测窗口内总消费金额。
使用K-means算法进行客户价值分析,如下代码所示。
# 绘图
fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(111, polar=True)
sam = ['r','g','b']
lstype = ['-','--','-.']
lab = []
for i in range(len(kmeans_model.cluster_centers_)):
values = kmeans_model.cluster_centers_[i]
feature = ['R','F','M']
values = np.concatenate((values, [values[0]]))
#绘制折线图
ax.plot(angles, values, sam[i], linestyle=lstype[i], linewidth=2,markersize=10)
ax.fill(angles, values, alpha=0.5) # 填充颜色
ax.set_thetagrids(angles * 180 / np.pi, feature, fontsize=15) # 添加每个特征的标签
plt.title('客户群特征分布图') # 添加标题
ax.grid(True)
lab.append('客户群' + str(i+1))
plt.legend(lab)
plt.show()
plt.close
由上图可知,客户群2的F、M特征值最大,R特征值最小;客户群1的F、M、R特征值较小;客户群3的R特征值最大,F、M特征值最小。每个客户群的都有显著不同的表现特征,基于该特征描述,本案例定义3个等级的客户类别:重要保持客户、一般价值客户、低价值客户。客户群分类排序结果如下表所示。
客户群 排名 排名含义
客户群1 2 一般价值客户
客户群2 1 重要保持客户
客户群3 3 低价值客户
通过上代码和上表可以看出,每个客户群的都有显著不同的表现特征,基于该特征描述,本案例定义3个等级的客户类别:重要保持客户、一般价值客户、低价值客户。每个客户类别的特征如下。
(1) 重要保持客户。这类客户用餐的次数(F)和用餐总花费(M)较高,且最近在餐厅消费时间长度(R)低。他们是餐饮企业的高价值客户,是最为理想的客户类型,对企业的贡献最大,但是所占比例却最小。对这类客户,餐饮企业可以制定一对一的服务,以提高这类客户的忠诚度与满意度,尽可能延长这类客户的高水平消费。
(2) 一般价值客户。这类客户用餐的次数(F)和用餐总花费(M)较低,且最近在餐厅消费时间长度(R)较低。他们是一般价值客户,虽然当前价值并不是特别高,但却有较大的发展潜力。餐饮企业可以不定期的制定相应的营销策略,刺激这类客户的消费,加强这类客户的满意度。
(3) 低价值客户。这类客户用餐的次数(F)和用餐总花费(M)较低,且最近在餐厅消费时间长度(R)较高。他们是餐饮企业的低价值客户,可能是某一次经过顺便消费的,也可能是因为刚开业时有折扣所以才来本店消费,之后来消费的概率比较小。客户群分类排序结果如下表所示。