Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享...

全文链接:https://tecdat.cn/?p=38708

分析师:Yuling Fang

信息时代的来临使得企业营销焦点从产品中心转向客户中心,客户关系管理成为企业的核心问题点击文末“阅读原文”获取完整代码数据)。

客户关系管理的关键是客户分群,通过客户分群,区分无价值客户和高价值客户,同时更好的了解客户的特征,使企业能够针对不同价值客户指定优化的个性化服务方案,实现精细化运营。客户分群是关键节点。

任务/目标

根据航空公司观测窗口内的客户社会信息、乘机信息和积分信息查看文末了解数据免费获取方式对客群进行价值分类,为业务提供运营策划参考。

58221a98ae26a978f317d3294ae81718.png

数据源准备

选取宽度为两年的分析观测窗口,抽取观测窗口内有乘机记录的所有客户的详细数据,共62988行。对原始数据进行探索和数据清洗。

缺失值处理。通过数据探索分析,发现gender、age、sum分别有3、420、689个缺失值,由于变更比总记录数较少,故直接删除处理。

异常值处理。通过对数据观察,发现原始数据中存在平均折扣率不为0、总飞行公里数大于0、票价却为0的数据,属于有异常情况,需要剔除。

特征转换

把不能处理的特征做一些转换,处理成算法容易处理的干净特征:

时间信息。会员入会时间距离观测窗口结束的时间,需要通过入会时间和观测窗口的结束时间相减得到。

省份信息。work_province列存在省份书写格式不统一、部分出现错别字的问题,使用jieba将work_province列拆分字符分类统一格式。

数据变换

构建包含L、R、F、M、C五项指标的新数据表,并对应属性定义表,得到LRFMC模型中五项指标的计算公式:

3815074e93489b3ee977449e9b54b2ee.png

采用标准差标准化的方法数据进行标准化计算,每项数据减去每项指标数据的平均值,得到的差除于每项指标数据的标准差值。

4ba82d5030cb3157fbbdf1519f7eac63.png

聚类个数

通过K_means聚类方法进行机器学习,绘图观察误差平方和SSE与中心点个数k的关系,比较每个k值的SSE,使用肘部法寻找误差平方和SSE突然变小时对应的k值,得到k=5,将客户群体聚类划分为5个客群。

建模

LRFMC模型是根据实际场景基于RFM模型优化调整后得到的,是衡量客户价值和客户创造利益能力的重要工具和手段。

聚类结果

将客群按照客户价值聚类划分为五类贴上群体标签,记为1、2、3、4、5五类,对聚类结果进行特征分析,其可视化图形如下:

415fa7e5c38458c306b09099ad781794.png

d18b91f6816215b3756b049f11d234f6.png

cd1d33a36df6b2a31a6309a48a0038f5.png


点击标题查阅往期内容

3bef5eeac477d26f1996544db62c56b1.png

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像

outside_default.png

左右滑动查看更多

outside_default.png

01

22a99a03214491397a0ba1878b19b96b.png

02

127d3e3b39569cc34086b87ad5af79c2.png

03

acebab804fd192b270e6c6d7dacf48f5.png

04

9646a2a888d930c0776ca9e370d4b7d0.png

根据雷达图分布,对客群的类别、指标情况、重要特征、运营建议进行归纳总结,分别如下:

de755bf95afc952bf22eb5a412bbe222.png

基于航空公司数据的客户价值分析|附数据代码

在当今竞争激烈的航空市场中,深入了解客户价值对于航空公司制定精准营销策略、优化资源配置以及提升客户满意度等方面都有着至关重要的意义。本文旨在通过对航空公司客户相关数据的分析,运用聚类等数据分析方法,挖掘不同客户群体的特征,进而对客户价值进行评估与分析。

数据准备与预处理

首先,我们需要导入一系列常用的数据处理和可视化相关的库,代码如下:

同时,为了确保在图形绘制中能够正确显示中文字体等相关设置,我们会进行如下配置:

mpl.rcParams\['font.sans-serif'\] = \['SimHei'\]
mpl.rcParams\['axes.unicode_minus'\] = False

