航空公司客户价值分析

+++

1、了解航空公司现状与客户价值分析

  • 1、行业内竞争

    • 民航的竞争除了三大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司、民营航空公司,甚至国外航空巨头。航空产品生产过剩,产品同质化特征愈加明显,于是航空公司从价格、服务间的竞争逐渐转向对客户的竞争。
  • 2、行业外竞争
    • 随着高铁、动车等铁路运输的兴建,航空公司收到巨大冲击。
  • 3、航空公司的数据分析
    • 目前航空公司已积累了大量的会员档案信息和其乘坐航班记录。以2014-03-31为结束时间,选取宽 度为两年的时间段作为分析观测窗口,抽取观测窗口内有乘机记录的所有客户的详细数据形成历史数 据,44个特征,总共62988条记录。数据如air_data.csv所示!

+++

1.1、根据航空公司的数据特征进行下列说明:

1.2、结合目前航空公司的数据情况,可以实现以下目标:
  • a、先对航空数据进行数据清洗和处理。

  • a、借助处理好的航空公司客户数据,对客户进行分群。

  • b、然后对不同的客户类别进行特征分析,比较不同类别客户的客户价值。

  • c、最后对不同价值的客户类别提供个性化服务,制定相应的营销策略。

1.3、认识客户价值分析

​ 全球经济环境和市场环境已经悄然改变,企业的业务逐步从以产品为主导转向以客户需 求为主导。一种全新的“以客户为中心”的业务模式正在形成并被提升到前所未有的高度。 然而与客户保持关系需要花费成本,企业所拥有的客户中只有一部分能为企业带来利润。企 业的资源也是有限的,忽视高潜力的客户而对所有客户都提供同样的服务,将使企业的资源 无法发挥其最大效用去创造最大化的利润。任何企业要想生存和发展,都必须获得利润,追 求利润最大化是企业生存和发展的宗旨之一。所以企业不可能也不应该和所有的客户都保持 同样的关系。客户营销战略的倡导者 Jay& Adam Curry 从对国外数百家公司进行的客户营销 实施的经验中提炼了如下经验:

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

注意:这些经验也许并不完全准确,但是它揭示了新时代客户分化的趋势,也说明了对客户价值分析 的迫切性和必要性。

众多的企业管理者虽然知道客户价值分析的重要性,但对如何进行客户价值分析却知之 甚少。如何全方位、多角度地考虑客户价值因素,进行有效的客户价值分析,这是摆在所有 企业面前需要认真思索的一个问题。

只有甄选出有价值的客户并将精力集中在这些客户身上, 才能有效地提升企业的竞争力,使企业获得更大的发展。 在客户价值分析领域,最具影响力并得到实证检验的理论与模型有客户终生价值理论客 户价值金字塔模型、策略评估矩阵分析法和 RFM 客户价值分析模型等。本章将运用改进的客 户价值 RFM 模型进行分析。

1.4、了解航空公司的客户价值分析的步骤流程

1.5、客户价值分析大概流程
  • 1、抽取航空公司 2012 年 4 月 1 日至 2014 年
  • 2、对抽取的数据进行数据清洗、特征构建和标准化等操作。
  • 3、基于 RFM 模型,使用 K-Means 算法进行客户分群。
  • 4、通过绘制雷达图来直观的认识不同群体的特征占比情况。
  • 5、针对模型结果得到不同价值的客户,采用不同的营销手段,提供定制化的服务。

2、航空公司客户数据处理

2.1、观察数据

航空公司客户原始数据存在少量的缺失值和异常值,需要清洗后才能用于分析。同时由 于原始数据的特征过多,不便直接用于客户价值分析,因此需要对特征进行筛选,挑选出衡量客户价值的关键特征。

2.2、数据如何处理?
  • 处理数据缺失值与异常值

​ 通过对数据观察发现原始数据中存在票价为空值票价最小值为 0折扣率最小值为 0 总飞行千米数大于 0 的记录。票价为空值的数据可能是由于不存在乘机记录造成的。其他的 数据可能是由于客户乘坐 0 折机票或者积分兑换造成的。由于原始数据量大,这类数所占比 例较小,对问题影响不大,因此对其进行丢弃处理。具体处理方法如下:

  • a、导入该项目所需要的库
