航空公司客户价值分析

在信息化,大数据快速发展的今天。航空公司作为一个庞大的数据载体,无时不刻的在产生数据,如何通过既有数据转化为客户价值,进行精准营销,成为很多航空公司的统一难题,实现数据变现,说难也难,说易也易。关键在于找到方法与目标。

所以我们的目标是什么:

1通过数据将用户分类,因为这些数据没有类标签,相当于是无监督训练
2 通过得到的客户分类,对客户价值进行比较分析

方法论

根据客户价值的RFM方法,选择以下几项作为分析字段。

由于航空票价受到运输距离、舱位等级等多种因素影响,同样消费金额的不同旅客对航空公司的价值是不同的。例如,一位购买长航线、低等级舱位票的旅客与一位购买短航线、高等级舱位票的旅客相比,后者对于航空公司价值更高。因此,这个指标并不适用于航空公司的客户价值分析。这里选择客户在一定时间内累计的飞行里程M和客户在一定时间内乘坐舱位多对应的折扣系数的平均值C两个指标代表消费金额。此外,考虑航空公司会员入会时间长短在一定程度上影响客户价值,所以在模型中增加客户关系长度L,作为区分客户的另一指标。

本案例中将客户关系长度L、消费时间间隔R、消费频率F、飞行里程M和折扣系数C的平均值五个指标作为识别客户价值指标。

L=LOAD_TIME-FFP_DATE=MENBER_TIME 会员入会时间距观测窗口结束的月数=观测窗口的结束时间-入会时间[单位:月]
R=LAST_TO_END 客户最近一次乘坐公司飞机距观测窗口结束的月数=最后一次乘机时间至观察窗口末端
F=FLIGHT_COUNT 客户在观测窗口内乘坐公司飞机的次数=观测窗口的飞行次数[单位:次]
M=SEG_KM_SUM 客户在观测时间内在公司累计的飞行里程=观测窗口的总飞行公里数[单位:公里]
C=AVG_DISCOUNT 客户在观测时间内乘坐舱位所对应的折扣系数的平均值=平均折扣率[单位:无]

#原始数据

原始数据有很多列,主要分为三大类:客户基本信息,乘机信息还有积分信息
客户基本信息:一飞(第一次飞行时间),性别,卡级(会员卡级别),城市,国家,省份,年龄
乘机信息:飞数(飞行次数),采集终点时间,末飞(最后一次飞行时间),打折(平均折扣率),收入(票价收入),公里数(总飞行公里数)
末飞日期(最后一次飞行日期),平均间隔(平均乘机间隔),最大间隔(最大乘机间隔)
积分信息:兑换(积分兑换次数),总积分

实现步骤

1导入模块库

import pandas as pd
from datetime import datetime
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt

2导入数据

df = pd.read_csv('./air_data.csv', \
                 encoding='utf-8')
#生成copy
df_a=df.copy(deep=True)

3探索数据

explore = df_a.describe(percentiles=[], include='all').T
# describe()函数自动计算非空值数,需要手动计算空值数
explore['null'] = len(df_a) - explore['count']

explore = explore[['null', 'max', 'min']]
explore.columns = [u'空值数', u'最大值', u'最小值']

4数据清洗

a=[]
for i in range(len(df_a)):
    load_time=datetime.strptime(df['LOAD_TIME'][i], '%Y/%m/%d')
    temp=datetime.strptime(df_a['FFP_DATE'][i], '%Y/%m/%d')
    a.append(round((load_time-temp).days/30))
df_a['MENBER_TIME']=a
df_a = df_a[df_a['SUM_YR_1'].notnull() & df_a['SUM_YR_2'].notnull()]
df_a = df_a[df_a['SUM_YR_1'] != 0]
df_a = df_a[df_a['SUM_YR_2'] != 0]
df_a = df_a[df_a['SEG_KM_SUM'] != 0]
df_a = df_a[df_a['avg_discount'] != 0]
df_a.dropna(subset=['WORK_PROVINCE'], inplace=True)
df_a.dropna(inplace=True)
#再一次数据探索,确认没有不合理的值和缺失值
explore = df_a.describe(percentiles=[], include='all').T
# describe()函数自动计算非空值数,需要手动计算空值数
explore['null'] = len(df_a) - explore['count']
explore = explore[['null', 'max', 'min']]
explore.columns = [u'空值数', u'最大值', u'最小值']
#L=LOAD_TIME-FFP_DATE=MENBER_TIME 会员入会时间距观测窗口结束的月数=观测窗口的结束时间-入会时间[单位:月]
#R=LAST_TO_END 客户最近一次乘坐公司飞机距观测窗口结束的月数=最后一次乘机时间至观察窗口末端
#F=FLIGHT_COUNT 客户在观测窗口内乘坐公司飞机的次数=观测窗口的飞行次数[单位:次]
#M=SEG_KM_SUM 客户在观测时间内在公司累计的飞行里程=观测窗口的总飞行公里数[单位:公里]
#C=AVG_DISCOUNT 客户在观测时间内乘坐舱位所对应的折扣系数的平均值=平均折扣率[单位:无]

5特征选择

features = ['MENBER_TIME', 'LAST_TO_END', 'FLIGHT_COUNT', 'SEG_KM_SUM', 'avg_discount']
df_b = df_a[features]
df_b.rename(columns={'avg_discount':'AVG_DISCOUNT'},inplace=True)
ss = StandardScaler()
df_b = ss.fit_transform(df_b)

