7 航空公司客户价值分析

news2024/11/20 1:22:27

第7章 航空公司客户价值分析

  • 7.1 了解航空公司现状与客户价值分析
    • 7.1.1 了解航空公司现状
    • 7.1.2 认识客户价值分析
    • 7.1.3 熟悉航空客户价值分析的步骤与流程
  • 7.2 预处理航空客户数据
    • 7.2.1 处理数据缺失值与异常值
    • 7.2.2 构建航空客户价值分析的关键特征
      • 1. RFM模型介绍
      • 2. RFM模型结果解读
      • 3. 传统RFM模型在航空行业的缺陷
      • 4. 航空客户价值分析的LRFMC模型
    • 7.2.3 标准化LRFMC五个特征
    • 7.2.4 代码
  • 7.3 使用K-Means算法进行客户分群
    • 7.3.1 了解K-Means聚类算法
      • 1. 基本概念
      • 2. 数据类型
      • 3. kmeans函数及其参数介绍
    • 7.3.2 分析聚类结果
    • 7.3.3 模型应用
    • 7.3.4 代码

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

7.1.1 了解航空公司现状

  目前航空公司已积累了大量的会员档案信息和其乘坐航班记录。
  以2014-03-31为结束时间,选取宽度为两年的时间段作为分析观测窗口,抽取观测窗口内有乘机记录的所有客户的详细数据形成历史数据,44个特征,总共62988条记录。其中包含了会员卡号、入会时间、性别、年龄、会员卡级别、工作地城市、工作地所在省份、工作地所在国家、观测的窗口结束时间、总累计积分、观测窗口的总飞行千米数、观测窗口内的飞行次数、平均乘机时间间隔和平均折扣系数等特征。
  数据特征及其说明如下表所示:
在这里插入图片描述
  结合目前航空公司的数据情况,可以实现以下目标。

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

7.1.2 认识客户价值分析

  客户营销战略倡导者Jay & Adam Curry从国外数百家公司进行了客户营销实施的经验中提炼了如下经验。
公司收入的80%来自顶端的20%的客户。
20%的客户其利润率100%。
90%以上的收入来自现有客户。
大部分的营销预算经常被用在非现有客户上。
5%至30%的客户在客户金字塔中具有升级潜力。
客户金字塔中客户升级2%,意味着销售收入增加10%,利润增加50%。
  这些经验也许并不完全准确,但是它揭示了新时代客户分化的趋势,也说明了对客户价值分析的迫切性和必要性。

7.1.3 熟悉航空客户价值分析的步骤与流程

  航空客户价值分析项目的总体流程如图所示,主要包括4个步骤:

  1. 抽取航空公司2012年4月1日到2014年3月31日的数据。
  2. 对抽取的数据进行数据清洗、特征构建和标准化等操作。
  3. 基于RFM模型,使用K-Means算法进行客户分群。
  4. 针对模型结果得到不同价值的客户,采用不同的营销手段,提供定制化的服务。
    在这里插入图片描述

7.2 预处理航空客户数据

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

  1. 处理数据缺失值与异常值。
  2. 结合RFM模型筛选特征。
  3. 标准化筛选后的数据。

7.2.1 处理数据缺失值与异常值

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

7.2.2 构建航空客户价值分析的关键特征

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

1. RFM模型介绍

  R(Recency)指的是最近一次消费时间与截止时间的间隔。通常情况下,最近一次消费时间与截止时间的间隔越短,对即时提供的商品或是服务也最有可能感兴趣。
  F(Frequency)指顾客在某段时间内所消费的次数。可以说消费频率越高的顾客,也是满意度越高的顾客,其忠诚度也就越高,顾客价值也就越大。
  M(Monetary)指顾客在某段时间内所消费的金额。消费金额越大的顾客,他们的消费能力自然也就越大,这就是所谓“20%的顾客贡献了80%的销售额”的二八法则。

2. RFM模型结果解读

  RFM模型包括三个特征,使用三维坐标系进行展示,如图所示。X轴表示Recency,Y轴表示Frequency,Z轴表示Monetary,每个轴一般会分成5级表示程度,1为最小,5为最大。
在这里插入图片描述

3. 传统RFM模型在航空行业的缺陷

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

4. 航空客户价值分析的LRFMC模型

  本项目选择客户在一定时间内累积的飞行里程M和客户在一定时间内乘坐舱位所对应的折扣系数的平均值C两个特征代替消费金额。此外,航空公司会员入会时间的长短在一定程度上能够影响客户价值,所以在模型中增加客户关系长度L,作为区分客户的另一特征。
  本项目将客户关系长度L,消费时间间隔R,消费频率F,飞行里程M和折扣系数的平均值C作为航空公司识别客户价值的关键特征(如下表所示),记为LRFMC模型。