# 导入工具包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
  • b、加载原始数据。
#加载原始数据
airline_data = pd.read_csv("../datas/air_data.csv",encoding="gb18030")  # 导入航空数据
print("原始数据的形状为:",airline_data.shape)

  • c、丢弃票价为空的记录。
## 去除票价为空的记录
exp1 = airline_data["SUM_YR_1"].notnull()
exp2 = airline_data["SUM_YR_2"].notnull()
exp = exp1 & exp2
airline_notnull = airline_data.loc[exp,:]
print('删除缺失记录后数据的形状为:',airline_notnull.shape)

  • d、丢弃票价为 0、平均折扣率不为 0、总飞行千米数大于 0
#只保留票价非零的,或者平均折扣率不为0且总飞行公里数大于0的记录。
index1 = airline_notnull['SUM_YR_1'] != 0
index2 = airline_notnull['SUM_YR_2'] != 0
index3 = (airline_notnull['SEG_KM_SUM']> 0) & (airline_notnull['avg_discount'] != 0)
airline = airline_notnull[(index1 | index2) & index3]
print('删除异常记录后数据的形状为:',airline.shape)

到此数据处理部分完成!

(2)、航空客户价值分析的 LRFMC 模型–构建LRFMC特征

提取特征值是有一列:L —>会员入会时间和窗口结束之间的月数

  • 转化为时间数据,时间相减,就可以构建 L 列特征值
# 选取需求的五个特征
airline_selection = airline[["FFP_DATE", "LOAD_TIME","FLIGHT_COUNT", "LAST_TO_END","avg_discount", "SEG_KM_SUM"]]
# 构建L特征
L = pd.to_datetime(airline_selection["LOAD_TIME"]) - pd.to_datetime(airline_selection["FFP_DATE"])
L = L.astype("str").str.split().str[0] # 去除数据中的days字符,只输出数字,再转化为数值型数据
L = L.astype("int") / 30## 合并特征
airline_features = pd.concat([L,airline_selection.iloc[:, 2:]], axis=1)
print('构建的LRFMC特征前5行为:\n', airline_features.head())

完成五个特征的构建以后,对每个特征数据分布情况进行分析,其数据的取值范围如表所示。从表中数据可以发现,五个特征的取值范围数据差异较大,为了消除数量级数据带来的影响,需要对数据做标准化处理。

(3)、标准化数据----->标准差标准化数据
#对数据做标准化处理
from sklearn.preprocessing import StandardScaler
data = StandardScaler().fit_transform(airline_features)
np.savez('../datas/airline_scale_test1.npz', data)#把处理好的数据保存起来
print('标准化后LRFMC五个特征为:\n', data[:5, :])
print("处理好的数据为:\n",data)

在这里插入图片描述

3、K-Means————算法预测

  • 实例化对象
  • 训练数据
  • 预测
  • 获取聚类后的最终簇的类别及个数
# 算法预测K-Means
# 1、实例化对象
#n_clusters = 5指的是分为五个簇
km = KMeans(n_clusters = 5,init = 'k-means++')# 2、训练数据
km.fit(air_data)# 3、预测
y_pre = km.predict(air_data)# 4、获取最终的聚类中心
centers = km.cluster_centers_print('y_pre:\n', y_pre) # 输出预测值
print('centers:\n', centers)

4、绘制雷达图

def show_plt(data):# 1、创建画布plt.figure()# 支持中文,支持负号:plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = False#绘制雷达图datalength = data.shape[1]# 构建角度# 从0~2π生成五个代表 特征值 的角度angle = np.linspace(0,2 * np.pi , datalength,endpoint = False)# 闭合角度angle = np.concatenate((angle,[angle[0]]),axis = 0)print('五个特征值之间的角度为:\n')print('angle:\n',angle)# 将绘的图中的 尾部闭合 构成 回路图centers = np.concatenate((data,data[:,0:1]),axis=1)for i in range(centers.shape[0]):data1 = centers[i, :]print('data1:\n',data1)plt.polar(angle,data1)# 添加标题plt.title('航空公司客户聚类结果')# 修改刻度plt.xticks(angle[:-1], ['L', 'R', 'F', 'M', 'C'])# 添加图例plt.legend(['第一类客户', '第二类客户', '第三类客户', '第四类客户', '第五类客户'], loc=0)# 保存plt.savefig('../datas/航空公司客户聚类结果test1.png')# 3、保存及展示plt.show()

