当前位置: 首页 > news >正文

数据挖掘案例-航空公司客户价值分析

在这里插入图片描述

文章目录

    • 1. 案例背景
    • 2. 分析方法与过程
      • 2.1 分析流程步骤
      • 2.2 分析过程
        • 1. 数据探索分析
        • 2. 描述性统计分析
        • 3. 分布分析
          • 1.客户基本信息分布分析
          • 2. 客户乘机信息分布分析
          • 3. 客户积分信息分布分析
        • 4. 相关性分析
    • 3. 数据预处理
        • 3.1 数据清洗
        • 3.2 属性约束
        • 3. 3 数据转换
    • 4. 模型构建
      • 4. 1 客户聚类
      • 4. 2 客户价值分析
      • 4.3 模型应用
    • 5. 总结思考

1. 案例背景

信息时代的来临使得企业营销焦点从产品中心转变为客户中心,客户关系管理成为企业的核心问题。客户关系管理的关键问题是客户分类,通过客户分类,区分无价值客户、高价值客户,企业针对不同价值的客户制定优化的个性化服务方案,采取不同营销策略,将有限营销资源集中于高价值客户,实现企业利润最大化目标。准确的客户分类结果是企业优化营销资源分配的重要依据,客户分类越来越成为客户关系管理中亟待解决的关键问题之一。

面对激烈的市场竞争,各个航空公司都推出了更优惠的营销方式来吸引更多的客户,国内某航空公司面临着常旅客流失、竞争力下降和航空资源未充分利用等经营危机。通过建立合理的客户价值评估模型,对客户进行分群,分析比较不同客户群的客户价值,并制定相应的营销策略,对不同的客户群提供个性化的客户服务是必须的和有效的。结合该航空公司已积累的大量的会员档案信息和其乘坐航班记录,实现以下目标。

•借助航空公司客户数据,对客户进行分类。

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

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

2. 分析方法与过程

2.1 分析流程步骤

1.抽取航空公司2012年4月1日至2014年3月31日的数据。

2.对抽取的数据进行数据探索分析与预处理,包括数据缺失值与异常值的探索分析,数据清洗,特征构建,标准化等操作。

3.基于RFM模型,使用K-Means算法进行客户分群。

4.针对模型结果得到不同价值的客户,采用不同的营销手段,提供定制化的服务。

总体流程:

image-20240527133117778

2.2 分析过程

1. 数据探索分析

初始数据:

image-20240527133258451

从航空公司系统内的客户基本信息、乘机信息以及积分信息等详细数据中,根据末次飞行日期(LAST_FLIGHT_DATE),以2014年3月31日为结束时间,选取宽度为两年的时间段作为分析观测窗口,抽取观测窗口2012年4月1日至2014年3月31日内有乘机记录的所有客户的详细数据形成历史数据,总共62988条记录。航空公司数据属性如下表所示。

在这里插入图片描述

在这里插入图片描述

2. 描述性统计分析
  • 通过对原始数据观察发现数据中存在票价为空值的记录,同时存在票价最小值为0、折扣率最小值为0但总飞行公里数大于0的记录。票价为空值的数据可能是客户不存在乘机记录造成。其它的数据可能是客户乘坐0折机票或者积分兑换造成。

  • 每列属性观测值中空值个数、最大值、最小值,如下表所示。

属性名称空值记录数最大值最小值
SUM_YR_15512395600
SUM_YR_21382341880
SEG_KM_SUM0580717368
avg_discount01.50

实现代码:

image-20240527134534979

3. 分布分析

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

1.客户基本信息分布分析

选取客户基本信息中入会时间、性别、会员卡级别和年龄字段进行探索分析,探索客户的基本信息分布状况,得到各年份会员入会人数直方图、会员性别比例饼图、会员各级别人数条形图、会员年龄分布箱型图。

  1. 会员入会年份分析

image-20240527134607377

实现代码:

image-20240527134630037

  1. 会员性别分析

image-20240527134653031

实现代码:
image-20240527134212047

  1. 会员级别分析

image-20240527134259212

代码实现:

image-20240527134233279

2. 客户乘机信息分布分析

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

  1. 会员年纪分布

image-20240527134928555

实现代码:

image-20240527135011480

  1. 客户飞行数据分析

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

客户最后一次乘机至结束的时长、客户乘机信息中飞行次数、总飞行公里数的箱线图

image-20240527135147106

image-20240527135155991

实现代码:

image-20240527135239333

