一.引言

本篇文章是根据航空公司提供的乘客个人信息,通过建立合理的客户价值评估模型,对客户进行分群,比较分析不同客户群的特点和价值,来指定相应的营销策略,从而减少客户流失,挖掘出潜在客户,实现盈利。在这里是用K-
means聚类方法来对乘客进行分群的。

源数据部分如下图所示:

各属性解释如下:

![](https://img-
blog.csdn.net/2018051615505298?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjAzNjY0MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

二.数据探索

通过调用describe()函数对数据进行一个大致的了解,主要是查看缺失值和异常值。通过观察发现,存在票价为零,折扣率为0,总飞行数为0的情况。通过简单处理,我输出了一个包含个属性空值个数,最大值,最小值数据的表格。部分如下:

对应代码:

    import pandas as pddatafile='D:/航空公司客户价值分析/data/air_data2.csv'resultfile='D:/航空公司客户价值分析/explore.xls'data=pd.read_csv(datafile)explore=data.describe().T#对数据的统计性描述,T是我进行了转置explore['null']=len(data)-explore['count']df=explore[['max','min','null']]df.to_excel(resultfile)
[/code]三.数据预处理1.数据清洗通过上一步的数据探索分析发现数据中存在缺失值,而这一部分的比例相对较小,故直接删掉。具体处理如下:* 丢弃票价为空的记录 * 丢弃票价为0,平均折扣率不为0且总飞行公里数大于零的记录。 2.属性规约与数据变换原始数据中的属性太多。而评估航空公司客户价值通常根据LRFMC模型,与其相关的只有6个属性即,FFP_DATE、LOAD_TIME、FLIGHT_COUNT、AVG_DISCOUNT、SEG_KM_SUM、LAST_TO_END。  简单介绍下LRFMC模型,即客户关系长度L、消费时间间隔R、消费频率F、飞行里程M和折扣系数的平均值C。这五个指标为评价客户价值的重要因素,而上面6个属性与这5个指标的关系如下:  * L=LOAD_TIME-FFP_DATE 会员入会时间距观测窗口结束的月数=观测窗口结束的时间-入会时间* R=LAST_TO_END 客户最近一次乘坐公司飞机距观测窗口结束的月数=最后一次乘机时间至观察窗口末端时长[单位:月]  * F=FLIGHT_COUNT 客户在观测窗口内乘坐公司飞机的次数=观测窗口的飞行次数[单位:次]  * M=SEG_KM_SUM 客户在观测时间内在公司累计的飞行里程=观测窗口的总飞行公里数[单位:公里]  * C=AVG_DISCOUNT 客户在观测时间内乘坐舱位所对应的折扣系数的平均值=平均折扣率提取了相关的数据后,发现这5个指标的取值范围相差较大所以需对数据进行标准化处理。代码如下:```codeimport pandas as pdimport datetime#数据清洗#删除空值,异常值datafile='D:/航空公司客户价值分析/data/air_data2.csv'resultfile='D:/航空公司客户价值分析/data_cleaned.csv'data=pd.read_csv(datafile)data=data[data['SUM_YR_1'].notnull()&data['SUM_YR_2'].notnull()]#剔除掉票价为空的#保留票价非零的或者折扣率和飞行公里数同时为0的index1=data['SUM_YR_1']!=0index2=data['SUM_YR_2']!=0index3=(data['SEG_KM_SUM'])==0&(data['avg_discount']==0)data=data[index1|index2|index3]data.to_csv(resultfile,encoding = 'utf_8_sig')#输出为utf8格式,不然excel打开中文会乱码#属性规约与数据变换#根据航空公司的LRFMC价值指标,删除掉无关属性d1,d2=[],[]for x in data['LOAD_TIME']:d1.append(datetime.datetime.strptime(x,'%Y/%m/%d'))for y in data['FFP_DATE']:d2.append(datetime.datetime.strptime(y,'%Y/%m/%d'))d3=[d1[i]-d2[i] for i in range(len(d1))]data['L']=[round((x.days/30),2) for x in d3]data2=data[['L','LAST_TO_END','FLIGHT_COUNT','SEG_KM_SUM','avg_discount']]data2.columns=['L','R','F','M','C']data2.to_csv('D:/航空公司客户价值分析/zscoredata.csv',encoding = 'utf_8_sig',index=False)
[/code]输出为:![](https://img-blog.csdn.net/20180516164553437)  将以上数据进行零—均值标准化:```codeimport pandas as pddatafile='D:/航空公司客户价值分析/zscoredata.csv'resultfile='D:/航空公司客户价值分析/standard_data.csv'data=pd.read_csv(datafile)data=(data-data.mean(axis=0))/(data.std(axis=0))data.columns=['Z'+i for i in data.columns]data.to_csv(resultfile,encoding = 'utf_8_sig',index=False)
[/code]此时输出为:![](https://img-blog.csdn.net/20180516164816890)  四.模型构建客户价值分析模型由两个部分构成。第一个部分是根据航空公司客户5个指标,对客户进行聚类分群,第二部分是对分群后的客户群进行特征分析,并对客户群的客户价值进行排名。  1.K-Means聚类算法对客户数据进行分群,k=5,即把客户分成5类。k-means位于scikit-Learn库中,需要先安装这个库。```codeimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.externals import joblibfrom sklearn.cluster import KMeansif __name__=='__main__':#防止模块范围内的代码在子进程中被重新执行,因为Windows中没有fork()函数datafile='D:/航空公司客户价值分析/standard_data.csv'resultfile='D:/航空公司客户价值分析/kmeans.csv'k=5data=pd.read_csv(datafile)#调用K-Means方法进行聚类分析kmodel=KMeans(n_clusters=k,n_jobs=4)#n_jobs是并行数,一般赋值为电脑的CPU数。# #save model# joblib.dump(kmodel,'kmeans.model',compress=3)# #load model to model# model=joblib.load('kmeans.model')kmodel.fit(data)r1=pd.Series(kmodel.labels_).value_counts()r2=pd.DataFrame(kmodel.cluster_centers_)r3=pd.Series(['客户群1','客户群2','客户群3','客户群4','客户群5',])r=pd.concat([r3,r1,r2],axis=1)r.columns=['聚类类别','聚类个数']+list(data.columns)r.to_csv(resultfile,encoding = 'utf_8_sig',index=False)
[/code]输出聚类分析结果:![](https://img-blog.csdn.net/20180516173351260)  上图可以看到各个类群的客户个数,及聚类中心。2.客户价值分析针对上面的聚类结果,对客户进行特征分析,绘制雷达图。```code#绘制雷达图labels = np.array(list(data.columns))#标签dataLenth = 5#数据个数r4=r2.Tr4.columns=list(data.columns)fig = plt.figure()y=[]for x in list(data.columns):dt= r4[x]dt=np.concatenate((dt,[dt[0]]))y.append(dt)ax = fig.add_subplot(111, polar=True)angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)angles = np.concatenate((angles, [angles[0]]))ax.plot(angles, y[0], 'b-', linewidth=2)ax.plot(angles, y[1], 'r-', linewidth=2)ax.plot(angles, y[2], 'g-', linewidth=2)ax.plot(angles, y[3], 'y-', linewidth=2)ax.plot(angles, y[4], 'm-', linewidth=2)plt.rcParams['font.sans-serif']=['SimHei'] ax.legend(r3,loc=1)ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")ax.set_title("matplotlib雷达图", va='bottom', fontproperties="SimHei")ax.grid(True)plt.show()
[/code]![](https://img-blog.csdn.net/20180516174923537)由上图可以很清晰的看到每个客户群的指标情况,将每个客户群的优势特征,劣势特征总结如下:优势特征:客户群1:R客户群2:F、M、L客户群3:L客户群4:C客户群5:无劣势特征:客户群1:F、M客户群2:R客户群3:R、F、M、C客户群4:F、M客户群5:R、L、C基于LRFMC模型的具体含义,我们可以对这5个客户群进行价值排名。同时,将这5个客户群重新定义为五个等级的客户类别:重要保持客户,重要挽留客户,重要发展客户,一般客户,低价值客户。* 重要保持客户:这类客户平均折扣率(C)和入会员时间(L)都很高(入会员时间越长,会员级别越高,折扣越大),最近乘坐过本航班时间间隔(R)低,乘坐的次数(F)或(M)高。说明他们经常乘坐飞机,且有一定经济实力,是航空公司的高价值 客户。对应客户群2。 * 重要发展客户:这类客户平均折扣率高(C),最近乘坐过本航班时间间隔(R)短,但是乘坐的次数(F)和(M)都很低。说明这些乘客刚入会员不久,所以乘坐飞机次数少,是重要发展客户,对应客户群4。 * 重要挽留客户:这类客户入会时间长(L),最近乘坐过本航班时间间隔(R)较长,里程数和乘坐次数都变低,为重要挽留客户。对应客户群3 * 一般与低价值客户:这类客户乘坐时间间隔长(R)或乘坐次数(F)和总里程(M)低,平均折扣也很低。对应客户群5和客户群1. 针对以上不同的价值客户群,航空公司应当及时出台相应的营销策略,针对不同的客户群提供相应的产品和服务,提升客户价值,维持和稳定重要客户,挽留高价值客户的流失。价值排名如下:![](https://img-blog.csdn.net/20180516185322417)  因为乘客情况是实时变动的,所以该模型并不稳定,应根据实际情况,定期更新数据,对新增的客户信息进行聚类分析,重新训练模型进行调整。  ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608151750993.gif)

python数据分析之航空公司客户价值分析相关推荐

  1. 【毕业设计】大数据分析的航空公司客户价值分析 - python

    文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...

  2. 毕业设计之 ---基于大数据分析的航空公司客户价值分析

    文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...

  3. python客户价值分析_Python数据分析与应用航空公司客户价值分析.ppt

    Python数据分析与应用航空公司客户价值分析.ppt 大数据,成就未来 * 大数据挖掘专家 * 大数据挖掘专家 大数据,成就未来 航空公司客户价值分析 * 目录 分析航空公司现状 1. 行业内竞争 ...

  4. 《Python数据分析与挖掘实战》第7章——航空公司客户价值分析(kmeans)

    本文是基于<Python数据分析与挖掘实战>的实战部分的第七章的数据--<航空公司客户价值分析>做的分析. 旨在补充原文中的细节代码,并给出文中涉及到的内容的完整代码. 1)在 ...

  5. 数据分析与挖掘实战-航空公司客户价值分析

    航空公司客户价值分析 项目背景 信息时代的到来注定营销焦点从产品中心转到了用户中心,客户关系管理成为企业的核心问题. 客户关系管理的关键问题则是客户分类,通过分类区分客户价值的有无和高低,针对不同类别 ...

  6. Python数据挖掘:利用聚类算法进行航空公司客户价值分析

    无小意丶 个人博客地址:无小意 知乎主页:无小意丶 公众号: 数据路(shuju_lu) 刚刚开始写博客,希望能保持关注,会继续努力. 以数据相关为主,互联网为辅进行文章发布. 本文是<Pyth ...

  7. 航空公司客户价值分析python实战

    航空公司客户价值分析(K_Means聚类分析) 最近在看黄红梅.张良均老师主编的<Python数据分析与应用>,拿书里的案例练练手. 本案例将使用航空公司客户数据,结合RFM模型,采用K_ ...

  8. python航空公司客户价值分析

    1.航空公司部分数据特征说明及LRFMC模型介绍及K-Means聚类算法介绍 2.开始数据分析 - 数据探索 Part Ⅰ:数据预处理 数据清洗 数据集成 数据归约 数据变换 Part Ⅱ:建模分析和 ...

  9. Python数据挖掘-RFM模型K-means聚类分析-航空公司客户价值分析

    使用教材:<Python数据分析与挖掘实战> 模型:RFM模型 算法:K-means聚类:其他方法还用到了层次聚类 数据:需要数据的可以评论里call. 内容: (1)案例: 航空公司客户 ...

  10. 数据分析实战:航空公司客户价值分析

    一.背景目标 通过对航空公司客户数据分析,对客户进行分类: 比较不同客户的客户价值,并制定不同的服务和营销策略 二.数据探索分析 2.1 数据概况 数据时间范围: 2012年4月1日至2014年3月3 ...

最新文章

  1. awt简单应用 panel面板
  2. elasticSearch6源码分析(12)DiscoveryModule
  3. elk6.2集群搭建,cerebro集群管理
  4. python批量访问网页保存结果_Python检测批量URL状态,并将返回正常的URL保存文件...
  5. java5错误_Error:java: 错误: 不支持发行版本 5
  6. cuSPARSE库:(十七)cusparseStatus_t 返回信息
  7. PC机中各类存储器的逻辑连接情况
  8. IINA+ :在IINA播放器上观看直播
  9. cas 4.0单点登录服务端部署
  10. 【STM32】 SG90舵机
  11. COCO数据集合解析
  12. sql 查看某个日期字段对应某天的数据
  13. angr符号执行用例解析——0ctf_momo_3
  14. Word排版(小计)
  15. vim命令模式和底线_VIM 底线命令模式
  16. 回归A股成“网红”,中芯国际20年芯片发展史
  17. phpStrom连接MySQL数据库
  18. 销售技巧之绕过前台的31法
  19. python-nmap使用方法(python3)
  20. Android消息推送

热门文章

  1. 回溯法 子集和问题
  2. 程序员也要学英语——限定词、形容词和副词
  3. 产品研发流程的四个里程碑
  4. 信号与系统——抽样信号的傅里叶变换
  5. pandas抽样函数sample
  6. iSCSI客户端登陆认证失败
  7. java链接Kepserver报错误码[0x8001FFFF]
  8. GitHub上传代码及在线demo演示
  9. 安卓开发 虚拟机启动失败
  10. 组合数(卢卡斯定理)