#绘制雷达图
show_plt(centers)![在这里插入图片描述](https://img-blog.csdnimg.cn/2021071519401433.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzU1MjIyMjYw,size_16,color_FFFFFF,t_70)

雷达图展示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ih9wl1Sg-1626347676864)(C:\Users\翔龙\Desktop\19.png)]

# 统计不同类别样本的数目
r1 = pd.Series(kmeans_model.labels_).value_counts()
print('最终每个类别的数目为:\n', r1)

5、完整的项目代码

# -*- codeing = utf-8 -*-
# @Project :中共教育实训
# @Date :2021/7/13,18:59
# @Author :田智龙
# @File :答辩航空公司分析项目
# @Software:中共教育实训
# -*- coding: utf-8 -*-import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeansdef load_data():"""加载数据:return: air_data"""air_data = pd.read_csv('../dates/air_data.csv', encoding='ansi')return air_datadef dell_data(air_data):# 丢弃票价为空的记录。exp1 = pd.notnull(air_data['SUM_YR_1'])  # 如果有值,则为True,如果为空,则为Falseexp2 = pd.notnull(air_data['SUM_YR_2'])  # 如果有值,则为True,如果为空,则为False# 都为True ---置为True   只要有一个False --->Falseexp = msk1 & msk2# 筛选数据airline_notnull = air_data.loc[msk, :]print('删除缺失记录后数据的形状为:', airline_notnull.shape)# 只保留票价非零的,或者平均折扣率不为0且总飞行公里数大于0的记录。# b、丢弃票价为 0、平均折扣率不为 0、总飞行千米数大于 0 的记录。# --保留对航空公司有价值的数据: 票价 > 0 ,同时折扣 > 0 同时  飞行里程 > 0exp3 = air_data['SUM_YR_1'] > 0exp4 = air_data['SUM_YR_2'] > 0# 2种思考方式: 两个票价必须都大于0,票价才大于0 ; 只要有一个票价大于0 ,那么票价就大于0# 折扣大于0exp5 = air_data['avg_discount'] > 0# 飞行里程 > 0exp6 = air_data['SEG_KM_SUM'] > 0exp = (msk3 | msk4) & msk5 & msk6# 筛选数据air_data = air_data.loc[msk, :]print('删除异常记录后数据的形状为:', air_data.shape)# 选取需求特征airline_selection = air_data[["FFP_DATE", "LOAD_TIME","FLIGHT_COUNT", "LAST_TO_END","avg_discount", "SEG_KM_SUM"]]## 构建L特征L = pd.to_datetime(airline_selection["LOAD_TIME"]) - \pd.to_datetime(airline_selection["FFP_DATE"])L = L.astype("str").str.split().str[0]L = L.astype("int") / 30## 合并特征airline_features = pd.concat([L,airline_selection.iloc[:, 2:]], axis=1)print('构建的LRFMC特征前5行为:\n', airline_features.head())# 标准化后LRFMC五个特征from sklearn.preprocessing import StandardScalerdata = StandardScaler().fit_transform(airline_features)# np.savez('../dates/airline_scale.npz', data)  # 保存处理好的数据print('标准化后LRFMC五个特征为:\n', data[:5, :])return air_datadef show_res(centers):"""绘制雷达图,来展示结果:param centers: 各个类别的聚类中心:return: None"""# 1、创建画布plt.figure()# 支持中文,支持负号:plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = False# 2、绘图及修饰# 绘制雷达图datalength = centers.shape[1]# 构建角度----从0-2π生成5个元素的等差数组angle = np.linspace(0, 2 * np.pi, datalength, endpoint=False)# 闭合角度angle = np.concatenate((angle, [angle[0]]), axis=0)print('angle:\n', angle)# 闭合数据centers = np.concatenate((centers, centers[:, 0:1]), axis=1)# 绘制雷达图for i in range(centers.shape[0]):plt.polar(angle, centers[i, :])# 添加标题plt.title('航空公司客户聚类结果')# 修改刻度plt.xticks(angle[:-1], ['L', 'R', 'F', 'M', 'C'])# 添加图例plt.legend(['第一类客户', '第二类客户', '第三类客户', '第四类客户', '第五类客户'], loc=0)# 保存# plt.savefig('./data/航空公司客户聚类结果.png')# 3、保存及展示plt.show()def main():#加载数据air_data = load_data()#处理数据dell_data(air_data)k = 5  ## 确定聚类中心数# 构建模型kmeans_model = KMeans(n_clusters=k, n_jobs=4, random_state=123)fit_kmeans = kmeans_model.fit(air_data)  # 模型训练centers = kmeans_model.cluster_centers_print("聚类中心", centers)  # 查看聚类中心print(kmeans_model.labels_)  # 查看样本的类别标签# 统计不同类别样本的数目r1 = pd.Series(kmeans_model.labels_).value_counts()print('最终每个类别的数目为:\n', r1)#数据可视化show_res(centers)if __name__ == '__main__':main()