接着,从指定路径读取航空公司的客户数据文件,并查看前10行数据,了解数据的大致样貌,代码如下:

data = pd.read_csv(r'/Us.csv',encoding='utf-8')
data.head(10)

这一步能让我们直观看到诸如会员卡号、入会时间、性别、年龄等众多字段以及对应的数据内容。然后,我们可以通过data.info()查看数据的详细信息,包括每列的数据类型、非空值数量等情况,以此来掌握数据的整体结构。还可以使用data.describe().T对数据进行描述性统计分析,像各列数据的均值、标准差、最小值、最大值等统计指标,有助于我们初步了解各特征的分布情况。
此外,分析数据中的缺失值情况也很关键,通过data.isnull().sum().sort_values(ascending=False)可以统计出每列的缺失值数量,并按照从多到少进行排序。针对存在缺失值的情况,我们做了相应的数据清洗操作,例如筛选出特定列非空的数据等,代码如下:

data=data\[data\['SUM\_YR\_1'\].notnull() & data\['SUM\_YR\_2'\].notnull()\]
t1 = data\['SUM\_YR\_1'\]!=0
t2 = data\['SUM\_YR\_2'\]!=0

经过上述一系列的数据预处理操作,我们为后续的客户价值分析打下了良好的数据基础。

LRFMC模型客户价值指标构建

在进行客户价值分析时,我们选取了几个关键的指标来综合衡量客户价值。其中,R代表最近消费时间间隔,具体是用最后一次乘机时间至观察窗口末端时长来衡量;F表示消费频率,也就是观测窗口内的飞行次数;M体现消费金额,由于航空票价受到距离和舱位等级等多种因素影响,这里的舱位因素考虑舱位所对应的折扣系数平均值,距离因素则是一定时间内累积的飞行里程;另外,考虑到航空公司的会员系统中,用户入会时间长短对客户价值有一定影响,所以增加了指标入会时间长度,即客户关系长度,通过观测窗口的结束时间减去入会时间(单位为月)来计算,也就是LOAD_TIME - FFP_DATE
综合起来,我们构建了LRFMC这5个指标,具体如下:

  • L:LOAD_TIME - FFP_DATE(会员入会时间距观测窗口结束的月数)

  • R:LAST_TO_END(客户最近一次乘坐公司距观测窗口结束的月数)

  • F:FLIGHT_COUNT(观测窗口内的飞行次数)

  • M:SEG_KM_SUM(观测窗口的总飞行里程)

  • C:AVG_DISCOUNT(平均折扣率)
    通过以下代码提取相关列数据并查看前几行:

df=data\[\["FFP\_DATE","LOAD\_TIME","LAST\_TO\_END","FLIGHT\_COUNT","SEG\_KM\_SUM","avg\_discount"\]\]
df.head()

然后,定义函数LRFMC来进一步处理数据,构建包含LRFMC指标的数据结构。

为了消除数据不同特征之间量纲的影响,我们还定义了函数zscore_data对数据进行标准化处理,代码如下:

def zscore_data(data):data2=(data-data.mean(axis=0))/data.std(axis=0)data2.columns=\['Z'+i for i in data.columns\]return data2
df4=zscore_data(df3)
df4.head()

客户K-Means聚类分析

接下来,运用K-Means聚类算法对处理好的数据进行聚类分析,以此来划分不同的客户群体。首先,我们设置聚类类别数目等参数,调用K-Means算法进行模型训练,代码如下:

k=5
# 调用k-means算法
# 输入聚类类别数目,n_jobs为并行数
#n_clusters就是K值,也是聚类值
#init初始化方法,可以是kmeans++,随机,或者自定义的ndarray
model.fit(df4) # 训练

通过model.labels_可以获取每个样本所属的类别标签,进而统计各个类别的数目以及找出聚类中心等:

r1 = pd.Series(model.labels_).value_counts() # 统计各个类别的数目
r2 = pd.DataFrame(model.cluster\_centers\_) # 找出聚类中心

将相关结果进行整合,并输出到Excel文件中方便查看和后续分析。

同时,还可以将每个样本对应的类别信息整合到数据中,并输出到Excel文件,代码如下:

