学习笔记Hive(九)—— 实例:航空客户价值分析数据预处理
一、背景与目标
1.1、背景
1.、行业内竞争
民航的竞争除了三大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司、民营航空公司,甚至国外航空巨头。航空产品生产过剩,产品同质化特征愈加明显,于是航空公司从价格、服务间的竞争逐渐转向对客户的竞争。
2.、行业外竞争
随着高铁、动车等铁路运输的兴建,航空公司受到巨大冲击。
客户营销战略倡导者Jay & Adam Curry从国外数百家公司进行了客户营销实施的经验中提炼了如下经验:
- 公司收入的80%来自顶端的20%的客户。
- 20%的客户其利润率100%。
- 90%以上的收入来自现有客户。
- 大部分的营销预算经常被用在非现有客户上。
- 5%至30%的客户在客户金字塔中具有升级潜力。
- 客户金字塔中客户升级2%,意味着销售收入增加10%,利润增加50%。
这些经验也许并不完全准确,但是它揭示了新时代客户分化的趋势,也说明了对客户价值分析的迫切性和必要性。
1.2、目标
航空公司数据特征说明
目前航空公司已积累了大量的会员档案信息和其乘坐航班记录。
以2014-03-31为结束时间,选取宽度为两年的时间段作为分析观测窗口,抽取观测窗口内有乘机记录的所有客户的详细数据形成历史数据,44个特征,总共62988条记录。数据特征及其说明如表所示。
![]() |
![]() |
结合目前航空公司的数据情况,可以实现以下目标:
- 借助航空公司客户数据,对客户进行分类。
- 对不同的客户类别进行特征分析,比较不同类别客户的客户价值。
- 对不同价值的客户类别提供个性化服务,制定相应的营销策略。
二、数据预处理
航空公司客户原始数据存在少量的缺失值和异常值,需要清洗后才能用于分析。
通过对数据观察发现原始数据中存在票价为空值,票价最小值为0,折扣率最小值为0,总飞行公里数大于0的记录。
- 票价为空值的数据可能是客户不存在乘机记录造成。
处理方法:丢弃票价为空的记录。
- 其他的数据可能是客户乘坐0折机票或者积分兑换造成。由于原始数据量大,这类数据所占比例较小,对于问题影响不大,因此对其进行丢弃处理。
处理方法:丢弃票价为0,平均折扣率不为0,总飞行公里数大于0的记录。
2.1、任务步骤
准备:创建air数据库
1、创建表air_data_base
2、导入数据到air_data_base表
3、丢弃票价为空的记录,将结果存储到sum_yr_1_not_null表
4、丢弃平均折扣率为0.0的记录,将结果存储到avg_discount_not_0表
5、丢弃票价为0、平均折扣率不为0、总飞行公里数大于0的记录,将结果存储到sum_0_seg_avg_not_0表
三、特征构造
原始数据中包含40多个特征,利用这些特征做些什么呢?我们又该从哪些角度出发呢?
3.1、常用客户价值分类模型
3.1.1、RFM模型介绍
本项目的目标是客户价值分析,即通过航空公司客户数据识别不同价值的客户,识别客户价值应用最广泛的模型是RFM模型。
- R(Recency)指的是最近一次消费时间与截止时间的间隔。
- F(Frequency)指顾客在某段时间内所消费的次数。
- M(Monetary)指顾客在某段时间内所消费的金额
3.1.2、RFM模型结果解读
RFM模型包括三个特征,使用三维坐标系进行展示,如图所示。
- X轴表示Recency,
- Y轴表示Frequency,
- Z轴表示Monetary,
每个轴一般会分成5级表示程度,1为最小,5为最大。
![](/assets/blank.gif)
3.1.3、传统RFM模型在航空行业的缺陷
在RFM模型中,消费金额表示在一段时间内,客户购买该企业产品金额的总和,由于航空票价受到运输距离,舱位等级等多种因素影响,同样消费金额的不同旅客对航空公司的价值是不同的,因此这个特征并不适合用于航空公司的客户价值分析。
![](/assets/blank.gif)
3.1.4、航空客户价值分析的LRFMC模型
本项目选择客户在一定时间内累积的飞行里程M和客户在一定时间内乘坐舱位所对应的折扣系数的平均值C两个特征代替消费金额。此外,航空公司会员入会时间的长短在一定程度上能够影响客户价值,所以在模型中增加客户关系长度L,作为区分客户的另一特征。
本项目将客户关系长度L,消费时间间隔R,消费频率F,飞行里程M和折扣系数的平均值C作为航空公司识别客户价值的关键特征(如表 3 2所示),记为LRFMC模型。
![](/assets/blank.gif)
3.2、任务步骤
- 从数据清洗结果中选择6个属性: FFP_DATE、LOAD_TIME、FLIGHT_COUNT、AVG_DISCOUNT、SEG_KM_SUM、LAST_TO_END,形成数据集,存储到flfasl表中
- 构造LRFMC 5个指标,并将结果存储到lrfmc表中:
1、会员入会时间距离观测窗口结束的月数=观测窗口的结束时间-入会时间 [单位:月]
L = LOAD_TIME - FFP_DATE
2、客户最近一次乘坐公司飞机距观测窗口结束的月数 = 最后一次乘机时间至观察窗口末端时长[单位:月]
R = LAST_TO_END
3、客户在观测窗口内乘坐公司飞机的次数 = 观测窗口的飞行次数 [单位:次]
F = FLIGHT_COUNT
4、客户在观测时间内在公司累计的飞行里程 = 观测窗口总飞行公里数 [单位:公里]
M = SEG_KM_SUM
5、客户在观测时间内乘坐舱位所对应的折扣系数的平均值 = 平均折扣率 [单位:无]
C = AVG_DISCOUNT
建表:
构建5个指标:
结果查看:
学习笔记Hive(九)—— 实例:航空客户价值分析数据预处理相关推荐
- python学习笔记(九)之语句1
python学习笔记(九)之语句1 print python2中,print是一个语句,python3中它是一个函数. 实例1: >> print "hello,world!&q ...
- 软件测试学习笔记(九)淘宝测试
软件测试学习笔记(九)淘宝测试 视频链接:软件测试_中国大学MOOC 1.淘宝性能测试经历哪三个发展阶段?简述其工作内容. (1)业务发展-基础阶段 编写性能测试白皮书和测试文档,整理了常用性能测试的 ...
- C++学习笔记(九)——运算符重载
C++学习笔记(九)--运算符重载 C++内部定义的数据类型(int , float, -)的数据操作可以用运算符号来表示,其使用形式是表达式:用户自定义的类型的数据的操作则用函数表示,其使用形式是函 ...
- 《C++大学教程》学习笔记(九)
<C++大学教程>学习笔记(九) 1.Time类实例研究 1.1包含防护 在开始之前,先说明一个重要的C++软件工程概念:在头文件中使用"包含防护",从而避免头文件中的 ...
- Python学习笔记(九):类和对象
Python学习笔记(九):类和对象 关于类和对象 Python学习笔记(九):类和对象 一.类和对象 类的定义 类的实例化 类对象的使用 二.self用法 三.类方法 实例方法 类方法 静态方法 静 ...
- Intel VT学习笔记(九)—— EPT应用示例
Intel VT学习笔记(九)-- EPT应用示例 内存保护 EPT violation 代码实现 参考资料 内存保护 描述:尝试使用EPT将一块特定的物理内存保护起来. 先来选择一块物理地址,那么这 ...
- Windows进程与线程学习笔记(九)—— 线程优先级/进程挂靠/跨进程读写
Windows进程与线程学习笔记(九)-- 线程优先级/进程挂靠/跨进程读写 要点回顾 线程优先级 调度链表 分析 KiFindReadyThread 分析 KiSwapThread 总结 进程挂靠 ...
- Windows保护模式学习笔记(九)—— 2-9-9-12分页
Windows保护模式学习笔记(九)-- 2-9-9-12分页 要点回顾 10-10-12分页 原理 环境配置 2-9-9-12分页 原理 PDPTE PDE PTE XD/NX标志位 环境配置 实验 ...
- 命名空间不能直接包含字段或方法之类的成员是什么意思_Python 学习笔记之类与实例...
Python 学习笔记之类与实例 一.定义 1.1.定义 类 (class) 封装一组相关数据,使之成为一个整体,并使用一种方法持续展示和维护. 这有点像把零件组装成整车提供给用户,无须了解汽车的内部 ...
最新文章
- linux kernel 中mdelay() 与msleep()的区别
- 工作组模式下专用队列(Private Queue)如何引用远程队列路径
- OutOfMemory (OOM)的类型与检测
- TigerDLNA for ios 集成Tlplayer
- php xmlhttprequest,DOM XMLHttpRequest
- ajax php 观察者模式,JavaScript观察者模式定义和dom事件实例详解
- easyui tree 默认选中第一个元素
- Linux下MongoDB服务安装
- java如何操作视图
- tensorflow中命名空间、变量命名的问题
- 世界淡水资源占水资源的多少_全球的淡水资源占水资源比例为多少
- Spring AOP的MyBatis事务管理
- office2010 错误1706 解决办法
- 美国电脑富农:Frank Soltis
- alipay.trade.refund(统一收单交易退款接口)
- games101 作业1
- 腾讯云副总裁王慧星:持续加大基础设施投入规模和自研创新力度
- java 社会统一信用代码分解,获取登记管理部门代码、机构类别代码、登记管理机关行政区划码、 主体标识码、校验码
- 「Python入门」Python代码规范(风格)
- ArcGIS 矢量数据的空间校正和橡皮页变换
热门文章
- 大学计算机实验vfp,大学计算机基础VFP实验教材26页.doc
- 情怀java手机网游_经典端游移植手游 “情怀”赋予老IP全新活力
- 134. Leetcode 136. 只出现一次的数字 (位运算-只出现一次的数字相关题目)
- FCN全连接卷积网络(3)--Fully Convolutional Networks for Semantic Segmentation阅读(摘要部分)
- 机器学习中的数学(2)-线性回归,偏差、方差权衡
- 深入Java单例模式
- matlab中的cellstr的用法,matlab中的cell array, cellstr()和char()的用法
- nginx大量TIME_WAIT的解决办法--转
- 从源码角度深入分析ant
- JAVA/PHP/C#版RSA验签--转