聚类结果分析:


6、模型应用

根据对各个客户群进行特征分析,采取下面的一些营销手段和策略,为航空公司的价值 客户群管理提供参考:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5isszc0W-1626347676868)(C:\Users\翔龙\Desktop\相关的给对方.png)]

这五类客户可以分为:重要保持客户,重要发展客户,重要挽留客户,一般客户,低价值客户

针对不同客户,公司可以采取不同的营销方案以及服务

  • 1、会员的升级与保级

    • 航空公司的会员可以分为白金卡会员、金卡会员、银卡会员和普通卡会员,其中非普通 卡会员可以统称为航空公司的精英会员。虽然各个航空公司都有自己的特点和规定,但会员 制的管理方法是大同小异的。成为精英会员一般都是要求在一定时间内(如一年)积累一定的 飞行里程或航段,达到这种要求后就会在有效期内(通常为两年)成为精英会员,并享受相应 的高级别服务。有效期快结束时,根据相关评价方法确定客户是否有资格继续作为精英会员, 然后对该客户进行相应的升级或降级。
    • 然而,由于许多客户并没有意识到或根本不了解会员升级或保级的时间与要求(相关的 文件说明往往复杂且不易理解),经常在评价期过后才发现自己其实只差一点就可以实现升 级或保级,却错过了机会,使之前的里程积累白白损失。同时,这种认知还可能导致客因此, 航空公司在对会员升级或保级进行评价的时间点之前,可以对那些接近但尚未户的不满,就 放弃在本公司的消费。达到要求的较高消费客户进行适当提醒甚至采取一些促销活动,刺激 他们通过消费达到相应标准。这样既可以获得收益,同时也提高了客户的满意度,增加了公 司的精英会员。
  • 2、首次兑换
    • 航空公司常旅客计划中最能够吸引客户的内容就是客户可以通过消费积累的里程来换 免票或免费升舱等。各个航空公司都有一个首次兑换标准,也就是当客户的里程或期段积累 到一定程度时才可以实现第一次兑换,这个标准会高于正常的里程兑换标准。但是多公司的里程积累随着时间会进行一定的削减,例如有的公司会在年末对该年积累的里进行折半处理。 这样会导致许多不了解情况的会员白白损失自己好不容易积累的里程,甚至总是难以实现首 次兑换。同样,这也会引起客户的不满或流失。可以采取的措施是据库中提取出接近但尚未 达到首次兑换标准的会员,对他们进行提醒或促销,使他们通过消费达到标准。一旦实现了 首次兑换,客户在本公司进行再次消费兑换就比在其他公司行兑换要容易许多,等于在一定 程度上提高了转移的成本。另外,在一些特殊的时间点(如里程折半的时间点)之前可以给客 户一些提醒,这样可以增加客户的满意度
  • 3、交叉销售
    • 通过发行联名卡等与非航空类企业的合作,使客户在其他企业的消费过程中获得本司的 积分,增强与公司的联系,提高他们的忠诚度。如可以查看重要客户在非航空类合作伙伴处 的里程积累情况,找出他们习惯的里程积累方式(是否经常在合作伙伴处消费,更喜欢消费 哪些类型合作伙伴的产品),对他们进行相应促销。客户识别期和发展期为客户关系打下基石,但是这两个时期带来的客户关系是短暂的不稳定的。企业要获取长期的利润,必须具有 稳定的、高质量的客户。保持客户对于企业是至关重要的,不仅因为争取一个新客户的成本 远远高于维持老客户的成本,更重要的是客户流失会造成公司收益的直接损失。因此,在这 一时期,航空公司应该努力维系客户关系水平,使之处于较高的水准,最大化生命周期内公 司与客户的互动价值,并使这样的高水平尽可能延长。对于这一阶段的客户,主要应该通过 提供优质的服务产品和提高服务水平来提高客户的满意度。通过根据对常旅客数据库的数据 分析,进行客户细分,可以获得重要保持客户的名单。这类客户一般所乘航班的平均折扣系 数©较高,最近乘机距今的时间长度®低,飞行次数(F)或总飞行里程(M)也较高。他们是 航空公司的价值客户,是最为理想的客户类型,对航空公司的贡献最大,所占比例却比较小。 航空公司应该优先将资源投放到他们身上,对他们进行差异化管理和一对一营销,提高这类 客户的忠诚度与满意度,尽可能延长这类客户的高水平消费。