r3 = pd.concat(\[df4, pd.Series(model.labels_, index=df4.index)\], axis=1) # 详细输出每个样本对应的类别
r3.columns = list(df4.columns) + \['聚类类别'\] # 重命名表头

为了确定合适的聚类数目,我们通过循环计算不同聚类数目下的簇内误方差(SSE),并绘制折线图进行可视化展示,代码如下:

#n_clusters就是K值,也是聚类值#init初始化方法,可以是kmeans++,随机,或者自定义的ndarrayplt.xlabel("簇数量")
plt.ylabel("簇内误方差(SSE)")

对应的可视化图像如下:
6ee2ef9a645cc9de1bbbe2e6f5a5570b.png
其能够帮助我们直观判断选择多少个聚类类别比较合适。

客户群体特征分析与价值评估

基于聚类结果,我们绘制雷达图来对不同客户群体的特征进行可视化分析:

对应的雷达图如下:
423fe465ce6a338d6f75b93186a6d9f3.png
从“客户群特征分析图”中,结合业务情况,我们对不同客户群体进行特征分析与价值评估:

  • 客户群1:在平均折扣率(C属性)上表现最为突出,这类客户可以定义为重要挽留客户,航空公司需要格外关注他们的动态,以防其流失。

  • 客户群2:其在最近消费时间间隔(R属性)方面数值最大,而在消费频率(F属性)、总消费金额(M属性)方面是最小的,属于低价值客户群体,对航空公司的贡献相对较低。

  • 客户群3:在消费频率(F属性)、总消费金额(M属性)上数值最大,在最近消费时间间隔(R属性)上最小,这类客户是航空公司的重要保持客户,航空公司应重点投入资源,进行差异化管理,提升他们的忠诚度和满意度,进一步巩固他们的价值。

  • 客户群4:在客户关系长度(L属性)、平均折扣率(C属性)上最小,可将其归类为一般客户,对航空公司来说其价值处于中等偏下水平。

  • 客户群5:在客户关系长度(L属性)上最大,可定义为重要发展客户,虽然他们当前价值可能不是很高,但有着较大的发展潜力,航空公司可以采取相应措施促使他们增加消费。
    综上所述,通过对航空公司客户数据的深入分析和聚类处理,我们清晰地划分出了不同价值的客户群体,航空公司可以依据这些分析结果,制定精准的营销策略,合理分配资源,实现更好的运营和发展。

关于分析师

8aff12b26d1c3c22e54aefb8812aef58.png 

在此对 Yuling Fang 对本文所作的贡献表示诚挚感谢,她完成智能医学工程专业学位,专注数据相关领域。擅长 Python、SQL、Tableau、Excel,在数据采集、数据统计、数据分析方面有着专业能力。

数据获取

在公众号后台回复“航空客户”,可免费获取完整数据。

31b0b93d53732ec2d679ad3dd2a6d80e.jpeg

本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群! 

8565617e8eb0b1947d6843e3270c6c01.png


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

336c716e9847b9bb24fdc618eb4fa64b.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享》。

点击标题查阅往期内容

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化

R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

R语言基于树的方法:决策树,随机森林,Bagging,增强树

R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

spss modeler用决策树神经网络预测ST的股票

R语言中使用线性模型、回归决策树自动组合特征因子水平

R语言中自编基尼系数的CART回归决策树的实现

R语言用rle,svm和rpart决策树进行时间序列预测

python在Scikit-learn中用决策树和随机森林预测NBA获胜者

python中使用scikit-learn和pandas决策树进行iris鸢尾花数据分类建模和交叉验证

R语言里的非线性模型:多项式回归、局部样条、平滑样条、 广义相加模型GAM分析

R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类

R语言ISLR工资数据进行多项式回归和样条回归分析

R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型

R语言用泊松Poisson回归、GAM样条曲线模型预测骑自行车者的数量

R语言分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测

R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化

如何用R语言在机器学习中建立集成模型?

R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

在python 深度学习Keras中计算神经网络集成模型

R语言ARIMA集成模型预测时间序列分析

R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者

R语言基于树的方法:决策树,随机森林,Bagging,增强树

R语言基于Bootstrap的线性回归预测置信区间估计方法

