文章目录

  • 1. 数据挖掘的目标
  • 2. 分析过程与方法
    • 2.1 分析步骤与流程
    • 2.2 数据探索分析
      • 2.2.1 描述性统计
      • 2.2.2 分布分析
      • 2.2.3 相关性分析
    • 2.3 数据预处理
      • 2.3.1 数据清洗
      • 2.3.2 属性规约
        • (1)认识RFM模型
        • (2)RFM模型解读
        • (3)LRFMC模型
      • 2.3.3 数据变换
        • (1)属性构造
        • (2)数据标准化
    • 2.4 模型构建
      • 2.4.1 客户聚类
      • 2.4.2 客户价值分析
    • 2.5 模型应用
  • 写在最后

研究生期间读了一些关于客户生命周期价值(customer lifetime value,CLV)的一些文章,对此颇感兴趣,正好最近看到一个关于航空公司客户价值分析的案例,写一篇博客记录一下。

1. 数据挖掘的目标

面对激烈的市场竞争,各个航空公司相继推出了很多优惠的营销方案来吸引客户。某航空公司面临着常旅客流失、竞争力下降和航空资源未充分利用等经营危机。通过建立合理的客户价值评估模型,对客户进行分类,分析比较不同客户群体的价值,并制定相应的营销策略,对不同的客户群提供个性化的客户服务是必要的。因此本项目的目标是:

  • 借助航空公司客户数据,对客户进行分类。
  • 对不同的客户类别进行特征分析,比较不同类别的客户的价值。
  • 针对不同价值的客户类别制定相应的营销策略,为其提供个性化服务。

2. 分析过程与方法

“以客户为中心”是企业的业务模式,然而维护客户关系需要高昂的成本,追求利润最大化的企业不可能和每一个客户都保持同样的关系。客户营销战略的倡导者 Jay & Adam Curry 提炼出了如下的经验:

  • 公司收入的80%来自顶端的20%的客户。
  • 20%的客户其利润率为100%。
  • 90%以上的收入来自现有客户。
  • 大部分的营销预算经常被用在非现有客户上。
  • 5%至30%的客户在客户金字塔中具有升级潜力。
  • 客户金字塔中客户升级2%,意味着销售收入增加10%,利润增加50%。

经验不一定正确,但说明了对客户价值进行分析的重要性和必要性。在客户价值分析领域,最具影响力并得到实证检验的理论与模型有:客户终生价值理论、客户价值金字塔模型、策略评估矩阵分析法和RFM客户价值分析模型等。

2.1 分析步骤与流程

航空公司客户价值分析案例的总流程如图所示,主要包括以下 4 个步骤:


1)抽取航空公司2012年4月1日至2014年3月31日的数据。
2)对抽取的数据进行数据探索分析与预处理,包括数据缺失值与异常值的探索分析、数据清洗、特征构建、标准化等操作。
3)基于 RFM 模型,使用 K-Means 算法进行客户分群。
4)针对模型结果得到不同价值的客户,采用不同的营销手段,提供定制化服务。

2.2 数据探索分析

2.2.1 描述性统计

数据的基本字段有 44 个,分别是:

客户基本信息 - 9:
MEMBER_NO           会员卡号
FFP_DATE            入会时间
FIRST_FLIGHT_DATE   第一次飞行日期
GENDER              性别
FFP_TIER            会员卡级别
WORK_CITY           工作地城市
WORK_PROVINCE       工作地所在省份你
WORK_COUNTRY        工作地所在国家
AGE                 年龄乘机信息 - 21:
LOAD_TIME           观测窗口的结束时间
FLIGHT_COUNT        飞行次数
BP_SUM              观测窗口总基本积分
EP_SUM_YR_1         第一年精英资格积分
EP_SUM_YR_2         第二年精英资格积分
SUM_YR_1            第一年总票价
SUM_YR_2            第二年总票价
SEG_KM_SUM          观测窗口总飞行公里数
WEIGHTED_SEG_KM     观测窗口总加权飞行公里数(Σ舱位折扣×航段距离)
LAST_FLIGHT_DATE    末次飞行日期
AVG_FLIGHT_COUNT    观测窗口季度平均飞行次数
AVG_BP_SUM          观测窗口季度平均基本积分累积
BEGIN_TO_FIRST      观察窗口内第一次乘机时间至MAX(观察窗口始端,入会时间)时长
LAST_TO_END         最后一次乘机时间至观察窗口末端时长
AVG_INTERVAL        平均乘机时间间隔
MAX_INTERVAL        观察窗口内最大乘机间隔
AVG_DISCOUNT        平均折扣率
P1Y_Flight_Count    第1年乘机次数
L1Y_Flight_Count    第2年乘机次数
Ration_L1Y_Flight_Count 第2年的乘机次数比率
Ration_P1Y_Flight_Count 第1年的乘机次数比率积分信息 - 14:
ADD_POINTS_SUM_YR_1 观测窗口中第1年其他积分(合作伙伴、促销、外航转入等)
ADD_POINTS_SUM_YR_2 观测窗口中第2年其他积分(合作伙伴、促销、外航转入等)
EXCHANGE_COUNT      积分兑换次数
P1Y_BP_SUM          第1年里程积分
L1Y_BP_SUM          第2年里程积分
EP_SUM              观测窗口总精英积分
ADD_Point_SUM       观测窗口中其他积分(合作伙伴、促销、外航转入等)
Eli_Add_Point_Sum   非乘机积分总和
L1Y_ELi_Add_Points  第2年非乘机积分总和
Points_Sum          总累计积分
L1Y_Points_Sum      第2年观测窗口总累计积分
Ration_P1Y_BPS      第1年里程积分占最近两年积分比例
Ration_L1Y_BPS      第2年里程积分占最近两年积分比例
Point_NotFlight     非乘机的积分变动次数

