首页 > 代码库 > 航空公司客户价值分析

航空公司客户价值分析

数据集:http://pan.baidu.com/s/1clfQY6

挖掘目标

(1)   根据航空公司客户数据对客户进行分类。

(2)   对不同的客户类别进行特征分析,比价不同类客户的客户价值。

(3)   对不同价值的客户类别提供个性化服务,制定相应的营销策略。

分析方法与过程

识别客户价值应用最广泛的模型指标:最近消费时间间隔,消费频率,消费金额(RFM模型)

本案例考虑项目指标(LRFMC模型):

(1)   客户关系长度L:航空公司会员时间的长短。

(2)   是消费时间间隔R

(3)   消费频率F

(4)   飞行里程M

(5)   折扣系数的平均值C。

观测窗口:以过去某个时间段为结束时间,某一时间长度作为宽度,得到历史时间范围内的一个时间段。

LRFMC模型指标含义:

(1)   L:会员入会时间距观测窗口结束的月数。

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

(3)   F:客户在观测窗口内乘坐公司飞机的次数。

(4)   M:客户在观测窗口内累计的飞行里程碑。

(5)   C:客户在观测窗口内乘坐仓位所对应的折扣系数的平均值。

方法:本案例采用聚类的方法,通过对航空公司客户价值的LRFMC模型的五个指标进行K-Means聚类,识别客户价值。

总体流程:数据抽取->数据预处理(数据清洗(缺失值填补舍弃等),属性规约(提取需要特征数据),数据变换(转换适当格式))->建模->结果

代码实践

1. 数据抽取

以2014-03-31为结束时间,选取宽度为两年的时间段为分析窗口,抽取观测窗口内有乘机记录的所有客户的详细数据形成历史数据。

抽取2012-04-01至2014-03-31所有乘客的详细数据,总共62988条,44个属性。

2. 数据探索分析

查找每列属性观测值个数,最大值,最小值。完整代码如下:

 1 # -*- coding: UTF-8 -*-
 2 #对数据进行基本的探索
 3 #返回缺失值个数以及最大值最小值
 4 
 5 import pandas as pd
 6 
 7 datafile=air_data.csv#航空原始数据,第一行为属性标签
 8 
 9 resultfile=explore.xls#数据探索结果表
10 
11 data=http://www.mamicode.com/pd.read_csv(datafile,encoding=utf-8) #读取原始数据,指定UTF-8编码(需要用文本编辑器将数据转换为UTF-8)
12 explore=data.describe(percentiles=[],include=all).T #.T对数据进行转置,方便查阅,percentiles是指定计算多少的分位数(如1/4分位数,中位数)
13 ‘‘‘describe()函数自动计算字段count(非空值),unique(唯一值),top(频数最高者),freq(最高频数),std(方差),min(最小值),
14 50%(中位数),max(最大值)‘‘‘
15 
16 explore[null]=len(data)-explore[count]  #describe()函数自动计算非空值,需要手动计算空值,每个属性空值数
17 explore=explore[[null,max,min]]
18 explore.columns=[u空值数,u最大值,u最小值]  #表头重命名
19 
20 explore.to_excel(resultfile)    #导出结果

效果如下:

技术分享

 

3.数据预处理

数据清洗,属性规约,数据变换

3.1数据清洗

通过数据探索分析,发现数据中存在缺失值,由于原始数据量大,这类数据量少,对其进行丢弃处理。

(1)丢弃票价为空的记录。

(2)丢弃票价为0、平均折扣率不为0、总飞行公里数等于0的记录。

满足清洗条件的一行数据全部丢弃,使用Pandas对满足清洗条件的数据进行丢弃。

完整代码如下:

 1 # -*- coding: UTF-8 -*-
 2 # 数据清洗,过滤掉不符合规则的数据
 3 
 4 import pandas as pd
 5 
 6 datafile = air_data.csv  # 航空原始数据,第一行为属性标签
 7 cleanedfile = data_cleaned.scv  # 数据清洗后保存文件
 8 
 9 data = http://www.mamicode.com/pd.read_csv(datafile, encoding=utf-8)  # 读取原始数据,指定UTF-8编码