R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间

R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化

Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析

R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

Matlab建立SVM,KNN和朴素贝叶斯模型分类绘制ROC曲线

matlab使用分位数随机森林(QRF)回归树检测异常值

8c3c522e6fafdb1f5669ef6023656df8.jpeg

e1640075b2d7ea755ca10f350cfcfad4.png

d4d1115c16427f9f7b273ed96b94510f.png

a8f6e9ba831595a5c2b3867adb29f056.jpeg

dc2ed065a85b6fd33e8f9414f41572c7.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498637.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

委外加工业务如何调整原材料的消耗-MIGO A11-后续调整

业务背景:用户反馈委外加工业务回收后,产品已经销售,但委外加工结算时要对原材料消耗时行调整。如果没有销售,准备采用收货冲销后重新收货,但现在已经是2024年最后一天了。。。销售业务已经做完。不可能再冲销。其实这…

工作中常用Vim的命令

Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】 目录 0. ctags -R 1.认识 Vim的几种工作模式 2.高频使用命令 2.1 修改文件 2.2 关于行号 2.3 删除多行,删除部分 2.4 复制粘贴 2.5 光标移动 2.…

2、redis的持久化

redis的持久化 在redist当中,高可用的技术包括持久化,主从复制,哨兵模式,集群。 持久化是最简单的高可用的方法,作用就是备份数据。即将数据保存到硬盘,防止进程退出导致数据丢失。 redis持久化方式&…

QT----------常用界面组件的使用

一、QComboBox 类 主要功能&#xff1a;提供一个下拉列表&#xff0c;用户可以从中选择一个或多个选项。 #include <QApplication> #include <QComboBox> #include <QVBoxLayout> #include <QWidget> #include <QMessageBox>int main(int argc…

【GridView渐进全解】第四部分GridView分页进阶

目录 一、启用分页 二、修改GridView分页模板 1.进入控件模板修改视图&#xff1a; 2.进入页码模板&#xff08;PagerTemplate&#xff09;视图 3.添加导航按钮控件 4.修改导航控件属性 三、输入页号跳转 1.进入页码模板视图 2.添加文本框及按钮控件 3.编写代码 【接…

单词统计详解---pyhton

有一个.txt的文本文件&#xff0c;对齐单词进行统计&#xff0c;并显示单词重复做多的10个单词 思路&#xff1a; 1将文本文件进行逐行处理&#xff0c;并进行空格分割处理 2新建一个字典&#xff0c;使用get方法将单词一次添加到字典中&#xff0c;并用sorted方法进行排序。…

大数据技术(六)—— Hbase集群安装

目录 一、Hbase安装 1、准备工作 1.1、安装rsync 1.2、编辑脚本 1.3、测试 2、安装Hadoop 3、安装zookeeper 3.1、下载最新稳定版 3.2、安装配置ZK 4、安装Hbase 4.1、解压文件 4.2、hbase-env.sh 4.3、backup-masters 4.4、配置hbase-site.xml 4.5、regionserv…

K8s集群平滑升级(Smooth Upgrade of K8S Cluster)

简介&#xff1a; Kubernetes ‌ &#xff08;简称K8s&#xff09;是一个开源的容器编排和管理平台&#xff0c;由Google开发并维护。它最初是为了解决谷歌内部大规模容器管理的问题而设计的&#xff0c;后来在2014年开源&#xff0c;成为云原生技术的核心组成部分。‌‌1 K8…

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中的应用前景

结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中具有广泛的应用前景。如有滤波、导航方面的代码定制需求,可通过文末卡片联系作者获得帮助 文章目录 结合LSTM和UKF的背景结合LSTM和UKF的优势应用实例研究现状MATLAB代码示例结论结合LSTM和…

Spring源码下载与测试

引言 下载了Spring源码想阅读阅读&#xff0c;发现用的是Gradle&#xff0c;原来实习的时候公司用的也是Gradle&#xff0c;但不怎么会用&#xff0c;感觉相比于Maven&#xff0c;Gradle更适合非常大型的项目&#xff0c;因为他的jar包下载的是真快 下载 由于Spring6开始就强…

