python数据分析之民航业客户建模分析实战

本文通过Python进行民航客户数据分析,采用LRFMC模型(会员入会时间、最近飞行时间、飞行频率、飞行里程、平均折扣)进行客户分类。通过K-Means聚类,识别出高价值客户,利用pyecharts绘制雷达图展示各群组特征。通过客户画像,对不同客户群体提出个性化营销策略,旨在提升客户满意度和忠诚度。
摘要由CSDN通过智能技术生成

找到了更详细(指的是探索性分析)的版本
航空公司客户价值分析(正版/超详细/附数据)

1背景与挖掘目标

客户关系管理是企业的核心业务。客户管理的关键在于客户分类。通过客户分类,区分无价值和高价值客户,再针对不同价值的客户制定个性化服务方案,不同的营销策略,将有限的企业资源集中于高价值客户,实现企业利润最大化。

面对激烈竞争,各个航空公司都推出了推广营销活动来吸引更多客户,国内某航空 公司面临 旅客流失/竞争力下降和航空资源未充分利用等经营危机。

  • 通过建立合理的客户价值评估模型,对客户进行分类,比较分析不同客户群体的价值并制定相应营销策略,提供个性化客户服务,是必须和有效的。

该航空公司已积累大量会员档案信息和乘坐航班记录,部分列见下:

1.1 航空信息属性表(一部分列)

  • 客户基本信息
    • MEMBER_NO: 会员卡号
    • FFP_DATE: 入会时间
    • FIRST_FLIGHT_DATE: 第一次飞行日期
    • GENDER: 性别
    • FFP_TLER: 会员卡级别
    • WORK_CITY: 工作地城市
    • WORK_PROVINCE: 工作地省份
    • WORK_COUNTRY: 工作地国家
    • AGE: 年龄
  • 乘机信息
    • FLIGHT_COUNT: 观测窗口内的飞行次数(观测窗口:观测的时间段)
    • LOAD_TIME: 观测窗口的结束时间
    • LAST_TO_END: 最后一次乘机时间至观测窗口结束时长
    • AVG_DISCOUNT: 平均折扣率
    • SUM_YR: 观测窗口的票价收入
    • SEG_KM_SUM: 观测窗口的总飞行公里数
    • LAST_FLIGHT_DATE: 末次飞行日期
    • AVG_INTERVAL: 平均乘机时间间隔
    • MAX_INTERVAL: 最大乘机间隔
  • 积分信息
    • EXCHANGE_COUNT: 积分兑换次数
    • EP_SUM: 总精英积分
    • PROMOPTIVE_SUM: 促销积分
    • PARTNER_SUM: 合作伙伴积分
    • POINTS_SUM: 总累计积分
    • POINT_NOTELIGHT: 非乘机的积分变动次数
    • PB_SUM: 总基本积分

根据这些数据,实现以下目标:

  • 根据数据,对客户进行分类
  • 对不同的客户类别进行特征分析,比较不同类客户的客户价值
  • 对不同价值的客户类别提供个性化服务,指定相应营销策略

1.2 分析方法和过程

