数据分析实战-利用K-Means进行航空公司客户价值识别
项目名称: 航空公司客户价值识别
项目地址 https://git.nowcoder.com/8256312/customer_value_recognition
系统简介:
1.挖掘目标
- 根据客户信息,对客户进行分类。
- 针对不同类型客户进行特征提取,分析不同类型客户的价值。
- 采取个性化服务,根据客户类型,制定相应营销策略。
2.数据说明
属性名称 | 说明 |
---|---|
会员卡号 | |
入会时间 办理会员卡的开始的时间 | |
第一次飞行日期 | |
性别 | |
会员卡级别 | |
工作地城市 | |
工作地所在省份 | |
工作地所在国家 | |
年龄 | |
观测窗口的结束时间 | 选取样本的时间宽度,距离现在最近的时间。 |
飞行次数 | 频数 |
观测窗口总基本积分 | 航空公里的里程就相当于积分,积累一定分数可以兑换奖品和免费里程。 |
第一年精英资格积分 | |
第二年精英资格积分 | |
第一年总票价 | |
第二年总票价 | |
观测窗口总飞行公里数 | |
观测窗口总加权飞行公里数(Σ舱位折扣×航段距离) | |
末次飞行日期 | 最后一次飞行时间 |
观测窗口季度平均飞行次数 | |
观测窗口季度平均基本积分累积 | |
观察窗口内第一次乘机时间至MAX(观察窗口始端,入会时间)时长 | |
最后一次乘机时间至观察窗口末端时长 | |
平均乘机时间间隔 | |
观察窗口内最大乘机间隔 | |
观测窗口中第1年其他积分(合作伙伴、促销、外航转入等) | |
观测窗口中第2年其他积分(合作伙伴、促销、外航转入等) | |
积分兑换次数 | |
平均折扣率 | |
第1年乘机次数 | |
第2年乘机次数 | |
第1年里程积分 | |
第2年里程积分 | |
观测窗口总精英积分 | |
观测窗口中其他积分(合作伙伴、促销、外航转入等) | |
非乘机积分总和 | |
第2年非乘机积分总和 | |
总累计积分 | |
第2年观测窗口总累计积分 | |
第2年的乘机次数比率 | |
第1年的乘机次数比率 | |
第1年里程积分占最近两年积分比例 | |
第2年里程积分占最近两年积分比例 | |
非乘机的积分变动次数 |
3.数据预处理
- 数据预分析
对原始数据进行预分析,主要排查缺失值和异常值。分析原始数据的缺失值和异常值,根据分析结果,在数据处理阶段中进行相应处理。例如,属性值缺失,票价为0等。
统计每个属性的缺失值(空值)个数,并查找最大值和最小值,如下表。
缺失值个数 | 最大值 | 最小值 | |
---|---|---|---|
MEMBER_NO | 0 | 62988 | 1 |
FFP_TIER | 0 | 6 | 4 |
AGE | 420 | 110 | 6 |
FLIGHT_COUNT | 0 | 213 | 2 |
BP_SUM | 0 | 505308 | 0 |
EP_SUM_YR_1 | 0 | 0 | 0 |
EP_SUM_YR_2 | 0 | 74460 | 0 |
SUM_YR_1 | 551 | 239560 | 0 |
SUM_YR_2 | 138 | 234188 | 0 |
SEG_KM_SUM | 0 | 580717 | 368 |
WEIGHTED_SEG_KM | 0 | 558440.1 | 0 |
AVG_FLIGHT_COUNT | 0 | 26.625 | 0.25 |
AVG_BP_SUM | 0 | 63163.5 | 0 |
BEGIN_TO_FIRST | 0 | 729 | 0 |
LAST_TO_END | 0 | 731 | 1 |
AVG_INTERVAL | 0 | 728 | 0 |
MAX_INTERVAL | 0 | 728 | 0 |
ADD_POINTS_SUM_YR_1 | 0 | 600000 | 0 |
ADD_POINTS_SUM_YR_2 | 0 | 728282 | 0 |
EXCHANGE_COUNT | 0 | 46 | 0 |
avg_discount | 0 | 1.5 | 0 |
P1Y_Flight_Count | 0 | 118 | 0 |
L1Y_Flight_Count | 0 | 111 | 0 |
P1Y_BP_SUM | 0 | 246197 | 0 |
L1Y_BP_SUM | 0 | 259111 | 0 |
EP_SUM | 0 | 74460 | 0 |
ADD_Point_SUM | 0 | 984938 | 0 |
Eli_Add_Point_Sum | 0 | 984938 | 0 |
L1Y_ELi_Add_Points | 0 | 728282 | 0 |
Points_Sum | 0 | 985572 | 0 |
L1Y_Points_Sum | 0 | 728282 | 0 |
Ration_L1Y_Flight_Count | 0 | 1 | 0 |
Ration_P1Y_Flight_Count | 0 | 1 | 0 |
Ration_P1Y_BPS | 0 | 0.999989 | 0 |
Ration_L1Y_BPS | 0 | 0.999993 | 0 |
Point_NotFlight | 0 | 140 | 0 |
数据清洗
清洗条件:- 票价为空
- 票价为0,平均折扣率不为0,总飞行公里数大于0
处理方法:满足清洗条件的一行数据全部丢弃。
数据标准化
属性规约
客户价值LRFMC模型:- L——会员入会时间距观测窗口结束的月数
- R——客户最后一次乘坐飞机距观测窗口结束的月数
- F——客户在观测窗口内乘坐飞机的次数
- M——客户在观测窗口内的总飞行里程
- C——客户在观测窗口内乘坐的舱位对应折扣系数的平均值
根据模型,选择与LRFMC相关的属性,删除与之不相关的属性,保存属性规约后的数据集。
属性构造
构造LRFMC指标:- L=LOAD_TIME - FFP_DATE(观测窗口的结束时间 - 入会时间)
- R=LAST_TO_END(最后一次乘坐飞机距观测窗口结束的时长)
- F=FLIGHT_COUNT(观测窗口内的飞行次数)
- M=SEG_KM_SUM(观测窗口内的总飞行里程)
- C=AVG_DISCOUNT(平均折扣率)
注:LOAD_TIME和FFP_DATE均为日期,LAST_TO_END单位为日。
数据标准化
LRFMC指标取值范围如下表。
为不同指标数量级不同所带来的影响,对数据进行标准差标准化。标准化后的部分数据集如下表。
ZL | ZR | ZF | ZM | ZC |
---|---|---|---|---|
1.689882 | 0.140299 | -0.63579 | 0.068794 | -0.33719 |
1.689882 | -0.32244 | 0.852453 | 0.843848 | -0.55361 |
1.681743 | -0.48771 | -0.21058 | 0.158569 | -1.09468 |
1.534185 | -0.78518 | 0.00203 | 0.273091 | -1.14879 |
0.890167 | -0.42656 | -0.63579 | -0.68517 | 1.231909 |
-0.23262 | -0.69098 | -0.63579 | -0.6039 | -0.39129 |
-0.49695 | 1.996225 | -0.70666 | -0.66175 | -1.31111 |
-0.8685 | -0.26791 | -0.28144 | -0.26242 | 3.396178 |
-1.0748 | 0.024614 | -0.42318 | -0.52092 | 0.149775 |
构建模型
- 客户聚类
利用K-Means聚类算法对客户数据进行客户分群,聚成五类。客户聚类结果如下表。
ZL | ZR | ZF | ZM | ZC | 类别数目 | |
---|---|---|---|---|---|---|
0 | -0.70093 | -0.41656 | -0.15805 | -0.157 | -0.27236 | 24382 |
1 | 1.163297 | -0.37798 | -0.08549 | -0.09327 | -0.16087 | 15663 |
2 | -0.3104 | 1.692093 | -0.57473 | -0.53671 | -0.1833 | 12019 |
3 | 0.485654 | -0.7999 | 2.483507 | 2.424729 | 0.314122 | 5337 |
4 | -0.0014 | 0.001522 | -0.24896 | -0.25895 | 2.071229 | 4643 |
详细输出每一个客户所属类别,部分结果如下表。
ZL | ZR | ZF | ZM | ZC | 聚类类别 | |
---|---|---|---|---|---|---|
0 | 1.689882 | 0.140299 | -0.63579 | 0.068794 | -0.33719 | 1 |
1 | 1.689882 | -0.32244 | 0.852453 | 0.843848 | -0.55361 | 1 |
2 | 1.681743 | -0.48771 | -0.21058 | 0.158569 | -1.09468 | 1 |
3 | 1.534185 | -0.78518 | 0.00203 | 0.273091 | -1.14879 | 1 |
4 | 0.890167 | -0.42656 | -0.63579 | -0.68517 | 1.231909 | 4 |
5 | -0.23262 | -0.69098 | -0.63579 | -0.6039 | -0.39129 | 0 |
6 | -0.49695 | 1.996225 | -0.70666 | -0.66175 | -1.31111 | 2 |
7 | -0.8685 | -0.26791 | -0.28144 | -0.26242 | 3.396178 | 4 |
8 | -1.0748 | 0.024614 | -0.42318 | -0.52092 | 0.149775 | 0 |
9 | 1.90715 | -0.88434 | 2.978512 | 2.130285 | 0.366201 | 3 |
10 | 0.477571 | -0.56538 | 0.852453 | -0.06782 | -0.66183 | 1 |
- 客户价值分析
依据聚类结果,对不同类型客户进行特征提取。从表中可以看出,客户群0的L、C属性均为最小,是最大客户群。客户群1的L属性为最大,属于大客户群。客户群2的R属性为最大,F、M属性均为最小,属于大客户群。客户群3的F、M属性均为最大,R属性为最小,属于小客户群。客户群4的C属性为最大,是最小客户群。
画出客户群体数目柱状图,如下。
画出客户群体特征雷达图,如下。
通过比较不同客户群的各指标在群间的大小,对各客户群进行评价分析。各项指标中,R指标小为优,L、F、M、C指标大为优。则可以得到不同客户群的优势和劣势,得到下表。
数目 | 优势 | 劣势 |
---|---|---|
客户群0 | 大 | L C |
客户群1 | 较大 | L |
客户群2 | 中 | R F M |
客户群3 | 小 | R F M |
客户群4 | 小 | C |
由表中可以看出,客户群0数量大,所乘航班折扣率很低,加入会员时间短,这类客户一般在机票打折时,才会乘坐公司航班,属于一般客户。客户群1数量较大,加入会员时间很长,但乘坐频率变小,属于重要挽留客户。客户群2数量中,乘坐次数很少,乘坐里程很小,很长时间没有乘坐公司航班,属于低价值客户。客户群3数量小,乘坐次数很多,乘坐里程很大,所乘航班折扣率较高,属于重要保持客户。客户群4数量小,所乘航班折扣率很高,属于重要发展客户。
客户价值排名:重要保持客户(3)>重要发展客户(4)>重要挽留客户(1)>一般客户(0),客户群2是低价值客户。
模型应用
- 对于数量极少的客户群3,进行一对一精准营销。
- 对于数量极少的客户群4,实行里程数兑换机票。
- 对于数量较大的客户群1,提供会员升级提醒服务。
- 积极和非航空类企业合作,顾客在合作企业消费也可获得本航空公司奖励,增加客户与公司的联系。
欢迎大家参与牛客项目平台活动!助力项目还能参与抽奖~
原创区:https://www.nowcoder.com/discuss/210455
搬运区:https://www.nowcoder.com/discuss/210457