当前位置: 首页 > 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.…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

docker 部署发现spring.profiles.active 问题

报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...