在这里插入图片描述
  根据LRFMC模型,选择与LRFMC特征相关的6个特征:FFP_DATE、LOAD_TIME、FLIGHT_COUNT、AVG_DISCOUNT、SEG_KM_SUM、LAST_TO_END。删除与其不相关、弱相关或冗余的特征,例如会员卡号、性别、工作地、年龄等。
L = LOAD_TIME - FFP_DATE
R = LAST_TO_END
F = FLIGHT_COUNT
M = SEG_KM_SUM
C = AVG_DISCOUNT

7.2.3 标准化LRFMC五个特征

  完成五个特征的构建以后,对每个特征数据分布情况进行分析,其数据的取值范围如表所示。从表中数据可以发现,五个特征的取值范围数据差异较大,为了消除数量级数据带来的影响,需要对数据做标准化处理。
在这里插入图片描述
L、R、F、M和C五个特征的数据示例,上图为原始数据,下图为标准差标准化处理后的数据。
在这里插入图片描述
在这里插入图片描述

7.2.4 代码

# 代码 7-1 缺失值与异常值处理
import numpy as np
import pandas as pd

airline_data = pd.read_csv(
    "F:/书籍\Python数据分析与应用/37304_Python数据分析与应用_源代码和实验数据"
    "/第7章/data/air_data.csv",
    encoding="gb18030")  # 导入航空数据
print('原始数据的形状为:', airline_data.shape)
## 去除票价为空的记录
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)

# 只保留票价非零的,或者平均折扣率不为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)

# 代码 7-2 选取并构建LRFMC模型的特征
## 选取需求特征
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]
L = L.astype("int") / 30
## 合并特征
airline_features = pd.concat([L,
                              airline_selection.iloc[:, 2:]], axis=1)
print('构建的LRFMC特征前5行为:\n', airline_features.head())

# 代码 7-3 标准化LRFMC模型的特征
from sklearn.preprocessing import StandardScaler

data = StandardScaler().fit_transform(airline_features)
np.savez('F:/书籍/Python数据分析与应用/37304_Python数据分析与应用_源代码和实验数据/第7章/airline_scale.npz',data)
print('标准化后LRFMC五个特征为:\n', data[:5, :])

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

7.3 使用K-Means算法进行客户分群

7.3.1 了解K-Means聚类算法

1. 基本概念

  K-Means聚类算法是一种基于质心的划分方法,输入聚类个数k,以及包含n个数据对象的数据库,输出满足误差平方和最小标准的k个聚类。算法步骤如下。
(1)从n个样本数据中随机选取k个对象作为初始的聚类中心。
(2)分别计算每个样本到各个聚类质心的距离,将样本分配到距离最近的那个聚类中心类别中。
(3)所有样本分配完成后,重新计算k个聚类的中心。
(4)与前一次计算得到的k个聚类中心比较,如果聚类中心发生变化,转(2),否则转(5)。
(5)当质心不发生变化时停止并输出聚类结果。

2. 数据类型

K-Means聚类算法是在数值类型数据的基础上进行研究,然而数据分析的样本复杂多样,因此要求不仅能够对特征为数值类型的数据进行分析,还要适应数据类型的变化,对不同特征做不同变换,以满足算法的要求。

3. kmeans函数及其参数介绍

sklearn的cluster模块提供了KMeans函数构建K-Means聚类模型,其基本语法如下。

sklearn.cluster.KMeans(n_clusters=8, init=‘k-means++’, n_init=10, max_iter=300, tol=0.0001,precompute_distances=‘auto’, verbose=0, random_state=None, copy_x=True, n_jobs=1,algorithm=‘auto’)

常用参数及其说明如表所示。
在这里插入图片描述
K-Means模型构建完成后可以通过属性查看不同的信息,如表所示。
在这里插入图片描述

7.3.2 分析聚类结果

对数据进行聚类分群的结果如表所示。
在这里插入图片描述
针对聚类结果进行特征分析,如图所示。
在这里插入图片描述
结合业务分析,通过比较各个特征在群间的大小对某一个群的特征进行评价分析,从而总结出每个群的优势和弱势特征,具体结果如表所示。
在这里插入图片描述
基于特征描述,本项目定义五个等级的客户类别:重要保持客户,重要发展客户,重要挽留客户,一般客户,低价值客户。每种客户类别的特征如图所示。
在这里插入图片描述

7.3.3 模型应用