【HarmonyOS之旅】ArkTS语法(三) -> 渲染控制

目录 1 -> 条件渲染 2 -> 循环渲染 3 -> 数据懒加载 3.1 -> IDataSource类型说明 3.2 -> DataChangeListener类型说明 ArkTS也提供了渲染控制的能力。条件渲染可根据应用的不同状态&#xff0c;渲染对应状态下的UI内容。循环渲染可从数据源中迭代获取数据&…

再见2024,你好2025

再见2024&#xff0c;你好2025 1月2月3月4月5~10月11~12月一些收获读书跑步工作 为了让这篇博客不那么平淡&#xff0c;一句话可以总结为&#xff1a;平平无奇的琐碎&#xff0c;没有亮点成果。 也可以数字化概述&#xff1a;涨了1万粉&#xff0c;赚了10万&#xff0c;跑步300…

阴阳师の新手如何速刷5个SP/SSR?!(急速育成)

目标&#xff1a;攒5个SP/SSR式神&#xff0c;参与急速育成&#xff0c;省四个黑蛋&#xff08;想要快速升级技能而且经常上场的式神在攒够5个式神前先不升级&#xff09;【理论上组成&#xff1a;10蓝40蓝预约召唤福利20修行or抽卡】 关键点&#xff1a;蓝票&#xff0c;新手…

Kerberos用户认证-数据安全-简单了解-230403

hadoop安全模式官方文档&#xff1a;https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html kerberos是什么 kerberos是计算机网络认证协议&#xff0c;用来在非安全网络中&#xff0c;对个人通信以安全的手段进行身份认证。 概念&#…

第 29 章 - ES 源码篇 - 网络 IO 模型及其实现概述

前言 本文介绍了 ES 使用的网络模型&#xff0c;并介绍 transport&#xff0c;http 接收、响应请求的代码入口。 网络 IO 模型 Node 在初始化的时候&#xff0c;会创建网络模块。网络模块会加载 Netty4Plugin plugin。 而后由 Netty4Plugin 创建对应的 transports&#xff0…

SQL 基础教程 - SQL SELECT 语句

SQL SELECT DISTINCT 语句 SELECT DISTINCT 语句用于返回唯一不同的值。 在表中&#xff0c;一个列可能会包含多个重复值&#xff0c;有时您也许希望仅仅列出不同&#xff08;distinct&#xff09;的值。 DISTINCT 关键词用于返回唯一不同的值。 SQL SELECT DISTINCT 语法 …

计算机网络基础知识(7)中科大郑铨老师笔记

协议层次及服务模型 计算机网络的分层设计方法&#xff0c;将复杂的网络功能分解为多个层次&#xff0c;每一层实现特定的功能。 互联网中的TCP/IP协议族&#xff0c;包括物理层、链 路层、网络层、传输层和应用层的功能。然后&#xff0c;数据传输的 过程&#xff0c;从应用层…

Microsoft word@【标题样式】应用不生效(主要表现为在导航窗格不显示)

背景 随笔。Microsoft word 2013基础使用&#xff0c;仅做参考和积累。 问题 Microsoft word 2013&#xff0c;对段落标题文字应用【标题样式】不生效&#xff08;主要表现为在导航窗格不显示&#xff09;。 图1 图2 观察图1和图2&#xff0c;发现图1的文字在应用【标题一】样…

TP 钱包插件版本的使用

目前 TokenPocket 的几个平台中&#xff0c;以 ios 和 安卓版本最为常见&#xff0c;其实很少有人知道&#xff0c;浏览器上有一个插件版本的 Tp, 用电脑多的话&#xff0c;这也是一个挺好的选择。 最新版本现在支持Chrome、Brave 浏览器、Edge&#xff08;Firefox及Opera正在…

微信流量主挑战:三天25用户!功能未完善?(新纪元4)

&#x1f389;【小程序上线第三天&#xff01;突破25用户大关&#xff01;】&#x1f389; 嘿&#xff0c;大家好&#xff01;今天是我们小程序上线的第三天&#xff0c;我们的用户量已经突破了25个&#xff01;昨天还是16个&#xff0c;今天一觉醒来竟然有25个&#xff01;这涨…