数据分析之航空公司客户价值分析
航空公司客户价值分析
1.挖掘背景与目标
开启了第一个数据分析的项目,针对于航空公司价值的分析。客户关系管理的关键问题是客户分类,通过客户分类,区别无价值客户,高价值客户,企业针对不同价值的客户制定优化的个性化服务方案,采取不同的营销策略,将有限营销资源集中于高价值客户,实现企业利润最大化目标。
1)借助航空公司客户数据,对客户分类。
2)对不同的客户类别进行特征分析,比较不同客户的客户价值。
3)对不同价值的客户类别提供个性化的服务,制定相应的营销策略。
2.分析方法与过程
目标是客户价值识别,通过航空公司客户数据识别不同价值的客户,识别客户价值应用最广泛的模型是通过三个指标(最近消费时间间隔(Recency),消费频率(Frequency)和消费金额(Monetary))来进行客户细分,识别出高价值客户,简称RFM模型。
本案例将客户关系长度L,消费时间间隔R,消费频率F,飞行里程M和折扣系数的平均值C五个指标作为航空公司识别客户价值目标,记为LRFMC模型。
航空公司客运信息挖掘主要包括以下步骤。
1)从航空公司的数据源中进行选择性抽取与新增数据抽取分别形成历史数据和增量数据。
2)对步骤1)中形成的两个数据集进行数据探索分析与预处理,包括数据缺失值与异常值的分析探索,数据的属性规约,清洗与变换。
3)利用步骤2)中形成的已完成数据预处理的建模数据,基于旅客价值的LRFMC模型进行客户分群,对各个客户群进行特征分析,识别出有价值的客户。
4)针对模型得到不同的价值的客户,采用不同的营销手段,提供定制化的服务。
2.1数据抽取与探索分析
本案例的探索分析是对数据进行缺失值分析与异常值分析,分析出数据的规律以及异常值。通过对数据观察发现原始数据中存在票价为价值,价值最小值为0,折扣率最小值为0,总飞行公里数大于0的记录。票价为空值的数据可能是客户不存在乘机记录造成,其他的数据可能是客户乘坐0折扣机票或者积分兑换产生的。
查找每列熟悉观测值中空值的个数,最大值,最小值的python代码。
# 对数据进行基本的探索
# 返回缺失值个数以及最大最小值import pandas as pddatafile = '../Data/air_data.csv' # 航空原始数据
resultfile = '../Tmp/explore.xls' # 数据探索结果data = pd.read_csv(datafile, encoding= 'utf-8') # 指定为UTF-8编码格式print(data)explore = data.describe(percentiles= [], include= 'all').T
# 对数据的基本描述,percenttiles参数是指定计算多少的分位数表(1/4分位数,中位数)explore['null'] = len(data) - explore['count'] # describe()函数自动计算非空数值,需要手动计算空值数explore = explore[['null', 'max', 'min']] # 只选取部分探索结果
explore.colums = ['空值数', '最大值', '最小值'] # 表头重命名
# describe()函数自动计算的字段有count(非空值数),unique(唯一值数),top(最高频者)
# freq(最高频数),mean(平均值),std(方差),min(最小值),50%(中位数),max(最大值)print(explore)explore.to_excel(resultfile) # 导出结果#resultnull max min
MEMBER_NO 0 62988 1
FFP_DATE 0 NaN NaN
FIRST_FLIGHT_DATE 0 NaN NaN
GENDER 3 NaN NaN
FFP_TIER 0 6 4
WORK_CITY 2269 NaN NaN
WORK_PROVINCE 3248 NaN NaN
WORK_COUNTRY 26 NaN NaN
AGE 420 110 6
LOAD_TIME 0 NaN NaN
FLIGHT_COUNT 0 213 2
BP_SUM 0 505308 0
EP_SUM_YR_1 0 0 0
EP_SUM_YR_2 0 74460 0
SUM_YR_1 551 239560 0
SUM_YR_2 138 234188 0
SEG_KM_SUM 0 580717 368
WEIGHTED_SEG_KM 0 558440 0
LAST_FLIGHT_DATE 0 NaN NaN
AVG_FLIGHT_COUNT 0 26.625 0.25
AVG_BP_SUM 0 63163.5 0
BEGIN_TO_FIRST 0 729 0
LAST_TO_END 0 731 1
AVG_INTERVAL 0 728 0
MAX_INTERVAL 0 728 0
ADD_POINTS_SUM_YR_1 0 600000 0
ADD_POINTS_SUM_YR_2 0 728282 0
EXCHANGE_COUNT 0 46 0
avg_discount 0 1.5 0
P1Y_Flight_Count 0 118 0
L1Y_Flight_Count 0 111 0
P1Y_BP_SUM 0 246197 0
L1Y_BP_SUM 0 259111 0
EP_SUM 0 74460 0
ADD_Point_SUM 0 984938 0
Eli_Add_Point_Sum 0 984938 0
L1Y_ELi_Add_Points 0 728282 0
Points_Sum 0 985572 0
L1Y_Points_Sum 0 728282 0
Ration_L1Y_Flight_Count 0 1 0
Ration_P1Y_Flight_Count 0 1 0
Ration_P1Y_BPS 0 0.999989 0
Ration_L1Y_BPS 0 0.999993 0
Point_NotFlight 0 140 0
2.2数据预处理
本案例中采用数据清洗,属性规约与数据变换的预处理方法。
1.数据清洗
通过数据探索分析,发现数据中存在缺失值,票价最小值为0,折扣率最小值为0,总飞行公里数大于0的记录。由于袁术数据量大,这类数据所占比例较小,对于问题影响不大,因此对其进行丢弃处理。
丢弃票价为空的记录。
丢弃票价为0,平均折扣率不为0,总飞行公里数大于0的记录。
使用pandas对满足清洗条件的数据进行丢弃,处理方法:满足清洗条件的一行数据全部丢弃。
# 数据清洗,过滤掉不和规则的数据import pandas as pddatafile = '../Data/air_data.csv' # 原始数据
cleanfile = '../Tmp/data_cleaned.csv' # 清洗后的数据data = pd.read_csv(datafile, encoding='utf-8') # 采用UTF-8格式# 只保留票价非零的,或者平均折扣率与总飞行公里数同时为0的记录
index1 = data['SUM_YR_1'] != 0
index2 = data['SUM_YR_2'] != 0
index3 = (data['SEG_KM_SUM'] == 0 ) & (data['avg_discount'] == 0) # 该规则是“与”
data = data[index1 | index2 | index3] # 该规则是或print(data)data = data[['LOAD_TIME', 'FFP_DATE', 'LAST_TO_END', 'FLIGHT_COUNT', 'SEG_KM_SUM', 'avg_discount']] # 选取这六个属性
data.columns = ['LOAD_TIME', 'FFP_DATE', 'LAST_TO_END', 'FLIGHT_COUNT', 'SEG_KM_SUM', 'AVG_DISCOUNT'] # 重命名列名
print(data)data.to_csv(cleanfile)# 属性选择后的数据集
属性选择后的数据集
2.3数据变换
数据变换是将数据转换成“适当的”格式,以适应挖掘任务及其算法的需要。,本案例中主要采取的数据变换方式为属性构造和数据标准化。
由于原始数据中并没有直接给出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
客户在观测时间内乘坐舱位所对应的折扣系数的平均值 = 平均折扣率
五个指标的数据提取后,对每个指标数据分布进行分析,其数据的取值范围进行处理,需要进行标准化。标准差标准化处理的python代码为
# 标准差标准化import pandas as pddatafile = '../Data/zscoredata.xls' # 需要进行标准化的数据文件
zscorefile = '../Tmp/zscoreddata.xls' # 标准差化后的数据存储路径文件# 标准差化处理
data = pd.read_excel(datafile)data = ((data - data.mean(axis = 0)) / (data.std(axis = 0))) # 实现了所有数据的标准差化 (axis = 0)为按列标准差化data.columns = ['Z'+i for i in data.columns] # 表头重命名print(data)data.to_excel(zscorefile, index= False) # 数据写入# resultZL ZR ZF ZM ZC
0 1.689882 0.140299 -0.635788 0.068794 -0.337186
1 1.689882 -0.322442 0.852453 0.843848 -0.553613
2 1.681743 -0.487707 -0.210576 0.158569 -1.094680
3 1.534185 -0.785184 0.002030 0.273091 -1.148787
4 0.890167 -0.426559 -0.635788 -0.685170 1.231909
... ... ... ... ... ...
62039 0.590805 -0.938881 1.986351 2.694820 -0.499506
62040 0.578774 -0.086114 0.072898 0.163414 0.366201
62041 0.592928 -0.796753 0.710716 1.607265 -0.932360
62042 0.575235 -0.211715 -0.423182 -0.187230 -0.661826
62043 0.529234 -0.376980 0.143767 0.616752 0.041561
3.模型构建
客户价值分析模型构建主要是有两个部分组成,第一个部分根据航空公司客户五个指标的数据,对客户进行聚类分群。第二部分结合业务对每个客户进行特征分析,分析器客户价值,对每个客户群排名。
3.1客户聚类
采用K-Means聚类算法对客户数据进行客户分群,聚成五类
# K-Means 聚类算法import pandas as pd
from sklearn.cluster import KMeans # 导入K均值聚类算法inputfile = '../Tmp/zscoreddata.xls' # 待聚类的数据文件
k = 5 # 聚类的个数# 读取数据进行聚类分析
data = pd.read_excel(inputfile)# 调用K-Mean算法
kmodel = KMeans(n_clusters= k, n_jobs= 4) # n_jobs 是并行数
kmodel.fit(data) # 训练模型center = kmodel.cluster_centers_ # 查看聚类中心
label = kmodel.labels_ # 查看各样本对应的类别
print(center)
print(label)
3.2模型应用
根据对每个客户群进行特征分析,采取以下的一些营销手段和策略,为航空公司的价值客户群管理提供参考。
(1)会员升级与保级
航空公司的会员分为很多类,其中非普通卡会员可以统称为航空公司的精英会员。成为精英会员一般都是要求在一定时间内内积累一定的飞行里程,达到这种要求后就会在有效期内成为精英会员,并享受相应的高级别服务。有效期快结束时,根据相关评价方法确定客户是否有资格继续作为精英会员,然后对该客户进行相应的升级或降级。
然而,航空公司可以在对会员升级评价的时间点之前,对那些接近但尚未到要求的比较高消费客户进行适当提醒升值采取一些促销活动,刺激他们消费达到相应指标。这样既可以获得收益,同时也可以提高客户的满意度,增加了公司的精英会员。
(2)首次兑换
航空公司常用首次兑换或者免费升舱来吸引客户。也就是客户端里程或者航段积累到一定程度时才可以实现第一次兑换,这个标准会高于正常的里程兑换标准。但是很多公司的里程积累随着时间会进行一定的消减,这样会导致许多不了解情况的会员白白损失自己的里程,甚至总是难以实现首次兑换。同样,这样会引起客户的不满,可以采取的措施时从数据库中提取出接近但是尚未达到首次兑换标准的会员,对他们进行提醒或者促销,是他们通过消费达到标准。这样会提高客户的满意度。
(3)交叉销售
通过与银行发行联名卡等措施来提高客户的粘性,时客户在其他企业的消费过程中获得本公司的积分,增强与公司的联系,提高他们的忠诚度。
客户识别和发展期为客户关系打下基石,但是这两个时期带来的客户关系时短暂的,不稳定的。企业要获取长期的利润,必须具有稳定的,高质量的客户。保持客户对于企业时至关重要的,不仅是因为争取一个新的客户的成本远远高于维持老客户的成本,更重要的时客户流失会造成公司收益的直接损失,因此,在这一时期,航空公司应该努力维护客户关系,使之处于较高的水准,最大化生命周期内公司与客户的互动价值。
这个项目主要是分析了航空公司如何维持客户的关系,最大化客户关系,获取更高的收益。同时提升公司的业务水平,并进一步优化公司的管理模式。为成功上市做好前期工作。
数据分析之航空公司客户价值分析相关推荐
- 毕业设计之 ---基于大数据分析的航空公司客户价值分析
文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...
- 【毕业设计】大数据分析的航空公司客户价值分析 - python
文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...
- python客户价值分析_Python数据分析与应用航空公司客户价值分析.ppt
Python数据分析与应用航空公司客户价值分析.ppt 大数据,成就未来 * 大数据挖掘专家 * 大数据挖掘专家 大数据,成就未来 航空公司客户价值分析 * 目录 分析航空公司现状 1. 行业内竞争 ...
- 数据分析与挖掘实战-航空公司客户价值分析
航空公司客户价值分析 项目背景 信息时代的到来注定营销焦点从产品中心转到了用户中心,客户关系管理成为企业的核心问题. 客户关系管理的关键问题则是客户分类,通过分类区分客户价值的有无和高低,针对不同类别 ...
- 数据分析实战:航空公司客户价值分析
一.背景目标 通过对航空公司客户数据分析,对客户进行分类: 比较不同客户的客户价值,并制定不同的服务和营销策略 二.数据探索分析 2.1 数据概况 数据时间范围: 2012年4月1日至2014年3月3 ...
- 《Python数据分析与挖掘实战》第7章——航空公司客户价值分析(kmeans)
本文是基于<Python数据分析与挖掘实战>的实战部分的第七章的数据--<航空公司客户价值分析>做的分析. 旨在补充原文中的细节代码,并给出文中涉及到的内容的完整代码. 1)在 ...
- Python数据挖掘:利用聚类算法进行航空公司客户价值分析
无小意丶 个人博客地址:无小意 知乎主页:无小意丶 公众号: 数据路(shuju_lu) 刚刚开始写博客,希望能保持关注,会继续努力. 以数据相关为主,互联网为辅进行文章发布. 本文是<Pyth ...
- 航空公司客户价值分析python实战
航空公司客户价值分析(K_Means聚类分析) 最近在看黄红梅.张良均老师主编的<Python数据分析与应用>,拿书里的案例练练手. 本案例将使用航空公司客户数据,结合RFM模型,采用K_ ...
- 航空公司客户价值分析(附完整代码)
一.什么是客户价值分析: 客户价值分析是以客户为中心,从客户需求出发,搞清楚客户需要什么,他们有怎样的一个特征,需要什么样的产品,然后设计相应的产品,通过对客户分群从而满足客户的需求.进行客户价值 ...
- python航空公司客户价值分析
1.航空公司部分数据特征说明及LRFMC模型介绍及K-Means聚类算法介绍 2.开始数据分析 - 数据探索 Part Ⅰ:数据预处理 数据清洗 数据集成 数据归约 数据变换 Part Ⅱ:建模分析和 ...
最新文章
- 更加安全的存取账户密码
- python多行字符串输入_python中怎么输入多行字符串
- 无意中发现一位大佬的算法刷题pdf笔记
- 笔记本右侧手滑板Synaptics
- BZOJ3823 : 定情信物
- java messagebox 关闭_wince/WinForm下实现一个自动关闭的MessageBox
- 【剑指offer】面试题53 - II:0~n-1中缺失的数字(java)
- 设计一个可以变换的c语言图案,关于图形和变换专题的数学试题
- 硬核科普!携号转网的技术原理分析!
- 以未来式计算机为题目的作文,一般将来时:my travel plan为题作文
- LSTM网络层详解及其应用实例
- 2022苏州微软前端社招面经
- dota英雄出装备大全
- Oliver的成绩(vector)
- 计算机自动关机时间如何设置在哪设置方法,Win8设置电脑在某一个时间段自动关机的三种方法...
- PCB板上的蓝宝石---关于光学定位点的DFM
- Python和C语言哪个更容易学,感觉学了C语言有点难,只学过C语言的大学生很迷茫?
- 完美字符子串 单调队列预处理+DP线段树优化
- 一闪一闪亮晶晶,满屏都是小星星
- Git之新建分支命令