3. 客户积分信息分布分析

选取积分兑换次数、总累计积分进行探索分析,探索客户的积分信息分布状况

客户积分兑换次数直方图和总累计积分分布箱线图。

image-20240527135350931

image-20240527135510561

代码实现:
image-20240527135424365

4. 相关性分析

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

相关性矩阵:

image-20240527140039970

热力图:

image-20240527140239086

实现代码:

image-20240527140254754

3. 数据预处理

数据预处理方法:

image-20240527140343588

3.1 数据清洗

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

(1) 丢弃票价为空的记录。

(2) 保留票价不为0的,或者平均折扣率不为0且总飞行公里数大于0的记录。

(3) 丢弃年龄大于100的记录。

使用pandas对满足清洗条件的数据进行丢弃,处理方法为满足清洗条件的一行数据全部丢弃。

代码实现:

image-20240527140514001

3.2 属性约束

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

  1. RFM 模型介绍
  • R(Recency)指的是最近一次消费时间与截止时间的间隔。通常情况下,最近一次消费时间与截止时间的间隔越短,对即时提供的商品或是服务也最有可能感兴趣。

  • F(Frequency)指顾客在某段时间内所消费的次数。可以说消费频率越高的顾客,也是满意度越高的顾客,其忠诚度也就越高,顾客价值也就越大。

  • M(Monetary)指顾客在某段时间内所消费的金额。消费金额越大的顾客,他们的消费能力自然也就越大,这就是所谓“20%的顾客贡献了80%的销售额”的二八法则。

  1. RFM 模型解读

RFM模型包括3个特征,无法用平面坐标系来展示,所以这里使用三维坐标系进行展示,如图 所示,x轴表示R特征(Recency),y轴表示F特(Frequency),z轴表示M指标(Monetary)。每个轴一般会用5级表示程度,1为最小,5为最大

image-20240527140703253

  1. 航空公司客户价值分析的 LRFMC 模型

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

客户关系长度L,消费时间间隔R,消费频率F,飞行里程M和折扣系数的平均值C五个特征作为航空公司识别客户价值特征,如下表所示,记为LRFMC模型。

模型LRFMC
航空公司LRFMC模型会员入会时间距观测窗口结束的月数客户最近一次乘坐公司飞机距观测窗口结束的月数客户在观测窗口内乘坐公司飞机的次数客户在观测窗口内累计的飞行里程客户在观测窗口内乘坐舱位所对应的折扣系数的平均值

原始数据中属性太多,根据航空公司客户价值LRFMC模型,选择与LRFMC指标相关的六个属性:FFP_DATE、LOAD_TIME、FLIGHT_COUNT、AVG_DISCOUNT、SEG_KM_SUM、LAST_TO_END。删除与其不相关、弱相关或冗余的属性,属性选择后的数据集如下表。

FFP_DATELOAD_TIMELAST_ TO_ENDFLIGHT_ COUNTSEG_ KM_SUMavg_discount
2006/11/22014/3/3112105807170.961639
2007/2/192014/3/3171402936781.252314
2007/2/12014/3/31111352837121.254676
2008/8/222014/3/3197232813361.090870
2009/4/102014/3/3151523099280.970658
3. 3 数据转换

数据变换是将数据转换成“适当的”格式,以适应挖掘任务及算法的需要。

主要采用的数据变换方式:

  • 属性构造
  • 数据标准化

1.会员入会时间距观测窗口结束的月数L=会员入会时长

image-20240527141421098

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

image-20240527141438784

3.客户在观测窗口内乘坐公司飞机的次数F=观测窗口的飞行次数(单位:次)

image-20240527141444550

4.客户在观测时间内在公司累计的飞行里程M=观测窗口总飞行公里数(单位:公里)

image-20240527141459553

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

image-20240527141503534

在完成五个指标的数据提取后,对每个指标数据分布情况进行分析,其数据的取值范围如表所示。

属性名称LRFMC
最小值12.230.0323680.14
最大值114.6324.372135807171.5

从表中数据可以发现,五个指标的取值范围数据差异较大,为了消除数量级数据带来的影响,需要对数据进行标准化处理。

标准差标准化处理后,形成ZL、ZR、ZF、ZM、ZC五个属性的数据。

ZLZRZFZMZC
1.43571897-0.9449551614.0341287526.761369961.29555058
1.30716214-0.91190189.0732856713.12697012.86819902
1.32839171-0.889866238.7189397412.653583452.88097321
0.65848092-0.416101510.7815908212.540723061.99472974
0.38603481-0.922919599.9237159113.898847781.3443455