航空公司客户价值分析完整版相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 毕业设计之 ---基于大数据分析的航空公司客户价值分析

    文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...

  7. 【毕业设计】大数据分析的航空公司客户价值分析 - python

    文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...

  8. 基于机器学习的航空公司客户价值分析与流失预测

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 面对激烈的市场竞争,各个航空公司相继推出了更优惠的营销方式来吸引更多的客户,国内某航空公司面临着常旅 ...

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

    航空公司客户价值分析(K_Means聚类分析) 最近在看黄红梅.张良均老师主编的<Python数据分析与应用>,拿书里的案例练练手. 本案例将使用航空公司客户数据,结合RFM模型,采用K_ ...

  10. 航空公司客户价值分析笔记

    面对激烈的市场竞争,各航空公司相继推出更优惠的营销模式来吸引客户,并通过建立合理的客户价值评估模型对客户进行分类,分析比较不同客户群体的价值,并制定相应的营销策略,对不同客户群体提供个性化的服务.现某 ...

最新文章

  1. 让ubuntu下的eclipse支持GBK编码
  2. html盒子高度自动收缩,CSS如何解决背景图随父盒子高度变化而拉伸或收缩的问题...
  3. 非确定性算法_使用最坏情况提高基于MPC的避障算法对参数不确定性的鲁棒性
  4. 天牛须matlab,基于天牛须搜索算法(BAS)优化BP神经网络的权值阈值代码
  5. 鼻塞用鼻喷剂-调研(成分+刺激性)
  6. pyqt 槽任意参数_PyQt5信号与槽机制入门(一)
  7. C语言中字符型和浮点型能否相加,C语言中数据结构的基本类型(整型、浮点型和字符型)...
  8. leetcode 8: 字符串转整数(atoi)
  9. 95-910-165-源码-FlinkSQL-Flink SQL 中的时间属性
  10. 使用一个超简单的类实现一个简易服务器,明白Tomcat的运行机制
  11. 博途PLC和ABB变频器PN通讯详解
  12. javascript --关灯游戏
  13. html背景图片固定代码
  14. 2020ICPC昆明热身赛 C.Statues(前缀优化dp+滚动数组优化空间)
  15. 离线数据开发之任务调度系统
  16. google浏览器设置不缓存
  17. matlab 2015 积分,Matlab中如何求解积分?
  18. 常用进制数转换(二进制、八进制、十进制、十六进制)【数电笔记】
  19. 量化交易平台Quantopian学习的笔记(一)
  20. C语言学习笔记 | 进阶 | 文件操作详解(万字精心制作)

热门文章

  1. 微信添加好友查找失败服务器繁忙,微信加载联系人失败_微信添加好友失败有哪些原因...
  2. 左程云算法 哈希函数
  3. python外包凹多边形生成_用Opencv python裁剪图像中的凹多边形
  4. Excel如何根据身份证号码提取出性别
  5. C#软件工程师必备技能(工业自动化)
  6. linux安装Python 以及Python包
  7. 机器学习深度学习教程
  8. Vue安装教程(保姆级详细教程)
  9. 【毕业季】这四年一路走来都很值得——老学长の忠告
  10. 同步回调与异步回调区别