对属性观测值中的空缺值个数、最大值和最小值进行探索。代码如下:

import pandas as pd
datafile = 'air_data.csv'
data = pd.read_csv(datafile, encoding = 'utf-8')
explore['null'] = len(data) - explore['count']
explore = explore[['null','max','min']]
explore.columns = [u'空数值',u'最大值',u'最小值']

2.2.2 分布分析

分别从客户信息、乘机信息以及积分信息3个角度进行探索,寻找客户信息的分布规律。

客户基本信息分析
选取客户基本信息中的入会时间、性别、会员卡级别和年龄字段进行探索分析,探索客户的基本信息分布情况。


如上图所示,入会人数随着时间的增加而不断增加,2012年入会的人数达到顶峰。

上图是会员性别比例的饼图,男性占据了3/4的比例。


上图是会员各级别人数的条形图,可以看出绝大多数的会员是4级,5级和6级的会员人数较少。

上图是会员年龄的分布箱线图,可以看出大部分的会员年龄集中在30-50岁之间,极少数的会员年龄小于20岁或高于60岁,且有一条年龄超过100岁的异常值。

客户乘机信息分布分析

选取最后一次乘机至结束的时长、客户乘机信息中的飞行次数、总飞行公里数进行探索分析,探索客户的乘机信息分布情况。


从上图 - 会员最后一次乘机距离观测窗口结束的时长分布箱型图可知,绝大多数的客户群体的时长分布在50 - 300小时以下。也有部分客户的时间差超过了600小时,这部分客户有可能已经流失。

从上图的飞行次数和飞行公里数可以看出,大部分的客户集中在下方的箱型图的箱体中,少数客户分散分布在箱体上界的上方,这部分客户很有可能是高价值客户。

客户积分信息分布分析

选取积分兑换次数、总累计积分进行探索分析,探索客户的积分信息分布情况。
可以看出绝大部分的客户的兑换次数在 0~5 的区间内,说明大部分客户很少进行积分兑换。
可以看出,一部分客户集中在箱体中,少部分客户分散在箱体上方,这部分客户拥有更多的积分。

2.2.3 相关性分析

选取入会时间、会员卡级别、客户年龄、飞行次数、总飞行公里数、最近一次乘机至结束时长、积分兑换次数、总累计积分等属性,通过相关系数矩阵和热力图来分析各属性之间的相关性。



通过相关系数表和热力图矩阵,可以看出部分属性之间有较强的相关性,如 FLIGHT_COUNT(飞行次数)属性和 SEG_KM_SUM(飞行总公里数)属性;也有部分属性之间的相关性较弱,比如 AGE(年龄)属性与 EXCHANGE_COUNT(积分兑换次数)属性。

2.3 数据预处理

数据预处理主要包括数据清洗、属性规约与数据变换。

2.3.1 数据清洗

观察数据发现,原始数据中存在票价为空,票价最小值为0,折扣率最小值为0,总飞行公里数大于0的记录。票价为空值的数据可能是客户 不存在乘机记录造成的,其他的数据可能是客户乘坐0折机票或者积分兑换造成的。由于原始数据量大,这类数据所占比例较小,对 问题影响不大的可以丢弃处理。同时 在进行数据探索时,发现部分年龄大于100 的记录,也进行丢弃处理。