本案例目标是客户价值识别,识别客户价值最广泛的模型是通过三个指标进行客户细分,识别高价值客户,简称RFM模型

  • 最近消费时间间隔,Recency
  • 消费频率,Frequency
  • 消费金额,Monetary
    • 一段时间内,客户购买该企业产品金额的总和
    • 由于航空票价受运输距离/仓位等级等多种因素影响,消费金额指导意义不大(如一个长航线低等仓位旅客与一个短航线高等仓位旅客,前者花费大但后者对航空公司可能更有价值。
    • 我们选择
      • 客户在一定时间内累积的飞行里程M
      • 客户在一定时间内乘坐仓位所对应的折扣系数平均值C

两个指标代替消费金额。

此外,航空公司会员入会时间长短也能够影响客户价值,模型中增加客户关系长度L

总之:5个指标作为航空公司识别客户价值指标,记为LRFMC模型

航空公司LRFMC模型

  • L:会员入会时间距观测窗口结束的月数
  • R:客户最近一次乘坐公司飞机距观测窗口结束的月数(最近消费时间间隔)
  • F:客户在观测窗口内乘坐公司飞机的次数
  • M:客户在观测窗口内累计的飞行里程
  • C:客户在观测窗口内乘坐仓位所对应的折扣系数的平均值

本例采用聚类来识别客户价值,通过5个指标进行K-Means聚类,识别出最有价值客户

航空客运信息挖掘主要包含以下步骤:

  • 从航空公司数据源种进行选择性抽取与新增数据抽取,分别形成历史数据和增量数据
  • 对上面两个数据集进行数据探索和预处理,包括缺失值异常值处理,属性规约,清洗/变换
  • 利用完备数据,基于旅客价值LRFMC模型进行客户分群,对各个客户群进行特征分析,识别有价值客户
  • 针对模型结果得到不同价值的客户,采用不同营销手段,提供定制化服务


  • 导入需要用的库
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
  • 读取一下文件,parse_dates将目标列设置成日期格式
# 读取

data = pd.read_csv(r'data\air_data.csv',parse_dates=['FFP_DATE','FIRST_FLIGHT_DATE','LOAD_TIME','LAST_FLIGHT_DATE'])
data

在这里插入图片描述

  • 检查数据类型
data.info(),data.shape

在这里插入图片描述
在这里插入图片描述

  • 查看基本统计数据并手动计算缺失值
# 查看基本统计数据
explore = data.describe().T
explore

# 手动计算缺失值 
# data.shape[0] # 客户量
# explore['count'] #统计有效计数量
explore['null'] = data.shape[0] - explore['count']
explore

在这里插入图片描述

# 指定列检查
e1 = explore[['null','max','min']]
e1

在这里插入图片描述

2 数据预处理

主要用数据清洗/属性规约和数据变换的预处理方法

数据清洗:数据中有缺失值,或 票价最小值为0,或(折扣率最小值为0 和 总飞行公里数大于0)的记录,

由于原始数据量大,这类数据比例很小,丢弃处理

  • 丢弃票价为空的记录
  • 保留:票价不为0,或 平均折扣率 和 总飞行公里数都大于0 的记录
 # 删除两列票价值为空的数据行
data = data[(data['SUM_YR_1'].notnull()) & (data['SUM_YR_2'].notnull())]

data

数据量减少
在这里插入图片描述

  • 删除两列票价值为0的数据行
  • 保留:票价不为0,或 平均折扣率 和 总飞行公里数都大
# 删除两列票价值为0的数据行
# 保留:票价不为0,或 平均折扣率 和 总飞行公里数都大于0 的记录
index1 = data.SUM_YR_1 != 0
index2 = data.SUM_YR_2 != 0
index3 = (data.avg_discount == 0) & (data.SEG_KM_SUM == 0)

data = data[index1|index2|index3]
data

数据量再一次减少
在这里插入图片描述

# 属性规约:原始数据中属性太多,根据LRFMC模型,只保留和模型指标相关的6个属性

data2 = data[['FFP_DATE', 'LOAD_TIME', 'FLIGHT_COUNT', 'avg_discount', 'SEG_KM_SUM', 'LAST_TO_END']]
data2

在这里插入图片描述

  • 数据变换:将数据转为适当的个数,以适应算法挖掘需要,本例采用属性构造和数据标准化方式

原始数据没有直接给出LRFMC五个指标,需要通过数据自行计算提取指标

L = LOAD_TIME - FFP_DATE,会员入会时间距观测窗口结束的月数 = 观测窗口结束时间 - 入会时间
R = LAST_TO_END,客户最近一次乘坐飞机距观测窗口结束的月数 = 最后一次乘机时间至观测窗口末端时长
F = FLIGHT_COUNT,客户在观测窗口内乘坐公司飞机的次数=观测窗口的飞行次数
M = SEG_KM_SUM,客户在观测时间内在公司累计飞行里程=观测窗口的总飞行公里数
C = avg_discount,客户在观测时间内乘
  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值