不写代码,教你用聚类算法,刻画一个升级版的RFM模型...

正月十五已过,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

感兴趣可电脑上下载:http://www.finebi.com/?utm_source=media&utm_medium=toutiao

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的记录。由于这块的数据所占比重较小,故采用丢弃的处理办法。

  1. 删除空值
  2. 仅保留票价不为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模型,利用无需编程即可实现数据加工的功能,令人耳目一新的拖拽式的方式,实现了强大的数据分析功能。最后通过聚类的结果,选出客户价值排行,并且制定相应策略,为企业节约成本,提升效率保驾护航。

举报
评论 0