10 data = http://www.mamicode.com/data[data[SUM_YR_1].notnull() *
11             data[SUM_YR_2].notnull()]  # 票价非空值才保留
12 
13 # 只保留票价非零的,或者平均折扣率与总飞行公里数同时为0的记录
14 index1 = data[SUM_YR_1] != 0  # 属性下面返回True或者False
15 index2 = data[SUM_YR_2] != 0
16 index3 = (data[SEG_KM_SUM] == 0) & (data[avg_discount] == 0)  # 该规则是与‘
17 
18 data = http://www.mamicode.com/data[index1 | index2 | index3]
19 
20 data.to_csv(cleanedfile, encoding=utf-8)  # 导出实验结果

 

3.2属性规约
根据我们建立的LRFMC模型,提取这五个特征,删除语气不相关的属性。
3.3数据变换

将数据变换成‘适当的’格式。通过数据变换来构造这个五个特征。

计算方式如下:

(1) L=LOAD_TIME-FFP_DATE

会员入会时间距观测窗口结束的月数=观测窗口的结束时间-入会时间[单位:月]

(2) R=LAST_TO_END

客户最近一次乘坐公司飞机距观测窗口结束的月数=最后一次乘机时间至观测窗口末端时长[单位:月]

(3)F=FLIGHT_COUNT

客户在观测窗口内乘坐公司飞机的次数=观测窗口飞行次数[单位:次]

(4)M=SEG_KM_SUM

客户在观测时间内在公司累计的飞行里程=观测窗口的总飞行里数[单位:公里]

(5)C=AVG_DISCOUNT

客户在观测时间内乘坐舱位所对应的折扣系数的平均值=平均折扣率[单位:无]

提取5个特征后生成文件:zscoredata.xls

技术分享

 技术分享

 

发现5个特征取值范围差异较大,现对数据进行标准化

 1 # -*- coding: UTF-8 -*-
 2 # 对数据进行基本的探索
 3 # 返回缺失值个数以及最大值最小值
 4 
 5 import pandas as pd
 6 
 7 datafile = zscoredata.xls  # 航空原始数据,第一行为属性标签
 8 zscoredfile = zscoreddata.xls  # 标准化后的数据储存路径
 9 
10 # 标准化处理
11 data =http://www.mamicode.com/ pd.read_excel(datafile)
12 data = http://www.mamicode.com/(data - data.mean(axis=0)) / (data.std(axis=0))  # 标准化变换
13 
14 data.columns = [Z + i for i in data.columns]  # 表头重命名
15 
16 data.to_excel(zscoredfile, index=False)  # 写入数据,False不要序列

技术分享

技术分享

4.构建模型

客户价值分析模型包括两个:

(1)   根据5个特征对客户进行聚类分群。

(2)   对每个客户群进行特征分析,分析客户价值,并对每个客户进行排名。

完整代码如下:

 1 #-*- coding: utf-8 -*-
 2 #K-Means聚类算法
 3 
 4 import pandas as pd
 5 from sklearn.cluster import KMeans #导入K均值聚类算法
 6 
 7 inputfile = zscoreddata.xls #待聚类的数据文件
 8 k = 5                       #需要进行的聚类类别数
 9 
10 #读取数据并进行聚类分析
11 data = http://www.mamicode.com/pd.read_excel(inputfile) #读取数据
12 
13 #调用k-means算法,进行聚类分析
14 if __name__==__main__:
15     kmodel = KMeans(n_clusters = k, n_jobs = 8) #n_jobs是并行数,一般等于CPU数较好
16     kmodel.fit(data) #训练模型
17 
18     kmodel.cluster_centers_ #查看聚类中心
19     kmodel.labels_ #查看各样本对应的类别

客户价值分析:

根据聚类结果构造客户群特征分析图。

根据特征值大小总结出每个群体优势特征和弱势特征,将客户群分为四类:

     a重要保持客户:平均折扣率高,乘坐次数或里程高,最近坐过本公司航班。

     b重要发展客户:平均折扣率较高,乘坐次数和里程较低。

     c重要挽留客户:平均折扣率,乘坐次数或者里程较高,较长时间没坐本公司航班。

     d一般与低价值客户:折扣率低,较长时间未做本公司航班,乘坐次数或里程较低,入会时长短。

 

 

 

 

 

 

航空公司客户价值分析