6模型训练

kmodel = KMeans(n_clusters=5)
kmodel.fit(df_b)
print(kmodel.cluster_centers_)  # 查看聚类中心
print(kmodel.labels_)  # 查看各样本对应的类别

7可视化

#计算各类数据量
cluster_list=list(kmodel.labels_)
cluster_value=pd.value_counts(cluster_list)
fig = plt.figure(figsize=[7, 5])
clu = kmodel.cluster_centers_
x = [1,2,3,4,5]
colors = ['red','green','yellow','blue','black']
for i in range(5):
    plt.plot(x, clu[i],label='cluster'+str(i)+' '+str(cluster_value[i]), color=colors[i], marker='o')
plt.legend()
plt.xlabel('L R F M C')
plt.ylabel('values')
plt.show()

结果如图所示
航空公司客户价值分析_第1张图片

数据分析

在LRFMC五维指标中,我们需要重点评估的是L,F以及M,从图中看出:
1、cluster0客户群的F,M很高,L也不低,可以看做是重要保持的客户;
2、cluster1客户群是重要发展客户,乘坐的舱位等级相对较高
3、cluster2客户群重要挽留客户,原因:入会时间长,但是F,M较低
4、cluster3是一般客户
5、cluster4是低价值客户,乘机的概率太低

策略应对

1会员的升级与保级
航空公司的会员可以分为白金卡会员、金卡会员、银卡会员、普通卡会员,其中非普通卡会员可以统称为航空公司的精英会员。虽然各个航空公司都有自己的特点和规定,但会员制的管理方法是大同小异的。成为精英会员一般都是要求在一定时间内(如一年)达到这种要求后就会在有效期内(通常为两年)成为精英会员,并享受相应的高级别服务。有效期快结束时,根据相关评价方法确定客户是否有资格继续作为精英会员,然后对该客户进行相应的升级或降级。
然而,由于许多客户并没有意识到货根本不了解会员升级或保级的时间与要求(相关的文件说明往往复杂且不易理解),经常在评价期过后才发现自己其实只差一点就可以实现升级或保级,却错过了机会,是之前的里程积累白白损失。同时,这种认知还可能导致客户的不满,干脆放弃在本公司的消费。
因此,航空公司可以在对会员升级或保级进行评价的时间点之前,对那些接近但尚未达到要求的较高消费者进行适当提醒甚至采取一些促销活动,刺激他们通过消费达到相应的标准。这样既可以获得收益,同时也提高了客户的满意度,增加了公司的精英会员。

2首次兑换
航空公司常旅客计划中最能够吸引客户的内容就是客户可以通过消费积累里程来兑换免票或免费升舱等。各个航空公司都有一个首次兑换标准,也就是当客户的里程或航段积累到一定程度时才可以实现第一次兑换,这个标准会高于正常的里程兑换标准。但是很多公司的里程积累随着事件会进行一定的削减,例如有的公司会在年末对该年累计的历程进行折半处理。这样会导致许多不了解情况的会员白白损失自己好不容易积累的里程,甚至总是难以实现首次兑换。同样,这也会引起客户的不满或流失。可以采取的措施是从数据库中提取出接近但尚未达到首次兑换标准的会员,对他们进行提醒或促销,使他们通过消费达到标准。一旦实现了首次兑换,客户在本公司进行再次消费兑换就比其他公司进行兑换要容易许多,在一定程度上等于提高了转移的成本。另外,在一些特殊的时间点(如里程折半的时间点)之前可以给客户一些提醒,这样可以增加客户的满意度。

3交叉销售
通过发行联名卡等与非航空类企业的合作,使客户在其他企业的消费过程中获得本公司的积分,增强与公司的联系,提高他们的忠诚度。例如,可以查看重要客户在非航空类合作伙伴处的里程积累情况,找出他们习惯的里程积累方式(是否经常在合作伙伴处消费、更喜欢消费哪些类型合作伙伴的产品),对他们进行相应促销。
客户识别期和发展期为客户关系打下基石,但是这两个时期带来的客户关系是短暂的、不稳定的。企业要获取长期的利润,必须具有稳定的、高质量的客户。保持客户对于企业是至关重要的,不仅因为争取一个新客户的成本远远高于维持老客户的成本,更重要的是客户流失会造成公司收益的直接损失。因此,在这一时期,航空公司应该努力维持客户关系,使之处于较高的水准,最大化生命周期内公司与客户的互动价值,并使这样的高水平尽可能延长。对于这一阶段的客户,主要应该通过提供优质的服务产品和提高服务水平来提高客户的满意度。通过对于旅客数据库的数据挖掘、进行客户细分,可以获得重要保持客户的名单。这类客户一般所乘航班的平均折扣率(C)较高,最近乘坐过本公司航班(R低)、乘坐的频率(F)或里程(M)也较高。他们是航空公司的价值客户,是最理想的客户类型,对航空公司的贡献最大,所占比率却比较小。航空公司应该优先将资源投放到他们身上,对他们进行差异化管理和一对一营销,提高这类可会的忠诚度与,满意度,尽可能延长这类客户的高水平消费。

你可能感兴趣的:(航空公司客户价值分析)