实现代码:

image-20240527141913395

4. 模型构建

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

4. 1 客户聚类

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

使用scikit-learn库下的聚类子库(sklearn.cluster)可以实现K-Means聚类算法。使用标准化后的数据进行聚类,

image-20240527142533199

image-20240527142606278

4. 2 客户价值分析

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

image-20240527142710247

image-20240527142747704

定义5个等级的客户类别:重要保持客户,重要发展客户,重要挽留客户,一般客户,低价值客户。每种客户类别的特征如图所示。

image-20240527142849986

4.3 模型应用

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

1.会员的升级与保级:航空公司可以在对会员升级或保级进行评价的时间点之前,对那些接近但尚未达到要求的较高消费客户进行适当提醒甚至采取一些促销活动,刺激他们通过消费达到相应标准。这样既可以获得收益,同时也提高了客户的满意度,增加了公司的精英会员。

2.首次兑换:采取的措施是从数据库中提取出接近但尚未达到首次兑换标准的会员,对他们进行提醒或促销,使他们通过消费达到标准。一旦实现了首次兑换,客户在本公司进行再次消费兑换就比在其他公司进行兑换要容易许多,在一定程度上等于提高了转移的成本。

3.交叉销售:通过发行联名卡等与非航空类企业的合作,使客户在其他企业的消费过程中获得本公司的积分,增强与公司的联系,提高他们的忠诚度。

5. 总结思考

由于在航空客户关系管理中客户流失的问题未被重视,故对航空公司造成了巨大的损害。客户流失对利润增长造成的负面影响非常大,仅次于公司规模、市场占有率、单位成本等因素的影响。客户与航空公司之间的关系越长久,给公司带来的利润就会越高。所以流失一个客户,比获得一个新客户对公司的损失更大。因为要获得新客户,需要在销售、市场、广告和人员工资上花费很多的费用,并且大多数新客户产生的利润还不如那些流失的老客户多。

因此,在国内航空市场竞争日益激烈的背景下,航空公司在客户流失方面应该引起足够的重视。如何改善流失问题,继而提高客户满意度、忠诚度是航空公司维护自身市场并面对激烈竞争的一件大事,客户流失分析将成为帮助航空公司开展持续改进活动的指南。

客户流失分析可以针对目前老客户进行分类预测。针对航空公司客户信息数据,可以进行老客户以及客户类型的定义(其中将飞行次数大于6次的客户定义为老客户,已流失客户定义为:第二年飞行次数与第一年飞行次数比例小于50%的客户;准流失客户定义为:第二年飞行次数与第一年飞行次数比例在区间[50%,90%)内的客户;未流失客户定义为:第二年飞行次数与第一年飞行次数比例大于90%的客户)。同时需要选取客户信息中的关键属性如:会员卡级别、客户类型(流失、准流失、未流失)、平均乘机时间间隔、平均折扣率、积分兑换次数、非乘机积分总和、单位里程票价、单位里程积分等。随机选取数据的80%作为分类的训练样本,剩余的20%作为测试样本。构建客户的流失模型,运用模型预测未来客户的类别归属(未流失、准流失,或已流失)。

相关文章:

数据挖掘案例-航空公司客户价值分析

文章目录 1. 案例背景2. 分析方法与过程2.1 分析流程步骤2.2 分析过程1. 数据探索分析2. 描述性统计分析3. 分布分析1.客户基本信息分布分析2. 客户乘机信息分布分析3. 客户积分信息分布分析 4. 相关性分析 3. 数据预处理3.1 数据清洗3.2 属性约束3. 3 数据转换 4. 模型构建4. …...

决策树与机器学习实战【代码为主】

文章目录 🛴🛴引言🛴🛴决策树使用案例🛴🛴numpy库生成模拟数据案例🛴🛴决策树回归问题🛴🛴决策树多分类问题 🛴🛴引言 决策树是一种经…...

从感知机到神经网络

感知机 一、感知机是什么二、用感知机搭建简单逻辑电路2.1 与门2.2 与非门2.3 或门 三、感知机的局限性3.1 异或门3.2 线性和非线性 四、多层感知机4.1 已有门电路的组合4.2 Python异或门的实现 五、感知机模型5.1 感知机模型5.2 感知机损失函数5.3 感知机学习算法 六、感知机原…...

