航空公司客户价值分析
来源:互联网 发布:ipa手游模拟器mac 编辑:程序博客网 时间:2024/04/30 17:34
1.目标分析
根据客户数据和用户类别特征,对客户进行分类,从而针对不同用户制定相应的营销策略。
2.简单分析
(1)识别客户价值的指标:最近消费时间间隔(Recency)、消费频率(Frequency)、消费金额(Monetary)
金额的衡量指标模糊(如在长途低等舱位用户和短途高等舱位的用户选择问题中),将其分为飞行里程数(M)和折扣系数的平均值(C)
,再加上客户关系长度(客户入会时间)组成最终的衡量指标组。
(2)数据模型需要对根据指标进行分类,故考虑采用K-Means算法分类。
(3)实现步骤
1)数据获取:选取宽度为两年的时间段 数据,后续新增数据也加入形成历史数据。
2)数据探索分析和预处理
3)数据建模
4)模型测试
3.数据探索分析
目的:进行缺失值和异常值分析
查询数据中出现特殊情况有:票价为空值,票价最小值小于0,折扣率最小值为0、总飞行距离大于0;
#对数据进行分析,获取空值、最大值、最小值import pandas as pddatafile = "E:/MachineLearning-data/Aviation_Value_02/air_data.csv"#原始数据位置resultfile = "E:/MachineLearning-data/Aviation_Value_02/explore.xls"#结果数据位置data = pd.read_csv(datafile,encoding='utf-8')#读取数据,编码设置#percentiles为计算分位数表,默认为25%,50%,75%#include:包含所有数据#T:将数据进行转置,原始每一列的名称作为行元素,对每一列的属性进行三种值的统计explore = data.describe(percentiles=[],include='all').T#统计空值的数据个数,数据描述中count为非空值数据个数explore['null'] = len(data)-explore['count']#数据描述会给出相应值explore = explore[['null','max','min']]#对每一列进行命名explore.columns = [u'空值数',u'最大值',u'最小值']explore.to_excel(resultfile)
统计结果如:https://pan.baidu.com/s/1jHSGDJg所示
4 .数据预处理
(1)数据清洗
通过分析发现,数据中存在(缺失值),(票价最小值为0),(折扣率最小值不为0,但总飞行公里数大于0)的三类异常记录,由于数据量巨大,而此类数据所占比例较小,所以考虑将其丢弃。
import pandas as pd datafile = "E:/MachineLearning-data/Aviation_Value_02/air_data.csv"cleanfile = "E:/MachineLearning-data/Aviation_Value_02/data_clean.xls"data = pd.read_csv(datafile,encoding='utf-8')#对两年数据进行非空检测,一旦有一年为空,则认为为空data = data[data["SUM_YR_1"].notnull()*data["SUM_YR_2"].notnull()]index1 = data["SUM_YR_1"]!=0index2 = data["SUM_YR_2"]!=0index3 = (data['SEG_KM_SUM']==0)&(data['avg_discount']==0)#第一年票价为0或第二年票价为0,或者票价进行打折的数据data = data[index1|index2|index3]data.to_excel(cleanfile)
结果如:https://pan.baidu.com/s/1dFIrITj所示
(2)属性制约
所有属性中删除与其不相关、弱相关或冗余地属性
(3)数据变换
5个数据指标的取值范围差异较大,为了消除数量级数据带来的影响,考虑将其进行标准化处理。
import pandas as pddatafile = "E:/MachineLearning-data/Aviation_Value_02/zscoredata.xls"zscoredfile = "E:/MachineLearning-data/Aviation_Value_02/zscoredata1.xls"#数据标准化data = pd.read_excel(datafile)#输出矩阵为一行,求每一列标准化值data = (data-data.mean(axis=0))/(data.std(axis=0))#表头重命名data.columns=['Z'+i for i in data.columns]data.to_excel(zscoredfile,index=False)
标准化的数据如:https://pan.baidu.com/s/1c1EFIyG
5.模型建立
客户聚类:
import pandas as pdfrom sklearn.cluster import KMeansinputfile = "E:/MachineLearning-data/Aviation_Value_02/zscoredata1.xls"k = 5data = pd.read_excel(inputfile)#聚类为5类,并行数为4,最好和CPU数量一致kmodel = KMeans(n_clusters=k,n_jobs=4)kmodel.fit(data)#查看聚类中心kmodel.cluster_centers_#查看个样本类别kmodel.labels_
6.思考与总结
1)Scikit-Learn中KMeans函数中的初始化中心可以使用什么算法得到?默认是什么算法?
答:采用层次聚类输出k个簇,以簇的中心点作为k-means的初始化中心。
2)使用不同的预处理对数据进行变换,在使用K-Means算法进行分类,对比聚类结果,分析不同的数据预处理对K-Means算法的影响
备注:实验中用到的数据来源
链接:https://pan.baidu.com/s/1bo3S0hh 密码:pzke
- 航空公司客户价值分析
- 实战:航空公司客户价值分析
- 3航空公司客户价值分析
- Hadoop+Hive实现航空公司客户价值分析
- Python数据挖掘-航空公司客户价值分析
- 第7章 航空公司客户价值分析
- 数据挖掘实例(航空公司客户价值分析)
- 利用聚类分析航空公司客户价值
- 《Python数据分析与挖掘实战》上机实验2——航空公司客户价值分析
- 客户价值分析。[技术]
- 航空公司VIP客户查询
- 航空公司VIP客户查询
- 利用RFM模型做电商客户价值分析
- 利用RFM模型做电商客户价值分析
- 航空公司VIP客户查询【PAT】
- ESB案例分析:第 1 部分: 借助 ESB 整合航空公司商务体系,提升客户服务水平
- PAT5-06. 航空公司VIP客户查询
- PAT DS 506 航空公司VIP客户查询
- shiro备忘录一
- 11月29日 总结
- 使用html5技术实现文件的上传
- 2.服务注册中心(Eureka服务注册与发现)
- 再次看看 malloc free
- 航空公司客户价值分析
- Apple Catching
- oc入门
- 【C/C++】返回值与左值
- 基于R语言构建的电影评分预测模型
- 二哥的OJ 1251-final
- 曾经误入传销我和linux系统结下缘分
- 学习Spring Cloud第十一课(Feign的简介及基础使用)
- 菜鸟学习历程【15-4】冒泡排序