精华内容
下载资源
问答
  • 学习笔记Hive(九)—— 实例:航空客户价值分析数据预处理
    2021-10-06 21:00:22

    一、背景与目标

    1.1、背景

    1.、行业内竞争
    民航的竞争除了三大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司、民营航空公司,甚至国外航空巨头。航空产品生产过剩,产品同质化特征愈加明显,于是航空公司从价格、服务间的竞争逐渐转向对客户的竞争。

    2.、行业外竞争
    随着高铁、动车等铁路运输的兴建,航空公司受到巨大冲击。

    客户营销战略倡导者Jay & Adam Curry从国外数百家公司进行了客户营销实施的经验中提炼了如下经验:

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

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


    1.2、目标

    航空公司数据特征说明

    目前航空公司已积累了大量的会员档案信息和其乘坐航班记录。

    以2014-03-31为结束时间,选取宽度为两年的时间段作为分析观测窗口,抽取观测窗口内有乘机记录的所有客户的详细数据形成历史数据,44个特征,总共62988条记录。数据特征及其说明如表所示。

    结合目前航空公司的数据情况,可以实现以下目标:

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

    二、数据预处理

    航空公司客户原始数据存在少量的缺失值和异常值,需要清洗后才能用于分析。

    通过对数据观察发现原始数据中存在票价为空值,票价最小值为0,折扣率最小值为0,总飞行公里数大于0的记录。

    • 票价为空值的数据可能是客户不存在乘机记录造成。

    处理方法:丢弃票价为空的记录。

    • 其他的数据可能是客户乘坐0折机票或者积分兑换造成。由于原始数据量大,这类数据所占比例较小,对于问题影响不大,因此对其进行丢弃处理。

    处理方法:丢弃票价为0,平均折扣率不为0,总飞行公里数大于0的记录。

    2.1、任务步骤

    准备:创建air数据库
    在这里插入图片描述

    1、创建表air_data_base
    2、导入数据到air_data_base表
    在这里插入图片描述

    3、丢弃票价为空的记录,将结果存储到sum_yr_1_not_null表
    在这里插入图片描述

    4、丢弃平均折扣率为0.0的记录,将结果存储到avg_discount_not_0表
    在这里插入图片描述

    5、丢弃票价为0、平均折扣率不为0、总飞行公里数大于0的记录,将结果存储到sum_0_seg_avg_not_0表
    在这里插入图片描述


    三、特征构造

    原始数据中包含40多个特征,利用这些特征做些什么呢?我们又该从哪些角度出发呢?

    3.1、常用客户价值分类模型

    3.1.1、RFM模型介绍

    本项目的目标是客户价值分析,即通过航空公司客户数据识别不同价值的客户,识别客户价值应用最广泛的模型是RFM模型。

    • R(Recency)指的是最近一次消费时间与截止时间的间隔。
    • F(Frequency)指顾客在某段时间内所消费的次数。
    • M(Monetary)指顾客在某段时间内所消费的金额

    3.1.2、RFM模型结果解读

    RFM模型包括三个特征,使用三维坐标系进行展示,如图所示。

    • X轴表示Recency,
    • Y轴表示Frequency,
    • Z轴表示Monetary,

    每个轴一般会分成5级表示程度,1为最小,5为最大。


    3.1.3、传统RFM模型在航空行业的缺陷

    在RFM模型中,消费金额表示在一段时间内,客户购买该企业产品金额的总和,由于航空票价受到运输距离,舱位等级等多种因素影响,同样消费金额的不同旅客对航空公司的价值是不同的,因此这个特征并不适合用于航空公司的客户价值分析。


    3.1.4、航空客户价值分析的LRFMC模型

    本项目选择客户在一定时间内累积的飞行里程M和客户在一定时间内乘坐舱位所对应的折扣系数的平均值C两个特征代替消费金额。此外,航空公司会员入会时间的长短在一定程度上能够影响客户价值,所以在模型中增加客户关系长度L,作为区分客户的另一特征。
    本项目将客户关系长度L,消费时间间隔R,消费频率F,飞行里程M和折扣系数的平均值C作为航空公司识别客户价值的关键特征(如表 3 2所示),记为LRFMC模型。


    3.2、任务步骤

    • 从数据清洗结果中选择6个属性: FFP_DATE、LOAD_TIME、FLIGHT_COUNT、AVG_DISCOUNT、SEG_KM_SUM、LAST_TO_END,形成数据集,存储到flfasl表中
    • 构造LRFMC 5个指标,并将结果存储到lrfmc表中:

    1、会员入会时间距离观测窗口结束的月数=观测窗口的结束时间-入会时间 [单位:月]

    L = LOAD_TIME - FFP_DATE
    

    2、客户最近一次乘坐公司飞机距观测窗口结束的月数 = 最后一次乘机时间至观察窗口末端时长[单位:月]

    R = LAST_TO_END
    

    3、客户在观测窗口内乘坐公司飞机的次数 = 观测窗口的飞行次数 [单位:次]

    F = FLIGHT_COUNT
    

    4、客户在观测时间内在公司累计的飞行里程 = 观测窗口总飞行公里数 [单位:公里]

    M = SEG_KM_SUM
    

    5、客户在观测时间内乘坐舱位所对应的折扣系数的平均值 = 平均折扣率 [单位:无]

    C = AVG_DISCOUNT
    

    建表:
    在这里插入图片描述
    构建5个指标:
    在这里插入图片描述
    结果查看:
    在这里插入图片描述

    更多相关内容
  • 1.[航空公司部分数据特征说明及LRFMC模型介绍及K-Means聚类算法介绍](#1) <span id="top"></span> - 2.[开始数据分析](#2) - [数据探索](#2) - [Part Ⅰ:数据预处理](#2.0) - [数据清洗](#2.1) - ...
  • 航空公司客户价值分析完整代码 项目背景:为某航空公司需要以客户为中心,按照客户的需求,在对客户的特点了解上使用不同的营销手段,目的是争取更多新客户,降低客户流失率,降低服务成本,提高业务收入,增加ARPU...
  • 大数据分析技术-航空公司客户价值分析(一)
  • 经过整理的航空公司客户价值分析代码与数据集,编程语言为Python。代码涉及到数据预处理与建模的各阶段。建模算法采用的是KMeans算法。
  • 一般情况下拿到数据进行分析,首先要对数据进行预处理,根据经典的特征工程选取相应的特征向量,前几步一般都是一样的,然后进行模型训练与数据预测,最后进行决策分析。 首先要导入一些机器学习的包,要好好学习...

    根据下面的网站进行的学习

    https://work.datafountain.cn/forum?id=67&type=2

    一般情况下拿到数据进行分析,首先要对数据进行预处理,根据经典的特征工程选取相应的特征向量,前几步一般都是一样的,然后进行模型训练与数据预测,最后进行决策分析。

    首先要导入一些机器学习的包,要好好学习这些库的使用方法哦。

    一、首先要导入数据,读取数据,

    当然也要检查数据是否有重复的或者缺失的

    删除有缺失的数据

    二、开始进行特征工程,选取那些必要特征进行分析,这些特征的选取要根据经验,哈哈哈

    选取了这五个特征,并给他们赋予了新的列名

    特征选取完成后要对这些特征进行标准化处理,因为,为使每个特征对整体的影响权重差不多

    标准化完成后,要进行数据训练了,用聚类中的k-means方法,这个会产生聚类中心,根据聚类中心的数据,然后画雷达图,进行分析

    训练完成后,主要是以每一类聚类中心的数据进行,画雷达图,雷达图一般要用pyecharts进行画雷达图,但还没有学会,用了一种比较笨的方法画雷达图。一个一个的画出来,然后进行拼接。

    差不多就是这样。

    然后再用层次聚类的方法画雷达图,层次聚类的方法没有聚类中心,所以要自己去找聚类中心,训练完成后,要找出每一类的数据,然后取平均算做每一类的聚类中心点,这样就可以画雷达图了,

    因为电脑跑不起来,,,所以只选了一千个数据进行训练,采用的曼哈顿距离方法

     查看分类情况

    第一类求出的聚类中心

    a=np.mean(x0,axis=0)

    然后把这五类连接起来。然后画雷达图。

    谱系聚类的,也要先找聚类中心,然后和层次聚类打开

    展开全文
  • ⑶从营销角度讲,客户价值分析实际上是一个市场细分问题,解决市场细分问题比较常用的方法是聚类分析;⑷对不同价值的客户类别提供个性化的服务,并且制定相应的营销策略,使得公司的利益最大化。这个就是那个csv...
  • 航空公司客户价值分析》数据源(第7章).zip 详细文章教程如下:https://blog.csdn.net/Gabrielle_OyO/article/details/111406756 免费开源,欢迎补充
  • 航空客户价值分析

    2019-10-17 14:12:38
    航空客户价值分析 航空公司在客户关系管理的关键问题是客户分类,通过客户分类,区分无价值客户、高价值客户。 通过借助数据,使用各类算法对客户进行分类。对不同类别的客户进行特征分析,比较不同类客户的客户...

    航空客户价值分析

    信息时代来临使得企业的营销点从产品中心转变为客户中心,客户关系管理成为企业的核心问题,客户关系管理的关键问题是客户分类,通过客户分类,区分客户价值,企业针对不同类型的客户进行个性化的服务方案,采用不同的营销策略,将有限的资源集中用于高价值的客户,实现企业利润最大化目标。那么如何对客户进行分类就成了最关键的问题。

    面对激烈的市场竞争,各航空公司都推出了更优惠的营销方式来吸引更多的客户,国内某航空公司现通过建立合理的客户价值评估模型,对客户进行分群,分析不同客户群的客户价值,并制定相应的营销策略。目前该航空公司已积累了大量的会员档案信息和其乘坐信息。
    由于航空公司在客户关系管理的关键问题是客户分类,通过客户分类,区分无价值客户、高价值客户。借助数据,使用各类算法对客户进行分类。对不同类别的客户进行特征分析,比较不同类客户的客户价值。识别客户价值应用最广泛的模型是RFM模型。
    最近消费时间间隔(Recency)
    消费频率(Frenquency)
    消费金额(Monetary)
    模型修改:
    由于航空公司票价受到飞行距离、舱位等级等多种因素影响,同样消费金额的不同旅客对航空公司的价值是不同的。因此单纯的RFM模型并不是适用航空客户价值分析。所以选择客户在一定时间内累积的飞行里程M和客户在一定时间内的平均折扣率C两个指标代替消费金额。另外再增加一个指标就是会员入会时间,这个指标在一定程度也会影响客户价值。
    最终指标:L:入会时间 R:最近乘坐航班 F:飞行次数 M:累积飞行里程 C:平均折扣率 (LRFMC模型)
    构造LRFMC指标:
    L=LOAD_TIME - FFP_DATE(观测窗口的结束时间 - 入会时间)
    R=LAST_TO_END(最后一次乘坐飞机距观测窗口结束的时长)
    F=FLIGHT_COUNT(观测窗口内的飞行次数)
    M=SEG_KM_SUM(观测窗口内的总飞行里程)
    C=AVG_DISCOUNT(平均折扣率)

    一、数据探索分析

    通过观察发现原始数据中存在票价为空,票价最小值为0,折扣率最小值为0、总飞行记录大于0的记录。
    票价为空可能是客户不存在乘机记录,其他数据可能是客户乘坐0折机票,可将这些数据删掉。

    在这里插入图片描述
    在这里插入图片描述

    二、数据预处理

    过滤:
    票价为空的记录
    票价为0、平均折扣率不为0、总飞行距离大于0的记录 (可能是积分兑换)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    三、模型构建

    主要是两个部分: 利用K-means算法对客户进行聚类。 结合业务,分析客户特征,分析客户价值。
    (1)客户聚类

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (2)客户价值分析

    r1 = pd.Series(kmodel.labels_).value_counts() # 统计各个类别的数目
    r2 = pd.DataFrame(kmodel.cluster_centers_) # 找出聚类中心

    所有簇中心坐标值中最大值和最小值

    max = r2.values.max()
    min = r2.values.min()
    r = pd.concat([r2, r1], axis=1) # 横向连接(0是纵向),得到聚类中心对应的类别下的数目
    r.columns = list(data_sta.columns) + [u’类别数目’] # 重命名表头

    绘图

    fig = plt.figure(figsize=(10, 8))ax = fig.add_subplot(111, polar=True)center_num = r.valuesfeature = ["入会时间—L", '最后一次飞行时间-R',"飞行次数-F", "飞行总里程=M", "平均折扣率-C"]N = len(feature)for i, v in enumerate(center_num):# 设置雷达图的角度,用于平分切开一个圆面angles = np.linspace(0, 2 * np.pi, N, endpoint=False)# 为了使雷达图一圈封闭起来,需要下面的步骤center = np.concatenate((v[:-1], [v[0]]))angles = np.concatenate((angles, [angles[0]]))# 绘制折线图ax.plot(angles, center, 'o-', linewidth=2, label="第%d簇人群,%d人" % (i + 1, v[-1]))# 填充颜色ax.fill(angles, center, alpha=0.25)# 添加每个特征的标签ax.set_thetagrids(angles * 180 / np.pi, feature, fontsize=15)# 设置雷达图的范围ax.set_ylim(min - 0.1, max + 0.1)# 添加标题plt.title('客户群特征分析图', fontsize=20)# 添加网格线ax.grid(True)# 设置图例plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1.0), ncol=1, fancybox=True, shadow=True)

    显示图形

    plt.show()
    L:入会时间 R:最后一次飞行时间 F:飞行次数 M:飞行总里程 C:平均折扣率

    客户的价值分析:
    (1)客户群3 —— R特别高,其余都低,属于低价值客户
    (2)客户群4 —— F M 很高,L也不低,可以看做是重要保持客户
    (3)客户群1 —— 可以看做是一般客户
    (4)客户群2 —— 可以看做是重要发展客户
    (5)客户群5 —— L很高,可以看做是重要的挽留客户,因为入会时间较长,但是F和M较低。

    客户价值排名:

    客户群4 ——1—— 重要保持
    客户群2 ——2—— 重要发展
    客户群5 ——3—— 重要挽留
    客户群1 ——4—— 一般客户
    客户群3 ——5—— 低价值客户

    客户特点:
    (1)重要保持客户:
    客户平均折扣率(C)较高(一般所乘航班的舱位等级较高)
    最近乘坐航班(R)低,乘坐的次数(F)或里程较高(M)
    他们是航空公司的高价值客户,是最为理想的客户类型,对公司贡献最大,所占比例小,最优先的目标,进行差异化管理,提高满意度。

    (2)重要发展客户:
    客户平均折扣率(C)较高(一般所乘航班的舱位等级较高),
    最近乘坐航班(R)低,乘坐的次数(F)或里程较低(M),
    入会时长L短,他们是潜在价值客户。
    虽然说,当前价值不高,但是却有很大的发展潜力,促使这类客户在本公司消费和合作伙伴处消费。通过客户价值提升,加强满意度,促使称为忠诚客户。

    (3)重要挽留客户:
    客户平均折扣率(C)(一般所乘航班的舱位等级较高),
    乘坐的次数(F)或里程(M)较高,但是很长时间没乘坐本公司航班(R)或频率变小,
    增加与这类客户的互动,了解情况,采取一定手段,延长客户生命周期。

    (4)一般与低价值客户:
    客户所乘坐航班平均折扣率C、乘坐次数F里程M低以及入会时间L短,较长时间无乘坐R高。
    他们可能是在公司打折促销时才会乘坐本公司航班。

    展开全文
  • 基于机器学习的航空客户价值分析.pdf
  • 该数据为某航空公司一段时间内有乘机记录的所有客户的形成的历史数据,44个特征,总共62988条记录。
  • 航空公司客户价值分析完整版

    千次阅读 2021-07-15 19:15:02
    航空公司客户价值分析 +++ 1、了解航空公司现状与客户价值分析 1、行业内竞争 民航的竞争除了三大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司、民营航空公司,甚至国外航空巨头。航空产品生产过剩...

    航空公司客户价值分析

    +++

    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 KMeans
    
    def load_data():
        """
        加载数据
        :return: air_data
        """
        air_data = pd.read_csv('../dates/air_data.csv', encoding='ansi')
        return air_data
    
    def dell_data(air_data):
        # 丢弃票价为空的记录。
        exp1 = pd.notnull(air_data['SUM_YR_1'])  # 如果有值,则为True,如果为空,则为False
        exp2 = pd.notnull(air_data['SUM_YR_2'])  # 如果有值,则为True,如果为空,则为False
    
        # 都为True ---置为True   只要有一个False --->False
        exp = msk1 & msk2
    
        # 筛选数据
    
    
        airline_notnull = air_data.loc[msk, :]
        print('删除缺失记录后数据的形状为:', airline_notnull.shape)
        # 只保留票价非零的,或者平均折扣率不为0且总飞行公里数大于0的记录。
        # b、丢弃票价为 0、平均折扣率不为 0、总飞行千米数大于 0 的记录。
        # --保留对航空公司有价值的数据: 票价 > 0 ,同时折扣 > 0 同时  飞行里程 > 0
        exp3 = air_data['SUM_YR_1'] > 0
        exp4 = air_data['SUM_YR_2'] > 0
        # 2种思考方式: 两个票价必须都大于0,票价才大于0 ; 只要有一个票价大于0 ,那么票价就大于0
    
        # 折扣大于0
        exp5 = air_data['avg_discount'] > 0
    
        # 飞行里程 > 0
        exp6 = air_data['SEG_KM_SUM'] > 0
        exp = (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 StandardScaler
        data = StandardScaler().fit_transform(airline_features)
        # np.savez('../dates/airline_scale.npz', data)  # 保存处理好的数据
        print('标准化后LRFMC五个特征为:\n', data[:5, :])
    
        return air_data
    
    def 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.RFM模型: RFM模型...
  • air_data.csv
  • 关于航空公司客户价值分析的数据分析实验报告,希望对你的学习有所帮助。
  • 基于数据挖掘的航空公司客户价值分析.pdf
  • 与本人博客https://blog.csdn.net/sinat_38068807/article/details/90703685配套使用,这个压缩包里面有数据分析所用数据源,分析需求文档以及本人编写的代码
  • 文章目录0 前言1 数据分析背景2 分析策略2.1 航空公司客户价值分析的LRFMC模型2.2 数据2.3 分析模型3 开始分析3.1 数据预处理3.1.1 数据预览3.1.2 数据清洗3.2 变量构建3.3 建模分析4 数据分析结论4.1 整体结论4.2 ...
  • 数据挖掘实战—航空公司客户价值分析

    千次阅读 多人点赞 2021-04-05 16:18:13
    通过客户分类,对客户群体进行细分,区分出低价值客户与高价值客户,对不同的客户群体开展不同的个性化服务,将有限的资源合理地分配给不同价值客户,从而实现效益(利润)最大化。本文将使用航空公司客户数据,...
  • 1.案例背景 二八定律: 20%的客户,为企业带来约80%的利益。 在企业的客户关系管理中,对客户分类,区分不同价值客户。...广泛用于分析客户价值的是RFM模型,它是通过三个指标(最近消费时间间隔(Recency
  • 航空公司客户价值分析(正版/超详细/附数据)

    万次阅读 多人点赞 2020-09-10 17:57:23
    航空公司客户价值分析 在面向客户制定运营策略、营销策略时,希望能够针对不同的客户推行不同的策略,实现精准化运营,以期获取最大的转化率。客户关系管理是精准化运营的基础,而客户关系管理的核心是客户分类。...
  • 基于K-means聚类方法的航空公司客户价值分析.pdf
  • 参考资料:https://www.cnblogs.com/p1ng/p/12886773.htmlhttps://www.cnblogs.com/p1ng/p/12886773.html数据:提取码:2626 ... 原始数据情况 数据截图: ...一、数据描述性统计分析 准备阶段: .
  • 文档,数据,以及代码应有尽有!解压即可使用,code直接丢到spyder里面,如果不想改路径就想使用,直接解压到桌面上面运行。文档和代码以及数据均是网络上的综合之后,根据本人经验进行修改。
  • 了解航空公司现状与客户价值分析任务描述与分析1.1 前言 信息时代的来临使得企业营销焦点从产品转向了客户,客户关系管理(Customer relationship management ,CRM)成为企业的核心问题。客户关系管理的关键问题是客户...
  • 数据分析与挖掘实验报告 内含实验过程,源码,截图和实验小结
  • 数据分析与挖掘实验报告 内含实验过程,源码,截图和实验小结
  • 我的这个项目放在百度网盘了,你可以提取。...datafile = './air_data.csv' # 航空原始数据路径 data = pd.read_csv(datafile, encoding = 'utf-8') #读取原始数据,指定UTF-8编码 二、数据探索分析 #2、数...
  • 航空公司客户价值大数据分析全部的源代码,使用python编写,含数据部分

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,301
精华内容 3,720
关键字:

航空客户价值分析