所以处理的方法如下:

  • 丢弃票价为空的记录。
  • 保留票价不为0,或者平均折扣率不为0且飞行公里数大于0的记录。
  • 丢弃年龄大于100 的记录。

原数据的shape为:(62988, 44),经过清洗之后数据shape为:(62043, 44)

2.3.2 属性规约

(1)认识RFM模型

本案例将采用 RFM 模型对客户价值进行分析,识别不同价值的客户。先来简单认识一下 RFM 模型。

R (Recency) 指的是最近一次消费时间与窗口观察结束时间的间隔。通常情况下,客户最近一次消费时间与截止时间的间隔越短,对即时提供的商品或服务也最有可能感兴趣。如果最近一次消费很近的客户越来越少,说明公司存在问题,要调整营销策略。

F (Frequency) 指客户在某段时间内所消费的次数。消费频率越高的客户,其满意度越高,忠诚度也就越高,客户价值也就越大。商家可以通过采取一定的营销方式不断去刺激客户消费,提高消费频率。

M (Monetary) 指客户在某段时间内所消费的总金额。该值越大,说明客户的消费能力越强。

(2)RFM模型解读


如图所示,用三维坐标系来展示RFM模型,x 轴表示 R 特征,y 轴表示 M 特征,z 轴表示 F 特征。按照三个特征的取值,将客户划分为图中所示的 8 种客户。针对每种类型的客户,一般要采取不同的营销策略。

(3)LRFMC模型

该模型是针对航空公司提出的客户价值分析模型。由于航空公司票价受到运输距离、舱位等级等多种因素的影响,同样消费金额的不同旅客对航空公司的价值是不同的。比如:一位购买长航线、低等级舱位票的旅客与一位购买短航线、高等级舱位票的旅客相比,后者对于航空公司而言更有价值。

本案例选择客户在一定时间内累计的飞行里程 M 和客户在一定时间内乘坐舱位所对应的折扣系数的平均值 C 两个特征代替消费金额。另外航空公司会员入会时间的长短在一定程度上能够影响客户价值,所以在模型中增加客户关系长度 L,作为区分客户的另外一个特征。

因此选择客户关系长度 L、消费时间间隔 R、消费频率 F、飞行里程数 M 和折扣系数的平均值 C 这5个特征作为航空公司识别客户价值的特征,记为LRFMC模型


根据模型,选择模型相关的以下6个属性:FFP_DATE, LOAD_TIME, FLIGHT_COUNT, AVG_DISCOUNT, SEG_KM_SUM, LAST_TO_END。

2.3.3 数据变换

数据变换包括两个部分:属性构造和数据标准化

(1)属性构造
  • L = 会员入会时长 = LOAD_TIME - FFP-DATE
  • R = LAST_TO_END
  • F = FLIGHT_COUNT
  • M = SEG_KM_SUM
  • C = AVG_COUNT
(2)数据标准化

完成对属性的构造后,对这5个属性进行标准化处理,处理方法如下:

from sklearn.preprocessing import StandardScaler
data = StandardScaler().fit_transform(origin_date)

2.4 模型构建

客户价值分析模型构建主要分为两个部分:第一部分根据航空公司客户 5 个指标的数据,对客户做聚类分群;第二部分,结合业务对每个客户群进行特征分析,分析其客户价值,并对客户群进行排名。

2.4.1 客户聚类

采用 K-Means 聚类算法对客户数据进行客户分群,聚成 5 类(需要结合业务理解与分析来确定客户的类别数量)。
主要代码如下:

from sklearn.cluster import KMeans
kmeans_model = KMeans(n_clusters = 5, n_jobs = 4, random_state = 123)
fit = kmeans_model.fit(data)
# 查看聚类结果
kmeans_cc = kmeans_model.cluster_centers_  # 聚类中心
kmeans_labels = kmeans_model.labels_       # 样本的类别标签

聚类结果如下表:

2.4.2 客户价值分析

针对聚类结果进行特征分析,绘制客户分群的雷达图。

结合业务来分析,通过比较各个特征在群间的大小来对某一个群的特征进行评价分析。通过观察雷达图可以得出:

  • 客户群 1 在各个特征的值都比较小,且在L处的取值最小,说明客户群1是新加入会员较多的客户群。
  • 客户群 2 在C处的值最大,在特征M和F的值较小,说明客户群2是偏好乘坐高级舱位的客户群。
  • 客户群 3 在特征F和M的值最大,且在特征R上的值最小,说明客户群3的会员频繁乘机,且最近都有乘机记录。
  • 客户群 4 在特征值L处的值最大,在特征R处的值较小,其他的特征值适中,说明客户群4的入会时间较长,飞行频率适中,是有一定价值的客户群。
  • 客户群 5 在R处的值最大,在特征 L, F, M 和 C 处的值都比较小,说明客户群5已经很久没有乘机,且是入会时间较短的低价值客户群。