【HMGD】STM32/GD32 I2C DMA 主从通信

STM32 I2C配置 主机配置 主机只要配置速度就行 从机配置 从机配置相同速度,可以设置第二地址 因为我的板子上面已经有了上拉电阻,所以可以直接通信 STM32 I2C DMA 定长主从通信代码示例 int state 0; static uint8_t I2C_recvBuf[10] {0}; stat…...

leecode 226 翻转二叉树、101 对称二叉树、104 二叉树的最大深度

leecode 226 翻转二叉树、101 对称二叉树、104 二叉树的最大深度 leecode 226 翻转二叉树 题目链接 :https://leetcode.cn/problems/invert-binary-tree/description/ 题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。…...

Redux基础

简介 状态管理工具,集中式管理react、vue、angular等应用中多个组件的状态,是一个库,使用之后可以清晰的知道应用里发生了什么以及数据是如何修改,如何更新的 在项目中添加 Redux 并不是必须的,根据项目需求选择是否引入 Redux 三个原则 …...

国外目标公司的任何一个联系人也许都有意义

我们说跟进一个项目,最好能够联系上拥有决策权的人,不然中间隔着几重关系,所有的更新都需要层层审批申报,特别麻烦,总是要等,也许等到最后就是一场空。如果能够直接和老板或者是拍板的人沟通,则…...

因为本地证书太旧或不全导致的 HTTPS 访问失败问题20240520

因为本地证书太旧或不全导致的 HTTPS 访问失败问题 在生产环境中,我们经常需要使用 curl 命令来测试和调试 HTTPS URL。然而,最近我遇到了一个棘手的问题:在测试环境中使用 curl 可以正常访问某个 URL,但在生产环境中却遇到了 SS…...

Lua获取表的长度