根据对各个客户群进行特征分析,采取下面的一些营销手段和策略,为航空公司的价值客户群管理提供参考。
1、会员的升级与保级:航空公司可以在对会员升级或保级进行评价的时间点之前,对那些接近但尚未达到要求的较高消费客户进行适当提醒甚至采取一些促销活动,刺激他们通过消费达到相应标准。这样既可以获得收益,同时也提高了客户的满意度,增加了公司的精英会员。
2、首次兑换:采取的措施是从数据库中提取出接近但尚未达到首次兑换标准的会员,对他们进行提醒或促销,使他们通过消费达到标准。一旦实现了首次兑换,客户在本公司进行再次消费兑换就比在其他公司进行兑换要容易许多,在一定程度上等于提高了转移的成本。
3、交叉销售:通过发行联名卡等与非航空类企业的合作,使客户在其他企业的消费过程中获得本公司的积分,增强与公司的联系,提高他们的忠诚度。

7.3.4 代码

# 代码 7-4 航空客户价值分析K-Means聚类
import numpy as np
import pandas as pd
from sklearn.cluster import KMeans #导入kmeans算法
airline_scale = np.load('F:/书籍/Python数据分析与应用/37304_Python数据分析与应用_源代码和实验数据/第7章/airline_scale.npz')['arr_0']
k = 5 ## 确定聚类中心数
#构建模型
# kmeans_model = KMeans(n_clusters = k,n_jobs=4,random_state=123)
kmeans_model = KMeans(n_clusters = k, random_state=123)
fit_kmeans = kmeans_model.fit(airline_scale)   #模型训练
kmeans_model.cluster_centers_ #查看聚类中心

kmeans_model.labels_ #查看样本的类别标签

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1064568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang--channel+waitGroup控制并发量

文章目录 channelwaitGroup控制并发量前言示例 channelwaitGroup控制并发量 前言 golang的goroutine非常轻量级,同时启动数万协程都没问题。如果不对并发量进行控制,比如同时产生数百万的协程,会压垮服务器通过控制channel缓冲区的大小&…

阿里云服务器支持免费更换公网IP吗?

阿里云服务器支持免费更换公网IP吗?支持!创建6小时以内的云服务器ECS可以免费更换三次公网IP地址,超过6小时的云服务器,可以将公网固定IP地址转成弹性EIP,然后通过换绑EIP的方式来更换IP地址。阿里云服务器网分享阿里云…

3D孪生场景SDK:Viwer 孪生世界

NSDT 编辑器 提供三维场景构建、场景效果设计、场景服务发布全流程工具等,其场景编辑器支持资产管理、灯光设置、骨骼动画等功能;致力于协助资源不足的中小企业及个人快速开发数字孪生场景,帮助企业提高生产力、实现降本增效。 NSDT编辑器简…

SLAM面试笔记(8) — 计算机视觉面试题

目录 问题1:目标检测的算法分类 问题2:卷积神经网络的组成 问题3:输入层的作用 问题4:卷积层作用 问题5:卷积核类型 问题6:11卷积核作用 问题7:卷积核是否越大越好 问题8:棋…

Day-08 基于 Docker安装 Nginx 镜像-负载均衡

1、反向代理后,自然而然就引出了负载均衡,下面简单实现负载均衡的效果; 2、实现该效果需要再添加一个 Nginx ,所以要增加一个文件夹。 /home|---mutou|----nginx|----conf.d|----html|----conf.d2|----html3 1.创建 html3 文件夹, 新建 index…

Qt实现 图片处理器PictureEdit

目录 图片处理器PictureEdit1 创建工具栏2 打开图片3 显示图片4 灰度处理5 颜色反转6 马赛克 图片处理器PictureEdit 创建工程&#xff0c;添加资源文件 1 创建工具栏 widget.h中 #include <QWidget> #include<QPixmap> #include<QFileDialog> #include&l…

3D孪生场景搭建:模拟仿真

前面几期文章介绍如何使用NSDT 编辑器 搭建3D应用场景&#xff0c;本期介绍下孪生场景中一个一个非常重要的功能&#xff1a;模拟仿真。 1、什么是模拟仿真 模拟仿真是一种用于描述、分析和模拟现实世界中系统、过程或事件的计算机模型和程序。仿真通过输入各种参数和条件&am…

雷达电子箔条干扰和雷达诱饵简介

一、JAMMING 利用箔条、角反射器和诱饵进行机械干扰。 1、箔条(Chaff) 箔条是一种雷达干扰,在这种干扰中,飞机或其他目标散布一团薄薄的铝、金属化玻璃纤维或塑料,它们要么作为一组主要目标出现在雷达屏幕上,要么以多次回击淹没屏幕。 图1 箔条 2、箔条的雷达散射截面…

[算法应用]关键路径算法的简单应用