根据以上对5个客户群的特征分析,将5个等级的客户类别定义为:重要保持客户、重要发展客户、重要挽留客户、一般客户与低价值客户。客户类别的特征分析如图所示:


① 重要保持客户
这类客户的平均折扣系数较高,最近乘机距今的时间长度较低,飞行次数或总飞行里程数较高。这类客户是航空公司的高价值客户,对公司的价值最大,所占比例较小 。

航空公司应该优先考虑将资源投到他们身上,对他们进行差异化管理和定制化营销,提高这类客户的满意度与忠诚度。

② 重要发展客户
这类客户的平均折扣系数较高,最近乘机距今的时间长度较低,飞行次数或总飞行里程数较低,成为会员的时间短,是航空公司的潜在客户。

航空公司要努力促使这类客户增加在公司的消费和合作伙伴处的消费,也就是增加客户的钱包份额。通过提升客户价值,不断提高客户的满意度,提高他们转向竞争对手的转移成本,使他们逐渐成为公司的忠诚客户。

③ 重要挽留客户
这类客户过去所乘航班的的平均折扣系数较高,飞行次数或总飞行里程数较高,但是最近乘机距今的时间长度较长,即乘坐频率降低了,客户价值变化的不稳定性很高。

由于这类客户价值衰退的原因不同,所以掌握客户的最新信息、维持与客户的互动很重要。航空公司应该根据这些客户的最近消费时间以及消费次数的变化情况推测客户消费的异动状况,列出客户名单,重点联系,延长其生命周期。

④ 一般客户与低价值客户
这类客户所乘航班的平均折扣系数很低,最近乘机距今的时间长度很高,飞行次数或总飞行里程数很低,入会时间很短。他们是航空公司的一般或低价值客户,可能在机票打折促销的时候,才会乘坐本公司航班。

基于此,对以上5个客户群进行分类如下:

2.5 模型应用

根据对每个客户群进行分析,可以采取下列一些营销手段和策略,对航空公司的价值客户群管理提供参考。

会员的升级与保级
航空公司的会员可以分为白金卡会员、金卡会员、银卡会员、普通卡会员。不同的会员级别享受不同的待遇。公司可以适当进行一些提醒或采取促销活动,刺激乘客通过消费达到标准。

首次兑换
航空公司常旅客计划中最吸引客户的内容是客户可以通过消费积累的里程来兑换免票或免费升舱等。当客户的里程或航段积累到一定程度时可以实现第一次兑换。但是公司会让里程随着时间削减,可以采取一些措施比如从数据库中提取出接近但尚未达到首次兑换标准的会员信息,对他们进行适当的提醒或采取一些促销活动,使他们消费达到兑换标准。

交叉销售
通过发行“联名卡”等与非航空类企业合作,使客户在消费其他的商品时获得本公司积分,增强与公司的联系,提高忠诚度。例如:查看重要客户在非航空类合作伙伴处的里程积累情况,找出习惯的里程积累方式,为他们制定相应的促销策略。

写在最后

企业想要长远发展和获利,一定要有稳定的、高质量的客户。留住客户对企业来说是重要的。通过对数据库中的旅客数据分析,对客户进行细分,可以获得一些重要的信息,例如发现不同类型的客户,并针对这些客户进行差异化营销,不断提高客户满意度和忠诚度。

另外,由于乘客的数据是不断更新变化的,不能只用固定的数据去做决策,分析的时间窗口要变化,可以每隔一个月运行一次,对客户进行分析。另外,要结合业务,不谈业务的数据分析也是没有意义的。

