3航空公司客户价值分析

来源:互联网 发布:淘宝app怎么开店 编辑:程序博客网 时间:2024/04/30 18:41

3航空公司客户价值分析

目标

将客户进行分类分群,分析对比不同客户群体的客户价值,将营销资源集中于高价值客户,实现企业利润最大化。(通过航空公司的数据识别不同价值的客户。)

3.1 数据的探索性分析

探索性分析的目的是对数据进行缺失值分析和异常值分析,分析数据的规律。

查找每列属性的最大最小值以及空值个数。代码如下:

# coding=utf-8
#
数据探索分析
import pandasas pd
datafile=
'demo/data/air_data.csv'
resultfile='demo/tmp/explore.xls'#数据探索分析结果表
pd.set_option('display.width',200)
data=pd.read_csv(datafile
,encoding='utf-8')
explore=data.describe(
percentiles=[],include='all').T#percentiles指定计算多少分位数
explore['null']=len(data)-explore['count']
explore=explore[[
'null','max','min']]
explore.columns=[
u'空值数',u'最大值',u'最小值']#表头重命名
explore.to_excel(resultfile)

计算结果如下:

部分数据没能显示

从该表中我们可得知哪一列有缺失值,以及由多少缺失值。

3.2 数据预处理

本案例采用的数据预处理的方式主要有数据清洗、属性规约、数据变换。

3.2.1 数据清洗

根据数据探索分析的结果可知数据中存在缺失值,以及票价最小值为0、折扣率最小值为0、总飞行公里数大于0的纪律,由于本案例的数据较多,故将此部分数据删除过滤掉。代码如下:

#数据清洗删除异常数据及空值
# coding=utf-8
import pandasas pd
datafile=
'demo/data/air_data.csv'
cleanedfile='demo/tmp/data_cleaned.xls'
pd.set_option('display.width',500)
data=pd.read_csv(datafile
,encoding='utf-8')
data=data[data[
'SUM_YR_1'].notnull()*data['SUM_YR_2'].notnull()]#票价非空值才保留
#只保留票价非零的,或者平均折扣率与总飞行公里数同时为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]
data.to_excel(cleanedfile)

3.2.2属性规约

从表中我们科看出,每行数据的属性太多了,而且许多属性时与我们分析无关的,此时就需要将这些不相关的数据删除。代码如下:

#属性规约
# encoding=utf-8
import pandasas pd
inputfile=
'demo/tmp/data_cleaned.xls'
outputfile='demo/tmp/zscoreddata2.xls'
data=pd.read_excel(inputfile)
data=data[[
'FFP_DATE','LOAD_TIME','FLIGHT_COUNT','avg_discount','SEG_KM_SUM','LAST_TO_END']]
data.to_excel(outputfile)

结果如下


3.2.3 数据变换和数据标准化

数据变换就是将数据转换成适当的数据格式,以适应挖掘任务的需要,本案例中主要采用的数据变换方式为属性构造和数据标准化处理。代码如下:

# coding=utf-8
#
数据标准化
import pandasas pd
datafile=
'demo/data/zscoredata.xls'
zscoresfile='demo/tmp/zscoreddata.xls'
data=pd.read_excel(datafile)
data=(data-data.mean(
axis=0))/(data.std(axis=0))
data.columns=[
'Z'+ifor iin data.columns]
data.to_excel(zscoresfile
,index=False)

3.3 模型的构建

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

3.3.1 客户聚类

本案例采用K-Means聚类方法,对客户进行聚类分析。代码如下:

# coding=utf-8
#k-means
聚类
import pandasas pd
from sklearn.clusterimport KMeans
import matplotlib.pyplotas plt
import numpyas np
np.set_printoptions(
suppress=True)
inputfile=
'demo/tmp/zscoreddata.xls'
k=5
data=pd.read_excel(inputfile)
kmodel=KMeans(
n_clusters=k,n_jobs=1,random_state=1)#n_jobs指并行数
kmodel.fit(data)#开始训练模型
print kmodel.cluster_centers_#查看聚类中心
print kmodel.labels_#查看各类样本对应的类别
r1=pd.Series(kmodel.labels_).value_counts()
r2=pd.DataFrame(kmodel.cluster_centers_)
r=pd.concat([r2
,r1],axis=1)
r.columns=
list(data.columns)+['类别数目']
print r
#可视化
x=[1,2,3,4,5]
colors=[
'green','red','yellow','blue','black']
for iin range(5):
    plt.plot(x
,kmodel.cluster_centers_[i],label=('customer%d'%(i+1)),linewidth=2,color=colors[i],marker='o')
    plt.legend()
plt.xlabel(
'L R F M C')
plt.ylabel(
'values')
plt.show()

 

每个客户群体的个数:

客户群体3最多,1次之,客户群体5的数量最少仅有4232

可视化结果:


3.3.2 客户价值分析

客户群体1 [[ 0.48347647 -0.79941777  2.48236495 2.42356419  0.30943042]

客户群体2 [1.16037972 -0.37741377 -0.08700996 -0.09501774 -0.15844696]

客户群体3 [-0.7007739  -0.41516372 -0.16074548 -0.16047743-0.25671287]

客户群体4 [-0.31408336  1.68668163 -0.57385161 -0.53660513-0.17255233]

客户群体5 [ 0.05131968-0.00247696 -0.23102924 -0.23522627 2.1770189 ]]

L:会员入会时间距离窗口结束的月数

R:客户最近一次乘坐公司飞机距观测窗口结束的月数

F:客户在观测时间内乘坐公司飞机的次数

M:客户在观测时间内在公司累计的飞行公里数

C: 客户在观测时间内乘坐舱位所对应的折扣系数的平均值

 

从图中可看出:

(1) 客户群体1的优势特征为F,M,在R上的属性值最小,属于重要保持客户,他们是航空公司高价值的客户,是最为理想型的客户类型,对公司贡献率较大,但是占比较小,应把优先资源投放在它们身上,对他们进行差值化管理和一对一营销,提高客户忠诚度和满意度。

(2) 客户群体5的C较高,其他较低,属于重要发展客户,他们的L较短,是公司的潜在客户,虽然当前其对公司的价值不是太高但是发展潜力却很大,公司要促使其在本公司的消费和合作伙伴处的消费,提升客户价值,提升其满意度,提高其转向竞争对手的转移成本,使他们逐渐成为公司的忠诚客户。

(3) 客户群体2,L较高,其他较低,属于重要挽留客户。航空公司应根据这些客户的最近消费时间、消费次数的变化情况,推测客户消费的异动状况,对其重点联系,延长客户的生命周期。

(4) 客户群体4,R较高,其他较低,属于一般客户

(5) 客户群体3,属于低价值客户,一般客户和低价值客户可能只会在公司机票打折时才会乘坐。根据顾客群体数量可知,该公司的低价值客户群体占比最大。