1.代码 -- 创建一个表并添加一些元素 local myTable {10, 20, 30, 40}-- 打印表的长度 print(#myTable) -- 输出 4,因为表中有 4 个元素-- 使用 # 来遍历表中的所有元素 for i 1, #myTable doprint(myTable[i]) end -- 这将依次打印 10, 20, 30, 40...

python九九乘法表的打印思考及实现

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、问题引入 九九乘法表的显示需求 二、问题分析 嵌套循环的概念 屏幕宽度与换行的考虑…...

2.Spring中用到的设计模式

Spring框架中使用了多种设计模式来构建其强大且灵活的功能,这里举例说明Spring中的一些功能使用到的设计模式。 工厂模式:Spring容器本质是一个大工厂,使用工厂模式通过BeanFactory和ApplicationContext这两个核心接口来创建和管理bean对象。…...

.NET调用阿里云人脸核身服务端 (ExecuteServerSideVerification)简易流程保姆级教学

需要注意的是,以下内容仅限基础调用 功能说明 该功能是输入核验人的姓名和身份证以及人脸照片,去阿里库里面匹配,3个信息是否一致,一致则验证通过,需要注意的是,人脸有遮挡,或者刘海&#xff0…...

[大师C语言(第十二篇)]C语言堆排序技术详解

引言 堆排序(Heap Sort)是一种基于比较的排序算法,它利用堆这种数据结构的特点来进行排序。堆是一种近似完全二叉树的结构,并同时满足堆积的性质:即子节点的键值或索引总是小于(或者大于)它的父…...

Activity启动流程要点

一、Activity启动流程 Activity的启动流程一般是通过调用startActivity或者是startActivityForResult来开始的startActivity内部也是通过调用startActivityForResult来启动Activity,只不过传递的requestCode小于0Activity的启动流程涉及到多个进程之间的通讯这里主…...

lua 计算第几周

需求 计算当前赛季的开始和结束日期,2024年1月1日周一是第1周的开始,每两周是一个赛季。 lua代码 没有处理时区问题 local const 24 * 60 * 60 --一整天的时间戳 local server_time 1716595200--todo:修改服务器时间 local date os.date("*t…...

负载均衡策略

...

海外网红营销新趋势:“快闪式”营销如何迅速提升品牌曝光度

在当今数字化时代,海外网红营销已成为品牌迅速触达全球消费者、提升品牌曝光度和刺激销售的重要手段。其中,“快闪式”营销以其独特的时效性、创意性和互动性,成为品牌与海外网红合作的新趋势。本文Nox聚星将和大家探讨如何利用海外网红的影响…...

速看!打造专属数字化能力模型的七大关键!

在数字化浪潮中,企业如何打造适应自身发展的数字化能力模型?这是许多企业面临的重要课题。今天,通过众多企业使用蚓链数字化生态解决方案实践总结,为大家分享至关重要的七大经验,助你开启数字化转型之旅! 1…...

青蛙跳台阶问题

本期介绍🍖 主要介绍:青蛙跳台阶问题,青蛙跳台阶与斐波那契数列的关系👀。 文章目录 1. 题目2. 递归解题思路3. 迭代解题思路 1. 题目 从前有一只青蛙他想跳台阶,有n级台阶,青蛙一次可以跳1级台阶&#xff…...

linux日常运维2

下载linux离线安装包---- 利用 Downloadonly 插件下载 RPM 软件包及其所有依赖包 1. 先找个可以上网的linux操作系统,这里是以centos7操作系统为例,如果要使用centos6就先安装一个centos6的系统,然后让他可以上网,后面步骤如下 a.…...

XBee API模式通信原理与嵌入式集成实战

1. XBee 库技术解析:面向嵌入式系统的 API 模式通信框架XBee 是 Digi International 推出的一系列低功耗、高可靠性的无线射频模块,广泛应用于工业物联网、远程传感器网络、智能农业及楼宇自动化等场景。其核心优势在于支持多种协议栈(Zigbee…...

9. C++14新特性-std::tuple 的按类型寻址 (Type-based Tuple Addressing)

一、引言在现代 C 中,当我们想要在一个函数中返回多个不同类型的值,或者临时打包几个数据时,std::tuple(元组)是最标准的容器。然而,C11 提供的基于索引的元组访问方式,在工程实践中暴露出严重的…...

圣女司幼幽-造相Z-Turbo进阶用法:用Python脚本批量生成角色图教程

圣女司幼幽-造相Z-Turbo进阶用法:用Python脚本批量生成角色图教程 1. 从手动点击到自动生成:为什么需要脚本批量处理? 如果你已经体验过圣女司幼幽-造相Z-Turbo的Web界面,手动输入提示词、点击生成按钮,看着一张张精…...

闲置U盘秒变神器!Windows 11密码重置盘制作保姆级教程(含32/64位系统差异说明)

闲置U盘秒变系统急救神器:Windows 11密码重置盘全流程精解 那个抽屉角落积灰的旧U盘,可能比你想象中更有价值。当Windows 11的登录界面无情拒绝你输入的密码时,一个预先制作的密码重置盘就是打开数字大门的备用钥匙。不同于网上流传的简易教程…...

三月七小助手:如何用智能自动化工具将星穹铁道日常效率提升300%

三月七小助手:如何用智能自动化工具将星穹铁道日常效率提升300% 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否每天花费大量时间在《崩坏&#xf…...

提示词工程精要:从角色设定到边界约束的完整设计框架

设计提示词(Prompt)是决定大语言模型回答质量的关键环节。好的提示词能让模型准确理解意图、输出符合预期的内容;糟糕的提示词则可能导致答非所问、格式混乱甚至“幻觉”。结合本研究的实践经验以及当前提示工程的主流方法,设计提…...

5分钟部署!《崩坏:星穹铁道》全自动助手终极指南

5分钟部署!《崩坏:星穹铁道》全自动助手终极指南 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否每天花费大量时间在《崩坏&#xff1a…...

Minecraft源码反编译终极指南:DecompilerMC完整使用教程

Minecraft源码反编译终极指南:DecompilerMC完整使用教程 【免费下载链接】DecompilerMC This repository allows you to decompile any minecraft version that was published after 19w36a without any 3rd party mappings, you just need to execute the script o…...

MongoDB EF Core 提供程序中的可查询加密和向量搜索

ngoDB Entity Framework (EF) Core 提供程序自 2024 年 5 月起正式发布。自发布以来,我们欣喜地看到 .NET 开发人员社区给予了积极的反馈,并且该提供程序在各种应用程序中得到了越来越广泛的采用。 该提供商使开发人员能够利用 LINQ 查询、更改跟踪和乐…...

语燕输入法YuyanIme构建与部署完整教程

语燕输入法YuyanIme构建与部署完整教程 【免费下载链接】YuyanIme 语燕输入法-一款基于Rime定制开发的九键、全拼、双拼、手写、火星文等方案、支持悬浮、单手、数字行等键盘模式的中文输入法 项目地址: https://gitcode.com/gh_mirrors/yu/YuyanIme 语燕输入法YuyanIme…...