数据挖掘 | 航空公司客户价值分析相关推荐

  1. 数据挖掘——航空公司客户价值分析(分析+建模)

    前言 本次建模项目是来自于<python数据分析与挖掘实战>的案例,是介绍航空公司客户价值的分析,书中给出了关于62988个客户的基本信息和在观测窗口内的消费积分等相关信息,其中包含了会员 ...

  2. 数据挖掘——航空公司客户价值分析(代码完整)

    最近在阅读张良均.王路等人出版的书<python数据分析与挖掘实战>,其中有个案例是介绍航空公司客户价值的分析,其中用到的聚类方法是K-Means方法,我一直把学习的重心放在监督学习上,今 ...

  3. 航空公司客户价值分析(附完整代码)

    一.什么是客户价值分析:   客户价值分析是以客户为中心,从客户需求出发,搞清楚客户需要什么,他们有怎样的一个特征,需要什么样的产品,然后设计相应的产品,通过对客户分群从而满足客户的需求.进行客户价值 ...

  4. Python数据挖掘:利用聚类算法进行航空公司客户价值分析

    无小意丶 个人博客地址:无小意 知乎主页:无小意丶 公众号: 数据路(shuju_lu) 刚刚开始写博客,希望能保持关注,会继续努力. 以数据相关为主,互联网为辅进行文章发布. 本文是<Pyth ...

  5. Python数据挖掘-RFM模型K-means聚类分析-航空公司客户价值分析

    使用教材:<Python数据分析与挖掘实战> 模型:RFM模型 算法:K-means聚类:其他方法还用到了层次聚类 数据:需要数据的可以评论里call. 内容: (1)案例: 航空公司客户 ...

  6. 数据分析与挖掘实战-航空公司客户价值分析

    航空公司客户价值分析 项目背景 信息时代的到来注定营销焦点从产品中心转到了用户中心,客户关系管理成为企业的核心问题. 客户关系管理的关键问题则是客户分类,通过分类区分客户价值的有无和高低,针对不同类别 ...

  7. python航空公司客户价值分析

    1.航空公司部分数据特征说明及LRFMC模型介绍及K-Means聚类算法介绍 2.开始数据分析 - 数据探索 Part Ⅰ:数据预处理 数据清洗 数据集成 数据归约 数据变换 Part Ⅱ:建模分析和 ...

  8. python客户价值分析_Python数据分析与应用航空公司客户价值分析.ppt

    Python数据分析与应用航空公司客户价值分析.ppt 大数据,成就未来 * 大数据挖掘专家 * 大数据挖掘专家 大数据,成就未来 航空公司客户价值分析 * 目录 分析航空公司现状 1. 行业内竞争 ...

  9. python客户价值分析_航空公司客户价值分析实例

    第8章 航空公司客户价值分析 传统的识别客户价值应用最广泛的模型主要通过3个指标(最近消费时间间隔(Recency).消费频率(Frequency)和消费金额(Monetary))来进行客户细分,识别 ...

  10. 数据分析实战:航空公司客户价值分析

    一.背景目标 通过对航空公司客户数据分析,对客户进行分类: 比较不同客户的客户价值,并制定不同的服务和营销策略 二.数据探索分析 2.1 数据概况 数据时间范围: 2012年4月1日至2014年3月3 ...

最新文章

  1. JAVA代码实现多级树结构封装对象
  2. 产品设计认知:如何构建A/B测试系统,其核心功能有哪些?
  3. genius choice for gopro
  4. nyoj 42 一笔画问题 (搜索+队列)
  5. 【Unity3D自学记录】判断物体是否在镜头内
  6. C++接收字符串数组_PHP常用字符串函数(1),PHP面试重点
  7. 测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
  8. 一加7充电_刘作虎:一加7没有无线充电,Dash是最好的快充之一
  9. CSS之background-origin属性
  10. 2.2线性表的顺序表示和实现
  11. Windows下用tree命令生成目录树
  12. 嵌入式操作系统内核原理和开发(延时操作)
  13. kettle使用命令行的方式执行多个job_手把手教你实现xxl-job分布式任务调度平台搭建
  14. Doris之Rollup 与查询
  15. 原生JS大揭秘—原型链
  16. Matlab设置字体大小
  17. 微信摇一摇——iBeacon基站(一):USB蓝牙模式
  18. C# 调用中通快递查询物流轨迹接口
  19. Python小爬虫实例
  20. 自定义 Win10 开始菜单磁贴颜色和图片

热门文章

  1. linux中打开caj文件,Ubuntu20.04使用CAJViewer for Linux(可双击打开.caj文件)
  2. 计算机的拓扑 树状结构图,树状网络拓扑图模板分享
  3. ORA-01045:user C##KD lacks CREATE SESSION privilege;logon denied
  4. 浪涌特性及保护电路Surgc Stop
  5. 三顿半、永璞、时萃,谁能成为下一个咖啡品类之王?
  6. nginx做反向代理网站加载验证码图片不出来
  7. lcov和gcov的使用错误
  8. 站班汇报 水印 加相册插件
  9. 《程序员思维训练》读书小记
  10. 开发者的固化思维及解决办法