客户分类可以对客户的消费行为进行分析,也可以对顾客的消费心理进行分析。医院可以针对不同行为模式的客户提供不同的产品内容,针对不同消费心理的客户提供不同的促销手段等。客户分类也是其他客户分析的基础,在分类后的数据中进行挖掘更有针对性,可以得到更有意义的结果。
k均值聚类算法是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
一、数据提取
根据RFM模型提供的思路,我们将提取三个维度的数据:“最近一次消费”、“消费频率”、“消费金额”。
R(Recency)最近一次消费:客户最近一次交易时间的间隔天数。R值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。
F(Frequency)消费频率:客户在最近一段时间内交易的次数。F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
M(Monetary)消费金额:客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。
根据以上思路提取的数据如下:
二、建立模型
由于k均值聚类算法需要提供k值,也就是聚类的个数。因此我们在建立模型之前必须先确定什么样的k值才是最适合的。下面将引入肘部法来判断k值。
肘部法则的计算原理是成本函数,成本函数是类别畸变程度之和,每个类的畸变程度等于每个变量点到其类别中心的位置距离平方和,若类内部的成员彼此间越紧凑则类的畸变程度越小,反之,若类内部的成员彼此间越分散则类的畸变程度越大。在选择类别数量上,肘部法则会把不同值的成本函数值画出来。随着值的增大,平均畸变程度会减小;每个类包含的样本数会减少,于是样本离其重心会更近。但是,随着值继续增大,平均畸变程度的改善效果会不断减低。值增大过程中,畸变程度的改善效果下降幅度最大的位置对应的值就是肘部。
以下我们使用Python来实现肘部法:
运行代码得到以下结果:
可见在4个分类处出现了肘部, 故对于这个数据集的聚类而言,最佳聚类数应该为4。
开始建立kmaens模型:
为了验证模型的准确度,我们利用轮廓系数法进行判断:当数值越接近1,则说明聚类结果越合理。代码如下:
运算结果为:0.7895694986225192
轮廓系数得分接近1,所以聚类效果还算满意。
三、解释模型
我们对聚类后的结果进行一次分类汇总得到以下结果:
我们需要根据每一类中三个指标的平均值,来对这4种分类做一个解释:
其中“0”类距离天数的均值最长,可见这类顾客已经很久未来院消费,并且消费金额偏低,消费次数少。因此这类顾客可将其定型为流失顾客。
“1”类顾客在消费金额和消费次数上对医院贡献较大,但172.18天的消费间隔天数过长,有流失或者沉睡的风险。因此这类很久未来院消费的顾客,需要及时唤醒,以免流失。故应该定型为唤醒顾客。
通过对“2”类顾客三项指标的判断,这类顾客应属于一般顾客,虽有平均7.4次的消费次数,但消费金额不高,且消费间隔天数过长。属于还未对医院建立很高忠诚度的顾客。
“3”类的顾客的三项指标为4个分类里最高值,85.82天的消费间隔天数也符合医院项目的平均治疗周期(90天),57次的消费次数为医院带来了667556.87的收入。因此这类顾客应定型为价值客户。
最终我们将医院客户分为:流失顾客、一般顾客、唤醒顾客、价值客户。