教你用聚类算法,刻画一个升级版的客户价值模型...
正月十五已过,2019的新年算彻底结束了。
聚会、抢红包、走亲访友…回家的日子总是喜悦的,但每年回家买票的忧愁总是让明媚的心情笼上一层阴霾。
火车票抢不到,大巴车耗时长,飞机票一定是大部分人不到万不得已的最后选择。毕竟在这个热门节日,机票的价格一定是贵到死。
经常买机票的朋友不知道有没有发现,机票的价格通常“阴晴不定”。3个月前是一个价格,2个月1个月1周前又是另一个价格;有时候白天和凌晨价格还大有来去,价格也时涨时跌。就我同事,过年前定好了高铁票,临走时看了一眼机票发现跌完比高铁票还便宜,果断退了买机票。更有甚者,不同账号登陆的价格还不一样…不懂的人认为水深,其实这些都是基于消费者数据的精细化营销。
RFM就是一种典型的对客户分类然后针对性营销的模型。他是由R(最近消费时间间隔)、F(消费频次)和M(消费总额)三个指标构成,通过该模型识别出高价值客户,但该模型并不完全适合所有行业。如航空行业,直接使用M指标并不能反映客户的真实价值,因为“长途低等舱”可能没有“短途高等舱”价值高,所以得根据实际行业灵活调整RFM模型的指标。
国内外航空公司最常用的是根据客户价值分析特色LRFMC模型,将客户聚类为重要保持客户,重要发展客户,重要挽留客户,一般客户,低价值客户,从而针对每种类别的客户制定对应的价格和服务。
本文就拿航空公司的数据为例,利用LRFMC模型,教大家介绍如何在实际工作中结合K-means聚类算法将客户价值进行分类,从而实现客户价值分析,进行精准的价格和服务设置。
关于聚类分析
事实上,聚类分析是一种非常常见的数据分析手段,它根据样本之间的距离或者说是相似性(亲疏性),把越相似、差异越小的样本聚成一类(簇),最后形成多个簇,使同一个簇内部的样本相似度高,不同簇之间差异性高。简单来说就是尽量把类似的样本聚在一起,不同的样本分开。
聚类分析算法很多,比较经典的有K-Means算法和层次聚类法。
数据分析工具选择
工欲善其事,必先利其器,我们做数据分析也是如此。Excel显然无法满足大数据量,聚类等相对复杂的数据分析的要求。因此在传统的数据分析中,常常使用Python编写代码进行数据清洗,数据转换,应用数据分析算法等等的操作。关于Python,同在数据分析领域的同学可能都不陌生,我们经常会使用Python提供的numpy、pandas、matplotlib等第三方库来对数据进行计算处理,同时最终生成所需要的可视化报告。
下图为使用Python进行聚类分析的部分代码:
是不是看起来就有些头疼?
本次的实战案例小编也自己使用Python编写代码实现了数据的清洗,处理,LRFMC模型的客户价值分析以及数据的可视化工作。但编写代码的难度较高不说,还要生成大量的中间数据文件,既费时又费力。考虑到不是所有想要进行数据分析的读者朋友都曾学习过Python,而且近几年,不少数据分析师已经开始用BI可视化工具来搭建这样的分析模型,因此本文将介绍大家使用BI工具——FineBI来进行LRFMC模型的搭建工作,因为他自带聚类模型。
关于FineBI
FineBI是一个能快速洽搭建各种业务模型的自助式分析平台,企业级商业分析工具,常用于各种业务的数据分析。图表美观、上手简单,搭建模型也不需要很专业的数据挖掘技能。可以帮助业务人员用系统化的方法来规划、执行、测量和优化一个完整的、高度个性化的客户需求管理计划。
在本案例中,使用FineBI的自助数据集功能就可以完整的完成数据清洗-字段设置-增加计算列-聚类分析的操作,甚至在FineBI中还可以调用已经写好的Python代码进行数据处理。
背景与挖掘目标
1. 背景
航空公司业务竞争激烈,从产品中心转化为客户中心
针对不同类型客户,进行精准的价格与服务设置,实现利润最大化
建立客户价值评估模型,进行客户分类,是解决问题的办法
2. 挖掘目标
借助航空公司客户数据,对客户进行分类
对不同的客户类别进行特征分析,比较不同类客户的客户价值
对不同价值的客户类别提供个性化服务,制定相应的价格策略
分析方法与过程
1.分析方法
首先,明确目标是客户价值识别
识别客户价值,应用最广泛的模型是三个指标(消费时间间隔(Recency),消费频率(Frequency),消费金额(Monetary))
以上指标简称RFM模型,作用是识别高价值的客户
消费金额,一般表示一段时间内,消费的总额。但是,因为航空票价收到距离和舱位等级的影响,同样金额对航空公司价值不同
因此,需要修改指标。选定变量,舱位因素=舱位所对应的折扣系数的平均值=C,距离因素=一定时间内积累的飞行里程=M
再考虑到,航空公司的会员系统,用户的入会时间长短能在一定程度上影响客户价值,所以增加指标L=入会时间长度=客户关系长度
总共确定了五个指标,消费时间间隔R,客户关系长度L,消费频率F,飞行里程M和折扣系数的平均值C
以上指标,作为航空公司识别客户价值指标,记为LRFMC模型
如果采用传统的RFM模型,如下图。它是依据各个属性的平均值进行划分,但是,细分的客户群太多,精准营销的成本太高。
综上,这次案例,采用聚类的办法进行识别客户价值,以LRFMC模型为基础
LRFMC模型指标含义:
(1) L:会员入会时间距观测窗口结束的月数。
(2) R:客户最近一次乘坐公司飞机距离观测窗口结束的月数。
(3) F:客户在观测窗口内乘坐公司飞机的次数。
(4) M:客户在观测窗口内累计的飞行里程碑。
(5) C:客户在观测窗口内乘坐仓位所对应的折扣系数的平均值。
本案例,总体流程如下图:
2.数据说明
标记指标为本次案例使用到的相关数据
其中总票价用来进行数据过滤,其余数据经过处理后作为聚类用例
3.数据预处理
3.1数据加载
在FineBI中新建航空LRFMC模型业务包用于此次分析,将准备好的.csv格式的原始数据上传至业务包内。
通过观察可以看出,原始数据中存在票价为空值、票价为0、折扣率最小值为0、飞行公里数大于0的记录。票价为空值的原因可能是乘客不存在登机记录,其他数据可能是乘客乘坐0折机票或积分兑换造成。
3.2数据清洗
通过数据的探索分析发现数据中存在票价为空值、票价为0、折扣率最小值为0、飞行公里数大于0的记录。由于这块的数据所占比重较小,故采用丢弃的处理办法。
删除空值
仅保留票价不为0,或折扣率和总飞行公里数同时为0的记录
3.3属性约束
航空公司的客户价值模型为LRFMC,即入会时间、距最近乘机月数、飞行次数,飞行里程,平均折扣。原始数据中与LRFMC指标相关的6个属性为 FFP_DATE、 LOAD_TIME、 FLIGHT_COUNT、 avg_discount、 SEG_KM_SUM、 LAST_TO_END
我们需要在以上6个属性的基础之上,提取出LRFMC指标
L = (LOAD_TIME - FFP_DATE )/ 30(会员入会时间距观测窗口结束的月数=观测窗口的结束时间-入会时间)
R = LAST_TO_END / 30(客户最近一次乘坐航班距观测窗口结束的月数)
F = FLIGHT_COUNT (观测窗口内的飞行次数)
M = SEG_KM_SUM (观测窗口内的总飞行里程)
C = avg_discount(平均折扣率)
3.4标准化处理
这时候我们已经完成了数据的过滤,计算,筛选操作,并得到了LRFMC模型的五个指标,但通过观察可以发现,这些数据之间的量级是不同的,差距甚至达到了千万倍的级别,量纲不同进行训练不能真实的反映数据的变动规律,想要建立建立正确的模型,还需要对数据进行标准化处理。因此FineBI数据挖掘的聚类功能已经内置了标准化计算的过程,无需额外设置即可完成标准化的处理。但是在这一步中,由于小编在之前已经写过了使用Python进行标准化的代码,这里正好尝试一下FineBI数据挖掘模块新增的直接调用Python代码的功能。
小编写的Python代码:
在我们的自主数据集中继续添加Python分析过程,将原代码中的输入输出由原来的excel文件改为FineBI中的数据流PY_INPUT和PY_OUTPUT即可。
标准化后的部分数据,可以看到指标之间已经在同一量级上。
至此我们已经完成了数据的预处理过程,下面就可以使用处理好的数据进行模型的构建了
4.构建模型及模型应用
4.1 客户聚类
在自助数据集中添加快速挖掘步骤,选取聚类,聚类指标全选CFMRL五个指标,聚类数填5,最大迭代次数使用默认的自动,距离函数使用默认的欧式距离。
新建一张仪表板,用来进行结果的查看
聚类结果如下表:
详细输出每一个客户所属类别,部分结果如下表。
4.2数据可视化
针对聚类结果,对各客户群进行特征的分析。
画出客户群体数目柱状图:
类似的,只需要在仪表板中新建组件,简单拖拽指标就可以使用FineBI完成一副可视化分析的dashboard啦。
4.3客户价值分析
将制作好的组件组合成一张仪表板进行分析:
我们重点关注的是L,F,M,从可视化dashboard中可以看到:
客户群1——12957人,重要保持客户:R(最近乘坐航班)低,F(乘坐次数)、C(平均折扣率高,舱位较高)、M(里程数)高。最优先的目标,进行差异化管理,提高满意度。
客户群0——13657人,重要发展客户:R(最近乘坐航班)低,F(乘坐次数)高,M(里程数)也不低,潜在价值客户。虽然说,当前价值不高,但是却有很大的发展潜力,促使这类客户在本公司消费和合作伙伴处消费。
客户群3——17392人,重要挽留客户:C(平均折扣率高,舱位较高)、F(乘坐次数)、M(里程数)较高,但是较长时间没有乘坐(R)小。增加与这类客户的互动,了解情况,采取一定手段,延长客户生命周期。
客户群4——7829人,一般与低价值客户:C、F、M、L都较低,但L高。他们可能是在公司打折促销时才会乘坐本公司航班。
客户群2——10464人,低价值客户:各方面的数据都是比较低的,属于一般或低价值用户
因此,针对这5类客户,航空公司可能采取的措施有:
会员的升级与保级(积分兑换原理相同)
会员可以分为,钻石,白金,金卡,银卡…
部分客户会因为不了解自身积分情况,错失升级机会,客户和航空公司都会有损失
在会员接近升级前,对高价值客户进行促销活动,刺激他们消费达到标准,双方获利
交叉销售
通过发行联名卡与非航空公司各做,使得企业在其他企业消费过程中获得本公司的积分,增强与本公司联系,提高忠诚度。
管理模式
企业要获得长期的丰厚利润,必须需要大量稳定的、高质量的客户。
维持老客户的成本远远低于新客户,保持优质客户是十分重要的。
精准营销中,也有成本因素,所以按照客户价值排名,进行优先的,特别的营销策略,是维持客户的关键。
小结
本文,结合航空公司客户价值案例的分析,介绍了一种数据挖掘算法-K-Means聚类算法的应用。通过FineBI这款自助大数据分析软件, 针对传统RFM模型的不足,结合案例进行改造,设定了五个指标的LRFMC模型,利用无需编程即可实现数据加工的功能,令人耳目一新的拖拽式的方式,实现了强大的数据分析功能。最后通过聚类的结果,选出客户价值排行,并且制定相应策略,为企业节约成本,提升效率保驾护航。