17年也可以说是大数据的一年,大数据一词在这些年横空崛起,Hadoop和Hive使用的越来越多,本期我们来学习下如何使用Hadoop和Hive对航空公司客户进行价值分析。航空公司通常会将客户划分成几种客户,如:重要保持客户、重要发展客户、重要挽留客户、一般客户和低价值客户。我们首先使用Hive对客户数据进行探索分析、数据预处理并且建立LRFMC模型,在使用Hadoop使用Kmeans对客户进行聚类分群,来实现航空公司利益最大化。

大数据教程:Hadoop+Hive进行航空公司客户价值分析

hadoop

我们本次教程使用的数据集包含了62988条数据,其中大约有44个字段,主要字段有客户基本信息(会员卡号,入会时间等)、乘机信息(票价收入,平均折扣率等)、积分信息(积分兑换次数等)。

我们先来看下数据的格式:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据格式1

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据格式2

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据格式3

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据格式4

得知数据类型后,我们首先在Hive中建立数据库,在数据库中新建一张表,用来存储数据,如下所示:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据表

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据表接上

建立好数据表后,我们将数据导入到刚刚建好的表格中:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

导入数据表

根据现实生活世界的业务逻辑,我们发现在44个字段中真正能使用到的只有FFP_DATE(入会时间)、LOAD_TIME(观测窗口结束时间)、FLIGHT_COUNT(乘机次数)、SUM_YR_1(票价收入1)、SEG_KM_SUM(飞行里程数)、LAST_FLIGHT_DATE(最后一次乘机时间)、AVG_DISCOUNT(平均折扣率),我们剔除其他字段,仅仅保留这些有用的字段,小伙伴可以自己挑选需要保留的字段。

数据探索

我们先来统计SUM_YR_1、SEG_KM_SUM、AVG_DISCOUNT三个字段的空值记录数,保存到null_count表中,如下所示:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

空值统计

接下来我们来统计SUM_YR_1、SEG_KM_SUM、AVG_DISCOUNT三个字段的最小值并保存到min_count表中,如下所示:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

字段最小值统计

我们来查看写null_count表和min_count表结果如下所示:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

统计结果展示

数据清洗

通过数据探索分析,我们发现数据中存在缺失值,但这类数据所占总数据的比例很小,所以直接舍弃,接下来我们来定义清洗规则,如下所示:

1、丢弃票价为空的记录:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

丢弃票价为空的记录

2、在上一步基础上,丢弃平均折扣率为0.0的记录:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

丢弃平均折扣率为0的记录

3、在上一步基础上,丢弃票价为0、平均折扣率不为0、总飞行公里数大于0的记录:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

进一步清理

数据清洗结果如下:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据清洗结果

数据规约

为了建立LRFMC模型,从清洗后的数据集中选择与指标相关的6个属性:LOAD_TIME、FFP_DATE、LAST_TO_END、FLIGHT_COUNT、SEG_KM_SUM、AVG_DISCOUNT,如下所示:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

选择相关属性

选取flfasl表中前五条查看如下所示:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

前5条数据

数据变换

数据变换是将数据转换成“适当的”格式,以适应挖掘任务及算法的需要,在本案例中主要采用的数据变换方式为:

属性构造:

构造LRFMC 5个指标:

1、L的构造:

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

大数据教程:Hadoop+Hive进行航空公司客户价值分析

2、R的构造:

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

大数据教程:Hadoop+Hive进行航空公司客户价值分析

3、F的构造:

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

大数据教程:Hadoop+Hive进行航空公司客户价值分析

4、M的构造:

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

大数据教程:Hadoop+Hive进行航空公司客户价值分析

5、C的构造:

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

大数据教程:Hadoop+Hive进行航空公司客户价值分析

数据标准化

对5个指标数据分布进行分析,发现5个指标的取值范围数据差异较大,为了消除数量级数据带来的影响,需要对数据进行标准化处理,如下所示:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

统计表

即 标准化值 = (x - min(x))/(max(x) - min(x))

Kmeans聚类

根据业务逻辑,确定将客户大致分为五类,将k=5,以及标准化后的数据,利用之前建立的Kmeans模型,可算出这五类客户群体的聚类中心。根据聚类中心结果,再结合航空公司的业务逻辑,可得如下结果:

大数据教程:Hadoop+Hive进行航空公司客户价值分析

聚类结果

好了,整体流程到这里就结束了。数据和程序会整理发放出来,大家可以点击关注,怪客为你每天带来小教程和欢乐,您的每一次点击,收藏,都是我们更新的原动力。能力不足的地方恳请大家多多包涵并且在底部评论出来。

相关文章:

  • 2021-11-21
  • 2021-11-21
  • 2021-07-23
  • 2021-08-21
  • 2021-11-21
  • 2021-09-04
猜你喜欢
  • 2021-12-25
  • 2021-07-24
  • 2021-11-21
  • 2021-12-25
  • 2021-08-08
  • 2022-01-11
  • 2021-07-19
相关资源
相似解决方案