利用聚类分析航空公司客户价值

来源:互联网 发布:60年代魔兽数据库 编辑:程序博客网 时间:2024/05/01 02:07

目标
客户分类,比较分析不同类别客户价值,制定相应的营销策略

思路与流程
分析的目标是将航空公司客户分类,属于无监督学习,故采用聚类挖掘模型
确定模型之后,需要选择相应的指标,这里指标的选择需结合业务来确定,能够反映客户的关键特征
确定模型和指标之后,可能需要对数据进行一定的探索分析,预处理等,以适应挖掘的需要

数据抽取 - 数据探索分析 - 数据预处理 - 构建模型及模型应用


一、数据抽取

首先观察一下原始数据的基本信息

这里写图片描述

这里写图片描述

可以看出,原始数据大小为 (62988行, 44列),并且存在空值,存在不同的数据类型

二、数据探索分析

这里着重分析数据的质量,特别是空值数量,极值的数量

这里写图片描述

通过观察可以看出,原始数据中存在票价为空值、票价为0、折扣率最小值为0、飞行公里数大于0的记录。票价为空值的原因可能是乘客不存在登机记录,其他数据可能是乘客乘坐0折机票或积分兑换造成

三、数据预处理

1 数据清洗

通过数据的探索分析发现数据中存在票价为空值、票价为0、折扣率最小值为0、飞行公里数大于0的记录。由于这块的数据所占比重较小,故采用丢弃的处理办法

01 删除空值
02 仅保留票价不为0,或折扣率和总飞行公里数同时为0的记录

这里写图片描述

2 属性规约

航空公司的客户价值模型为LRFMC,即入会时间、距最近乘机月数、飞行次数,飞行里程,平均折扣。原始数据中与LRFMC指标相关的6个属性为 FFP_DATE、 LOAD_TIME、 FLIGHT_COUNT、 avg_discount、 SEG_KM_SUM、 LAST_TO_END

我们需要在以上6个属性的基础之上,提取出LRFMC指标
L = LOAD_TIME - FFP_DATE (属性需转换为时间格式)
R = LAST_TO_END
F = FLIGHT_COUNT
M = SEG_KM_SUM
C = avg_discount

这里写图片描述

3 数据变换

这里数据变换的方法是标准差标准化。这样做是因为挖掘模型为聚类模型,是基于距离的算法。数据集中各属性量纲不同,数据大小差别太大,若不处理会影响挖掘的效果

这里写图片描述

下面是经过标准差标准化后的数据集

这里写图片描述

至此,数据预处理完成,下一步进行数据挖掘

四、构建模型及模型应用

1 客户聚类
采用KMeans 聚类算法对客户数据进行客户分群,分为5类
代码如下:

from sklearn.cluster import KMeansmodel = KMeans(n_jobs = 4, n_clusters = 5)model.fit(zs_d)center_d = pd.concat([pd.Series(model.labels_).value_counts(), pd.DataFrame(model.cluster_centers_)], axis = 1)center_d['客户类别'] = ['客户群1','客户群2','客户群3','客户群4','客户群5']center_d.columns = ['计数'] + list(target_d.columns)+['客户类别']center_d = center_d[['客户类别','计数','L','R','F','M','C']]

聚类结果如下:

这里写图片描述

2 客户价值分析
针对聚类结果,对各客户群进行特征的分析。这里采用雷达图,可以更为直观的分析比较各个特征

雷达图代码如下:

from pyecharts import Radarv1 = [list(radar_d.loc['客户群1',:])]v2 = [list(radar_d.loc['客户群2',:])]v3 = [list(radar_d.loc['客户群3',:])]v4 = [list(radar_d.loc['客户群4',:])]v5 = [list(radar_d.loc['客户群5',:])]c_schema= [{"name": "L", "max": 2.5, "min": -1},           {"name": "R", "max": 2.5, "min": -1},           {"name": "F", "max": 2.5, "min": -1},           {"name": "M", "max": 2.5, "min": -1},           {"name": "C", "max": 2.5, "min": -1}]radar = Radar()radar.config(c_schema=c_schema, shape='circle')radar.add('客户群1', v1, item_color="#ff0000", symbol=None)radar.add('客户群2', v2, item_color="#477725", symbol=None)radar.add('客户群3', v3, item_color="#66ff00", symbol=None)radar.add('客户群4', v4, item_color="#66ffff", symbol=None)radar.add('客户群5', v5, item_color="#FFFF00", symbol=None)radar.show_config()radar.render()

雷达图显示:

这里写图片描述

各客户群的优势特征和劣势特征比较

这里写图片描述

客户群1的优势特征为:L F M
客户群2的优势特征为:R
客户群3的优势特征为: 无
客户群4的优势特征为:F M R L C
客户群5的优势特征为:C F M

根据每个客户群的特征,定义5个等级的客户类别:
01 重要保持客户。F M R L C 均表现优势,属于高价值客户。航空公司应将主要资源放在他们身上,提高他们的忠诚度和满意度,延长此类客户的高水平消费
02 重要发展客户。此类客户入会时间短,折扣率高,飞行次数和里程较高,属于潜力股客户。航空公司要促进此类客户的消费
03 重要挽留客户。此类客户入会时间长,但最近没有消费。航空公司应唤醒此类客户,延长生命周期
04 一般与低价值客户。 F M R L C 均表现弱势

最后,将5个客户群价值排名:
NO.1 客户群4
NO.2 客户群5
NO.3 客户群1
NO.4 客户群2
NO.5 客户群3