(0)免责声明: 算法和数据结构都是我自己写的,为了提交这次的作业,所以把去年写过的算法重新翻新了一下,数据结构也简单整理了一下,重新放上来了. 整个程序是可以顺利跑通的,同学们可以用代码检测一下自己的结果对不对,切勿抄袭. (真的不想手推关键路径了....真的....不过复习…

2023-10-06 LeetCode每日一题(买卖股票的最佳时机含手续费)

2023-10-06每日一题 一、题目编号 714. 买卖股票的最佳时机含手续费二、题目链接 点击跳转到题目位置 三、题目描述 给定一个整数数组 prices&#xff0c;其中 prices[i]表示第 i 天的股票价格 &#xff1b;整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易&…

C++转换函数

什么是转换函数? C转换函数是一种特殊的成员函数&#xff0c;用于将一个类的对象转换为另一个类型。它是通过在类中定义特定的函数来实现的。 转换函数的用途&#xff1a; 类型转换&#xff1a;转换函数可以将一个类的对象从一种类型转换为另一种类型。这样可以方便地在不同…

前端还不会低代码?快来学习这5个开源的前端低代码项目

GoView GoView是一个开源项目&#xff0c;其技术栈基于Vue3、TypeScript4、Vite2、NaiveUI、ECharts5和Axios。该项目通过Vue组件实现数据中动态刷新渲染&#xff0c;且其内部图表可以自由替换。 项目地址&#xff1a; https://gitee.com/dromara/go-view 以下是GoView开源项目…

【C++设计模式之备忘录模式:行为型】分析及示例

简介 备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;它用于保存和恢复对象的状态。备忘录模式通过将对象的状态封装成一个备忘录&#xff08;Memento&#xff09;&#xff0c;并将备忘录保存在一个管理者&#xff08;Caretaker&#xff…

结构化面试 --- 介绍 + 人际关系

目录 一、介绍 1、认识考试 2、认识考官 3、认识对手 4、认识考场 5、认识规则 6、如何备考 二、人际关系 练习题 第一题&#xff08;换岗&#xff09; 第二题&#xff08;办法&#xff09; 第三题&#xff08;相处&#xff09; 第四题 第五题 第六题 …

初级数值计算理论总结

本文用于总结复习与研究生面试 一问&#xff0c;小伙子会不会数值计算啊一答&#xff1a;会二问&#xff1a;哦&#xff0c;讲讲看二答&#xff1a;讲不出来三问&#xff1a;...... 数值求根 二分法Jacobi 迭代法 Jacobi 迭代改进算法&#xff08;事后加速法&#xff09;&#…

[架构之路-228]:目标系统 - 纵向分层 - 计算机硬件与体系结构 - 硬盘存储结构原理:如何表征0和1,即如何存储0和1,如何读数据,如何写数据(修改数据)

目录 前言&#xff1a; 一、磁盘的盘面组成 1.1 磁盘是什么 ​编辑1.2 磁盘存储介质 1.3 磁盘数据的组织 1.3.1 分层组织&#xff1a;盘面号 1.3.2 扇区和磁道 1.3.3 数据 1.3.4 磁盘数据0和1的存储方式 1.3.5 磁盘数据0和1的修正方法 1.3.6 磁盘数据0和1的读 二、…

【AI视野·今日Robot 机器人论文速览 第四十九期】Fri, 6 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 6 Oct 2023 Totally 29 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;ContactGen, 基于生成模型的抓取手势生成&#xff0c;类人五指手。(from 伊利诺伊大学 香槟) 数据集&#xff1a;GRAB da…

多线程 - 定时器

多线程 - 定时器 定时器的背景知识 定时器 ~~ (就类似于定闹钟) 平时的闹钟,有两种风格: 指定特定时刻,提醒指定特定时间段之后,提醒 这里的“定时器”,不是提醒,而是执行一个实现准备好的方法/代码,它是开发中一个常用的组件,尤其是在网络编程的时候,使用浏览器上网,打开…

【立体视觉(五)】之立体匹配与SGM算法

【立体视觉&#xff08;五&#xff09;】之立体匹配与SGM算法 一、立体匹配一&#xff09;基本步骤二&#xff09;局部立体匹配三&#xff09;全局立体匹配四&#xff09;评价标准1. 均方误差(RMS)2. 错误匹配率百分比(PBM) 二、半全局(SGM)立体匹配一&#xff09;代价计算二&a…

雷达干扰和烧穿范围简介

一、干扰信号比 J/S或J-to-S是从目标发射的干扰信号接收的功率(J)与从目标的雷达反向散射接收的功率的比率。 二、烧穿范围 通过电子攻击(J)可以首先检测到目标回波信号(S)的雷达到目标的距离。 三、自保护干扰 也称为主瓣干扰(雷达回波源和干扰机并置)。 烧穿范围…