数据分析案例-航空公司客户价值分析(聚类)
目录
项目背景
原始数据情况
挖掘目标
分析方法与过程
加载数据
数据预处理
构建模型
项目背景
在企业的客户关系管理中,对客户分类,区分不同价值的客户。针对不同价值的客户提供个性化服务方案,采取不同营销策略,将有限营销资源集中于高价值客户,实现企业利润最大化目标。在竞争激烈的航空市场里,很多航空公司都推出了优惠的营销方式来吸引更多的客户。在此种环境下,如何将公司有限的资源充分利用,提示企业竞争力,为企业带来更多的利益。
广泛用于分析客户价值的是RFM模型,它是通过三个指标(最近消费时间间隔(Recency)、消费频率(Frequency)、消费金额(Monetary))来进行客户细分,识别出高价值的客户。如果分析航空公司客户价值,此模型不再适用,存在一些缺陷和不足:
一:在模型中,消费金额表示在一段时间内,客业产品金额的总和。因航空票价受到运输距离、舱位等级等多种因素影响,同样消费金额的不同旅客对航空公司的价值是不同的。因此这个指标并不适合用于航空公司的客户价值分析。
二:传统模型分析是利用属性分箱方法进行分析如图,但是此方法细分的客户群太多,需要一一识别客户特征和行为,提高了针对性营销的成本。
原始数据情况
挖掘目标
分析方法与过程
初步分析:提出适用航空公司的LRFMC模型
加载数据
# 导包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn import preprocessing
import warnings
warnings.filterwarnings('ignore') # 忽略警告
plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示
plt.rcParams['axes.unicode_minus'] = False #解决符号无法显示data = pd.read_csv('air_data.csv', sep=',')
data.shape
(62988, 44)
数据预处理
# 删除缺失值
data = data.dropna().reset_index(drop=True)
data.shape
(58255, 44)
# 删除票价为0、平均折扣率不为0、总飞行公里数大于0的数据
t1 = data['SUM_YR_1']==0
t2 = data['SUM_YR_2']==0
t3 = data['avg_discount']>0
t4 = data['SEG_KM_SUM']>0
tt = []
for f in range(len(t1)):if t1[f] & t2[f] & t3[f] & t4[f]==True :tt.append(f)
data = data.drop(tt,axis=0)
data = data.reset_index(drop = True)
data.shape
(58022, 44)
# 取出我们要分析的列数据
data1 = data[['LOAD_TIME','FFP_DATE','LAST_TO_END','FLIGHT_COUNT','SEG_KM_SUM','avg_discount']]
data1
L = LOAD_TIME - FFP_DATE
会员入会时间距观测窗口结束的月数 = 观测窗口的结束时间 - 入会时间[单位:月
R = LAST_TO_END
客户最近一次乘坐公司飞机距观测窗口结束的月数 = 最后一次乘机时间至观察窗口末端时长[单位:月]
F = FLIGHT_COUNT
客户在观测窗口内乘坐公司飞机的次数 = 观测窗口的飞行次数[单位:次]
M = SEG_KM_SUM
客户在观测时间内在公司累计的飞行里程 = 观测窗口总飞行公里数[单位:公里]
C = AVG_DISCOUNT
客户在观测时间内乘坐舱位所对应的折扣系数的平均值 = 平均折扣率[单位:无]
# 会员入会时间距观测窗口结束的月数 = 观测窗口的结束时间 - 入会时间
m = (pd.to_datetime(data1['LOAD_TIME'])-pd.to_datetime(data1['FFP_DATE']))//30
data1['L']=m.dt.days
# 再取出我们最终模型需要的列数据
data2 = data1[['L','LAST_TO_END','FLIGHT_COUNT','SEG_KM_SUM','avg_discount']]
# 更换列名
data2 = data2.rename(columns={'L': 'ZL', 'LAST_TO_END': 'ZR','FLIGHT_COUNT':'ZF','SEG_KM_SUM':'ZM','avg_discount':'ZC'})
标准化处理
# 标准化处理
std_scale = preprocessing.StandardScaler().fit(data2[["ZL","ZR","ZF","ZM","ZC"]])
df_std = std_scale.transform(data2[["ZL","ZR","ZF","ZM","ZC"]])
df_data=pd.DataFrame(df_std)
df_data.columns=list(data2.columns)
df_data
构建模型
类别 |
ZL |
ZR |
ZF |
ZM |
ZC |
类别数目 |
0 |
-0.082462 |
0.009038 |
-0.268082 |
-0.289714 |
1.903063 |
5032 |
1 |
0.514653 |
-0.796162 |
2.48131 |
2.42854 |
0.3318 |
5023 |
2 |
-0.690163 |
-0.418629 |
-0.158749 |
-0.155184 |
-0.298378 |
22570 |
3 |
1.186869 |
-0.374691 |
-0.080945 |
-0.086677 |
-0.14956 |
14373 |
4 |
-0.330789 |
1.704202 |
-0.577257 |
-0.543217 |
-0.210726 |
11024 |
采用K-Means聚类算法对客户数据进行分群,将其聚成五类(需要结合业务的理解与分析来确定客户的类别数量)。
# 聚类
model = KMeans(n_clusters=5) # 构造聚类器
model.fit(df_std) # 聚类
label_pred = model.labels_ # 获取聚类标签
r1 = pd.Series(model.labels_).value_counts() # 统计各类的个数
r2 = pd.DataFrame(model.cluster_centers_) # 获取聚类中心
r = pd.concat([r2,r1],axis=1) # 合并
r.columns = list(data2.columns) + ['类别数目'] # 加上列名
r
r3 = pd.concat([df_data,pd.Series(model.labels_,index=df_data.index)],axis=1) # 给df_data加上一列按照df_data索引,标签为值值的列
r3.columns = list(data2.columns) + ['聚类类别'] # 加列名
r3
# 根据r2绘制雷达图
labels = np.array(['ZL','ZR','ZF','ZM','ZC'])
labels = np.concatenate((labels,[labels[0]]))N = len(r2)
angles = np.linspace(0, 2 * np.pi, N, endpoint=False)
data = pd.concat([r2,r2.loc[:,0]],axis=1)
angles = np.concatenate((angles, [angles[0]]))
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111, polar=True) # 参数polar, 以极坐标的形式绘制图形
# 画线
j=0
for i in range(0,5):j=i+1ax.plot(angles,data.loc[i,:],'o-',label="客户群"+str(j))
# 添加属性标签
ax.set_thetagrids(angles*180/np.pi,labels)
plt.title(u'客户特征雷达图')
plt.legend(loc='lower right')
plt.show()
对聚类结果进行特征分析,其中客户群3在F、M属性最大,在R属性最小;客户群5在L属性上最大;客户群4在R属性上最大,在F、M属性最小;客户群1在L、C属性上最小;客户群2在C属性上最大。
根据业务定义五个等级的客户类别:重要保持客户、重要发展客户、重要挽留客户、一般客户、低价值客户。
客户群价值排名:根据每种客户类型的特征,对各类客户群行客户价值排名,获取高价值客户信息。
客户群 |
排名 |
排名意义 |
客户群3 |
1 |
重要保持客户 |
客户群5 |
2 |
重要发展客户 |
客户群2 |
3 |
重要挽留客户 |
客户群1 |
4 |
一般客户 |
客户群4 |
5 |
低价值客户 |
数据分析案例-航空公司客户价值分析(聚类)相关推荐
- 毕业设计之 ---基于大数据分析的航空公司客户价值分析
文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...
- 【毕业设计】大数据分析的航空公司客户价值分析 - python
文章目录 0 前言 1 数据分析背景 2 分析策略 2.1 航空公司客户价值分析的LRFMC模型 2.2 数据 2.3 分析模型 3 开始分析 3.1 数据预处理 3.1.1 数据预览 3.1.2 数 ...
- Python数据挖掘-RFM模型K-means聚类分析-航空公司客户价值分析
使用教材:<Python数据分析与挖掘实战> 模型:RFM模型 算法:K-means聚类:其他方法还用到了层次聚类 数据:需要数据的可以评论里call. 内容: (1)案例: 航空公司客户 ...
- 数据分析与挖掘实战-航空公司客户价值分析
航空公司客户价值分析 项目背景 信息时代的到来注定营销焦点从产品中心转到了用户中心,客户关系管理成为企业的核心问题. 客户关系管理的关键问题则是客户分类,通过分类区分客户价值的有无和高低,针对不同类别 ...
- Python数据挖掘:利用聚类算法进行航空公司客户价值分析
无小意丶 个人博客地址:无小意 知乎主页:无小意丶 公众号: 数据路(shuju_lu) 刚刚开始写博客,希望能保持关注,会继续努力. 以数据相关为主,互联网为辅进行文章发布. 本文是<Pyth ...
- 数据分析实战:航空公司客户价值分析
一.背景目标 通过对航空公司客户数据分析,对客户进行分类: 比较不同客户的客户价值,并制定不同的服务和营销策略 二.数据探索分析 2.1 数据概况 数据时间范围: 2012年4月1日至2014年3月3 ...
- 《Python数据分析与挖掘实战》第7章——航空公司客户价值分析(kmeans)
本文是基于<Python数据分析与挖掘实战>的实战部分的第七章的数据--<航空公司客户价值分析>做的分析. 旨在补充原文中的细节代码,并给出文中涉及到的内容的完整代码. 1)在 ...
- python数据分析与挖掘实战---chapter7航空公司客户价值分析
1. 背景与挖掘目标 1.1 背景 企业营销焦点从产品中心转变为客户中心,客户关系管理成为企业的核心问题 客户关系管理的关键问题是客户分类,通过客户分类, 针对不同价值的客户制定优化的个性化服务方案, ...
- python客户价值分析_Python数据分析与应用航空公司客户价值分析.ppt
Python数据分析与应用航空公司客户价值分析.ppt 大数据,成就未来 * 大数据挖掘专家 * 大数据挖掘专家 大数据,成就未来 航空公司客户价值分析 * 目录 分析航空公司现状 1. 行业内竞争 ...
- 航空公司客户价值分析python实战
航空公司客户价值分析(K_Means聚类分析) 最近在看黄红梅.张良均老师主编的<Python数据分析与应用>,拿书里的案例练练手. 本案例将使用航空公司客户数据,结合RFM模型,采用K_ ...
最新文章
- 解决grub引导错误的问题
- axios 发送 AJAX请求
- mac 推荐一款本机截屏找latex公式软件Mathpix 亲测有效
- 代码是写给人看的,请C/C++过来的程序员们多学习软件工程
- R语言与数据的图表展示(part1)--不知道起啥名,反正就是初步认识一下
- 美国一公司起诉苹果 指控iPhone中“个人热点”技术侵犯其专利
- 零基础掌握区块链关键概念
- java基础概念整理(三)
- windows与虚拟机中的Ubuntu共享文件夹
- 读王元之《数学大辞典》
- Python opencv局部直方图均衡增强
- 层次状态机编程三:状态机设计模式
- 弘辽科技:淘宝权重到底是什么?
- pepe:从Pastebin收集邮件地址的信息
- 《惢客创业日记》2019.01.23(周三) 太苦涩的人生也会让人麻木
- ES监视器Watcher详解
- Python pass 用法
- 控制 Egress 流量
- python的秘密_Shamir秘密共享方案 (Python)
- UNIX发展史(BSD,GNU,linux)(转)
热门文章
- 树莓派c语言读取dht11,树莓派直接读取 DHT11 温湿度的方法
- 小三角箭头向下向上查看隐藏的效果 vue
- nginx的网页压缩以及图片的压缩
- 美图秀秀一寸照片的制作
- c语言贪吃蛇答辩项目,贪吃蛇项目V1答辩.PDF
- [日常] Apache Order Deny,Allow的用法
- 台达PLC编程软件PMSoft和WPLSoft爆出11个0Day 没有CVE没有补丁
- ITSM正向浪涌测试仪
- 解决 Refused to display in a frame because it set 'X-Frame-Options' to 'deny'.问题
- Photoshop脚本 删除当前图层