实战 | 航空公司客户价值分析-LRFCM模型
点击标题下「蓝色微信名」点击设置星标第一时间送达
本文所有代码都通过运行!
我们说RFM模型由R(最近消费时间间隔)、F(消费频次)和M(消费总额)三个指标构成,通过该模型识别出高价值客户。
但该模型并不完全适合所有行业,如航空行业,直接使用M指标并不能反映客户的真实价值,因为“长途低等舱”可能没有“短途高等舱”价值高。所以得根据实际行业灵活调整RFM模型的指标。
本文就拿航空公司的数据为例,将RFM模型构建成L(入会至当前时间的间隔,反映可能的活跃时长)、R(最近消费时间距当前的间隔,反映当前的活跃状态)、F(乘机次数,反映客户的忠诚度)、M(飞行里程数,反映客户对乘机的依赖性)和C(舱位等级对应的折扣系数,侧面反映客户价值高低)5个指标。
下面就利用这5个指标进行客户价值分群的实战:
01
导入包和数据
1import pandas as pd
2import numpy as np
3from sklearn.cluster import KMeans
4import matplotlib.pyplot as plt
5#接着将数据读取到程序中,并查看每个特征属性的相关信息,以便对“脏”数据进行处理
6datafile = 'data/air_data.csv'
7data = pd.read_csv(datafile, encoding='utf-8')
8print(data.shape)
9print(data.info())
结果显示该数据集大小为(62988, 44),一共44列都无空值,不错,我们继续分析。
02
数据清洗
1#通过观测可知,数据集中存在票价为零但是飞行公里大于零的不合理值,但是所占比例较小,这里直接删去
2data = data[data["SUM_YR_1"].notnull() & data["SUM_YR_2"].notnull()]
3index1 = data["SUM_YR_1"] != 0
4index2 = data["SUM_YR_2"] != 0
5index3 = (data["SEG_KM_SUM"] == 0) & (data["avg_discount"] == 0)
6data = data[index1 | index2| index3]
7print(data.shape)
删除后剩余的样本值是62044个,可见异常样本的比例不足1.5%,因此不会对分析结果产生较大的影响。
原始数据集的特征属性太多,而且各属性不具有降维的特征,故这里选取几个对航空公司来说比较有价值的几个特征进行分析,这里并没有完全按照书中的做法选取特征,最终选取的特征是第一年总票价、第二年总票价、观测窗口总飞行公里数、飞行次数、平均乘机时间间隔、观察窗口内最大乘机间隔、入会时间、观测窗口的结束时间、平均折扣率这八个特征。下面说明这么选的理由:
选取的特征是第一年总票价、第二年总票价、观测窗口总飞行公里数是要计算平均飞行每公里的票价,因为对于航空公司来说并不是票价越高,飞行公里数越长越能创造利润,相反而是那些近距离的高等舱的客户创造更大的利益。
当然总飞行公里数、飞行次数也都是评价一个客户价值的重要的指标, 入会时间可以看出客户是不是老用户及忠诚度。
通过平均乘机时间间隔、观察窗口内最大乘机间隔可以判断客户的乘机频率是不是固定。
平均折扣率可以反映出客户给公里带来的利益,毕竟来说越是高价值的客户享用的折扣率越高。
1# 属性规约:去掉不相管的属性,只留下与LRFMC模型相关的属性
2# FFP_DATE 入会时间
3# LOAD_TIME 观测窗口结束时间
4# FLIGHT_COUNT 飞行频率
5# avg_discount 平均折扣
6# SEG_KM_SUM 观测窗口总飞行公里数
7# LAST_TO_END 最后一次乘机时间至观察窗口末端时长
8
9data = data[['FFP_DATE','LOAD_TIME', 'FLIGHT_COUNT', 'avg_discount', 'SEG_KM_SUM','LAST_TO_END']]
数据变化的LRFMC数据:
L = LOAD_TIME - FFP_DATE (观测窗口时间 - 入会时间)
R = LOAD_TIME - LAST_TO_END (观测窗口时间 - 最后一次乘机时间)
F = FLIGHT_COUNT
M = SEG_KM_SUMC = avg_discount
1from datetime import datetime2import time34def normal_time(date):5 '''6 格式化数据7 '''8 return datetime.strptime(date,"%Y/%m/%d")9
10def interval_time(dd):
11 '''
12 计算时间间隔,以月为单位
13 '''
14 return dd.days / 30
15# data_LRFMC数据
16data_LRFMC = pd.DataFrame()
17# data_LRFMC.columns = ['L', 'R', 'F','M', 'C']
18data["LOAD_TIME"] = pd.to_datetime(data["LOAD_TIME"])
19data["FFP_DATE"] = pd.to_datetime(data["FFP_DATE"])
20data_LRFMC['L'] = (data['LOAD_TIME'] - data['FFP_DATE']).astype(np.int64)
21data_LRFMC['R'] = pd.to_datetime(data['LAST_TO_END']).astype(np.int64)
22data_LRFMC['F'] = data['FLIGHT_COUNT']
23data_LRFMC['M'] = data['SEG_KM_SUM']
24data_LRFMC['C'] = data['avg_discount']
25
26# 显示数据的描述,最大值和最小值
27data_LRFMC_describe = data_LRFMC.describe().T
28data_LRFMC_describe = data_LRFMC_describe[['max','min']].T
29#注意到所有的数据值,最大值和最小值间隔较大,需要对数据进行标准化
30#这里使用标注差标准化,可以使用认识方法进行处理
31data_normal = (data_LRFMC - data_LRFMC.mean()) / (data_LRFMC.std())
32data_normal.columns = ['Z'+i for i in data_normal.columns]
03
建立模型
数据处理完毕,下面进行模型的构建,
1、使用聚类算法,将数据生成5类用户
2、针对聚类结果进行特征分析
1k = 52kmodel = KMeans(k) #得到模型3kmodel.fit(data_normal) #训练模型45clu = kmodel.cluster_centers_6x = [1,2,3,4,5]78colors = ['red','green','yellow','blue','black']9for i in range(5):
10 plt.plot(x,clu[i],label='clustre '+str(i),linewidth=6-i,color=colors[i],marker='o')
11
12plt.xlabel('L R F M C')
13plt.ylabel('values')
14plt.show()
客户价值分析:
注意kmeans每次运行的时候得到的类会有差别,簇号也会相应的改变,但是中间点基本不会改变:
L R F M C
客户群1:[-0.70020646 -0.41488827 -0.16114258 -0.16095751 -0.25513154] red
客户群2:[-0.31367829 1.68625847 -0.57401599 -0.53682019 -0.1733261] green
客户群3:[ 0.48332845 -0.79938326 2.4832016 2.42472391 0.30863003] yellow
客户群4:[ 1.16066672 -0.37722119 -0.08691852 -0.09484404 -0.1559046] blue
客户群5:[ 0.05184279 -0.00266813 -0.22680311 -0.23125407 2.19134701] black
我们重点关注的是L,F,M,从图中可以看到:
1、客户群3[yellow] 的F,M很高,L也不低,可以看做是重要保持的客户;
2、客户群5[black] 重要发展客户
3、客户群4[blue] 重要挽留客户,原因:入会时间长,但是F,M较低
4、客户群1[red] 一般客户
5、客户群2[green] 低价值客户
04
数据集获取
本项目是对《Python数据分析与挖掘》书中的航空公司客户价值分析案例进行复现
需要数据集的可以公众号后台回复关键字【航空】获取
另外小伙伴们点个“再看”支持下小姐姐吧,你的支持是我最大的动力呀
我不仅仅是一个码
实战 | 航空公司客户价值分析-LRFCM模型相关推荐
- 数据分析与挖掘实战-航空公司客户价值分析
航空公司客户价值分析 项目背景 信息时代的到来注定营销焦点从产品中心转到了用户中心,客户关系管理成为企业的核心问题. 客户关系管理的关键问题则是客户分类,通过分类区分客户价值的有无和高低,针对不同类别 ...
- python数据分析与挖掘实战(航空公司客户价值分析)
一.引言 企业在面向客户制定运营策略.营销策略时,希望能够针对不同的客户推行不同的策略,实现精准化运营,以期获取最大的转化率.客户关系管理是精准化运营的基础,而客户关系管理的核心是客户分类.通过客户分 ...
- Python数据挖掘-RFM模型K-means聚类分析-航空公司客户价值分析
使用教材:<Python数据分析与挖掘实战> 模型:RFM模型 算法:K-means聚类:其他方法还用到了层次聚类 数据:需要数据的可以评论里call. 内容: (1)案例: 航空公司客户 ...
- 《Python数据分析与挖掘实战》第7章——航空公司客户价值分析(kmeans)
本文是基于<Python数据分析与挖掘实战>的实战部分的第七章的数据--<航空公司客户价值分析>做的分析. 旨在补充原文中的细节代码,并给出文中涉及到的内容的完整代码. 1)在 ...
- 数据分析实战:航空公司客户价值分析
一.背景目标 通过对航空公司客户数据分析,对客户进行分类: 比较不同客户的客户价值,并制定不同的服务和营销策略 二.数据探索分析 2.1 数据概况 数据时间范围: 2012年4月1日至2014年3月3 ...
- 航空公司客户价值分析python实战
航空公司客户价值分析(K_Means聚类分析) 最近在看黄红梅.张良均老师主编的<Python数据分析与应用>,拿书里的案例练练手. 本案例将使用航空公司客户数据,结合RFM模型,采用K_ ...
- python数据分析与挖掘实战---chapter7航空公司客户价值分析
1. 背景与挖掘目标 1.1 背景 企业营销焦点从产品中心转变为客户中心,客户关系管理成为企业的核心问题 客户关系管理的关键问题是客户分类,通过客户分类, 针对不同价值的客户制定优化的个性化服务方案, ...
- Python数据挖掘:利用聚类算法进行航空公司客户价值分析
无小意丶 个人博客地址:无小意 知乎主页:无小意丶 公众号: 数据路(shuju_lu) 刚刚开始写博客,希望能保持关注,会继续努力. 以数据相关为主,互联网为辅进行文章发布. 本文是<Pyth ...
- 基于机器学习的航空公司客户价值分析与流失预测
温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 面对激烈的市场竞争,各个航空公司相继推出了更优惠的营销方式来吸引更多的客户,国内某航空公司面临着常旅 ...
- 航空公司客户价值分析(附完整代码)
一.什么是客户价值分析: 客户价值分析是以客户为中心,从客户需求出发,搞清楚客户需要什么,他们有怎样的一个特征,需要什么样的产品,然后设计相应的产品,通过对客户分群从而满足客户的需求.进行客户价值 ...
最新文章
- java中decimalFormat格式化数值
- 读书笔记——《迁移到云原生架构》
- OPENSTACK重装系统失败导致虚拟机状态为error
- spark视频-Spark on Yarn
- websocket server client 编写
- clion远程调试linux内核,Clion + 树莓派/Ubuntu 远程调试
- 漫画:如何给女朋友解释什么是编译与反编译
- extjs的grid应用(java 使用json绑定数据 翻页)
- Microsoft Visual Studio .NET 2003 编译xvidcore-1.1.3
- Oracle Coherence:分布式数据管理
- PMP_模考三 (3A通过分享)(180题附答案及解析)
- 用python 把视频转换为图片
- matlab加特定频率的噪声,如何在Matlab/Simulink中生成指定的白噪声和有色噪声
- 定义范围中的备选方案生成、横向思维、创建WBS、工作包定义、WBS、确认范围过程和实施质量过程的关系、联合应用设计和质量功能展开QFD...
- HarmonyOS resources目录中“限定词目录”命名要求
- mysql中in的参数有限制_数据库 in 可以包含的参数个数
- peppa pig原版_Peppy和MooTools
- 《四海小记c++学习之路》第一阶段 基础
- 工业机器人国产替代,数字化转型是关键
- 臻识相机对接/华夏相机对接/千熠相机对接/海康相机对接