基于聚类算法完成航空公司客户价值分析任务

简介: 基于聚类算法完成航空公司客户价值分析任务

一、基于聚类算法完成航空公司客户价值分析任务

1、✌ 任务描述

1、借助航空公司数据,对客户进行分类

2、对不同类别的客户进行特征分析,比较不同类别客户的价值

3、对不同价值的客户进行个性化服务,指定相应的营销策略

2、✌ 数据集

其中数据中包括62988个客户样本,44种属性,数据下载地址

2.1 ✌ 数据集中字段含义

3、✌ 方法

基于聚类算法完成航空客户分析任务主要流程有:数据预处理、模型训练与对数据的预测、分析与决策。详细步骤见下图。

3.1 ✌ 数据预处理

首先导入一些所需模块

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime
import sklearn.preprocessing
import sklearn.cluster

读取数据,数据是以CSV文件的形式存储的,每行代表一个客户,每列代表一个属性字段。

air_data=pd.read_csv('air_data.csv')
air_data.shape

观察前5条数据

air_data.head(5)

展示每列数据的类型,object代表文本,int64代表整数,float64代表浮点数,bool类型代表布尔值

air_data.dtypes

观察每列数据的具体描述,只适用于数值型变量

air_data.describe().T

去除重复数据

air_data=air_data.drop_duplicates()

观察数据是否有缺失值

air_data.isnull().sum()

3.2 ✌ 特征工程
3.2.1 ✌ RFM模型

我们需要根据给定的44个属性来对客户价值进行价值分析,也就是对不同的客户进行分类,特别地,对于客户价值分析的一个经典模型是 RFM 模型。

  • Recency: 最近消费时间间隔。
  • Frequency: 客户消费频率。
  • Monetary Value: 客户总消费金额。
    使用 RFM 模型主要根据其中的RFM三个特征来对用户进行分析,将客户群体细分为重要保持客户、重要发展客户、重要挽留客户、一般客户、低价值客户五类。
3.2.2 ✌ 变体-LRFMC模型

考虑到商用航空行业与一般商业形态的不同,国内外航空公司在RFM模型的基础上,还加上了 L 客户关系时长以及 C 客户所享受的平均折扣率这两个特征用于客户分群与价值分析,得到航空行业的LRFMC模型:

  • Length of Relationship: 客户关系时长,反映可能的活跃时长。
  • Recency: 最近消费时间间隔,反映当前的活跃状态。
  • Frequency: 客户消费频率,反映客户的忠诚度。
  • Mileage: 客户总飞行里程,反映客户对乘机的依赖性。
  • Coefficient of Discount: 客户所享受的平均折扣率,侧面反映客户价值高低。
load_time = datetime.datetime.strptime('2014/03/31', '%Y/%m/%d')
ffp_dates = [datetime.datetime.strptime(ffp_date, '%Y/%m/%d') for ffp_date in air_data['FFP_DATE']]
length_of_relationship = [(load_time - ffp_date).days for ffp_date in ffp_dates]
air_data['LEN_REL'] = length_of_relationship

模型只需要这几列

features = ['LEN_REL','FLIGHT_COUNT','avg_discount','SEG_KM_SUM','LAST_TO_END']
data = air_data[features]
features = ['L','F','C','M','R']
data.columns = features

观察前5行数据

display(data.head())
display(data.describe().T)

3.2.3 ✌ 标准化

对特征进行标准化,是各列的均值为0、方差为1

data=(data.mean(axis=0))/(data.std(axis=0))
ss = sklearn.preprocessing.StandardScaler(with_mean=True, with_std=True)#标准化
data = ss.fit_transform(data) #数据转换
data = pd.DataFrame(data, columns=features)
data_db = data.copy()

3.3 ✌ 模型训练与对数据的预测

我们想要将将客户群体细分为重要保持客户、重要发展客户、重要挽留客户、一般客户、低价值客户五类,

于是我们可以用 k-means 聚类算法进行聚类,类别的数量可以人为控制。

前面我们已经通过数据处理得到了我们 LRFMC 模型需要的特征,接下来就使用 k-means 聚类算法来分析数据。

这里我们使用机器学习库 scikit-learn 中现有的 kmeans 函数的实现。

3.3.1 ✌ KMeans聚类算法

将目标样本分为5个群体

from sklearn.cluster import KMeans
data=KMeans(n_clusters=5).fit(data)

查看模型学习出来的5个群体中心,以及5个群体所包含的样本总数。

r1 = pd.Series(km.labels_).value_counts()
r2 = pd.DataFrame(km.cluster_centers_)
r = pd.concat([r2, r1], axis=1)
r.columns = list(data.columns) + ['counts']
r

查看每个样本预测的群体的标签

kms.labels_

3.4 ✌ 尝试使用RFM模型
data_rfm=data[['R','F','M']]
data_rfm.head()

kms.fit(data_rfm)
kms.labels_

r1 = pd.Series(km.labels_).value_counts()
r2 = pd.DataFrame(km.cluster_centers_)
rr = pd.concat([r2, r1], axis=1)
rr = pd.DataFrame(ss.fit_transform(rr) )
rr.columns = list(data_rfm.columns) + ['counts']
rr

3.5 ✌ DBSCAN模型对LCRFM特征进行计算

除了Kmeans聚类算法外,我们还可以使用DBSCAN等聚类算法进行建模。

from sklearn.cluster import DBSCAN
# db = DBSCAN(eps=10,min_samples=2).fit(data_db)
# Kagging debug
db = DBSCAN(eps=10,min_samples=2).fit(data_db.sample(10000))
DBSCAN_labels = db.labels_

3.9 ✌ 根据LCRFM结果进行分析

我们这里是对Kmeans算法使用LCRFM模型进行分析:

对应实际业务对聚类结果进行分值离散转化,对应1-5分,其中属性值越大,分数越高:

(1)✌ 重要保持客户

平均折扣率高(C↑),最近有乘机记录(R↓),乘机次数高(F↑)或里程高(M↑):

这类客户机票票价高,不在意机票折扣,经常乘机,是最理想的客户类型。

公司应优先将资源投放到他们身上,维持这类客户的忠诚度。

(2)✌ 重要发展客户

平均折扣率高(C↑),最近有乘机记录(R↓),乘机次数低(F↓)或里程低(M↓):

这类客户机票票价高,不在意机票折扣,最近有乘机记录,但总里程低,具有很大的发展潜力。

公司应加强这类客户的满意度,使他们逐渐成为忠诚客户。

(3)✌ 重要挽留客户

平均折扣率高(C↑),乘机次数高(F↑)或里程高(M↑),最近无乘机记录(R↑):

这类客户总里程高,但较长时间没有乘机,可能处于流失状态。

公司应加强与这类客户的互动,召回用户,延长客户的生命周期。

(4)✌ 一般客户

平均折扣率低(C↓),最近无乘机记录(R↑),乘机次数高(F↓)或里程高(M↓),入会时间短(L↓):

这类客户机票票价低,经常买折扣机票,最近无乘机记录,可能是趁着折扣而选择购买,对品牌无忠诚度。

公司需要在资源支持的情况下强化对这类客户的联系。

(5)✌ 低价值客户

平均折扣率低(C↓),最近无乘机记录(R↑),乘机次数高(F↓)或里程高(M↓),入会时间短(L↓):

这类客户与一般客户类似,机票票价低,经常买折扣机票,最近无乘机记录,可能是趁着折扣而选择购买,对品牌无忠诚度。

✌ 结果分析

  • 群体1的L属性最大
  • 群体2的L、C属性最小
  • 群体3的C属性上最大
  • 群体4的M、F属性属性最大,R属性最小
  • 群体5的R属性最大,F、M属性最小
  • 其中每项指标的实际业务意义为:
  • L:加入会员的时长。越大代表会员资历越久
  • R:最近一次乘机时间。越大代表越久没乘机
  • F:乘机次数。越大代表乘机次数越多
  • M:飞行总里程。越大代表总里程越多
  • C:平均折扣率。越大代表折扣越弱,0表示0折免费机票,10代表无折机票
  • 重要保持客户:客户群4
  • 重要发展客户:客户群3
  • 重要挽留客户:客户群1
  • 一般客户:客户群2
  • 低价值客户:客户群5

✌ 决策

重要发展客户、重要保持客户、重要挽留客户这三类客户其实也对应着客户生命周期中的发展期、稳定器、衰退期三个时期。从客户生命周期的角度讲,也应重点投入资源召回衰退期的客户。

一般而言,数据分析最终的目的是针对分析结果提出并开展一系列的运营/营销策略,以期帮助企业发展。在本实例中,运营策略有三个方向:

提高活跃度:提高一般客户、低价值客户的活跃度。将其转化为优质客户

提高留存率:与重要挽留客户互动,提高这部分用户的留存率

提高付费率:维系重要保持客户、重要发展客户的忠诚度,保持企业良好收入

每个方向对应不同的策略,如会员升级、积分兑换、交叉销售、发放折扣券等手段,此处不再展开。


目录
相关文章
|
11天前
|
算法
计算机算法设计与分析(1-6章 复习笔记)
计算机算法设计与分析(1-6章 复习笔记)
|
1天前
|
机器学习/深度学习 算法 数据挖掘
算法金 | K-均值、层次、DBSCAN聚类方法解析
**摘要:** 这篇文章介绍了聚类分析的基本概念和几种主要的聚类算法。聚类是无监督学习中用于发现数据内在结构的技术,常用于市场分析、图像分割等场景。K-均值是一种基于划分的算法,简单高效但易受初始值影响;层次聚类包括凝聚和分裂方式,形成层次结构但计算复杂;DBSCAN基于密度,能处理任意形状的簇,但参数选择敏感。文章还讨论了这些算法的优缺点和适用场景,并提供了相关资源链接和Python实现。
22 9
算法金 | K-均值、层次、DBSCAN聚类方法解析
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
17 1
|
7天前
|
算法 Java Go
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
|
3天前
|
机器学习/深度学习 算法 搜索推荐
机器学习聚类算法
聚类算法是无监督学习技术,用于发现数据集中的自然群体,如用户画像、广告推荐等。常见的聚类算法包括K-Means,它基于距离分配样本至簇,适合球形分布;层次聚类则通过合并或分裂形成簇,能发现任意形状的簇;DBSCAN依据密度来聚类,对噪声鲁棒。KMeans API中`sklearn.cluster.KMeans(n_clusters=8)`用于指定簇的数量。评估聚类效果可使用轮廓系数、SSE等指标,Elbow方法帮助选择合适的K值。
|
4天前
|
机器学习/深度学习 算法 数据挖掘
机器学习之聚类——MeanShift算法和图像矢量量化
机器学习之聚类——MeanShift算法和图像矢量量化
4 0
|
5天前
|
机器学习/深度学习 算法 数据可视化
K-means聚类算法:原理、实例与代码分析
K-means聚类算法:原理、实例与代码分析
14 0
|
11天前
|
人工智能 算法
计算机算法设计与分析 第3章 动态规划 (笔记)
计算机算法设计与分析 第3章 动态规划 (笔记)
|
1天前
|
算法
基于GA遗传优化的混合发电系统优化配置算法matlab仿真
**摘要:** 该研究利用遗传算法(GA)对混合发电系统进行优化配置,旨在最小化风能、太阳能及电池储能的成本并提升系统性能。MATLAB 2022a用于实现这一算法。仿真结果展示了一系列图表,包括总成本随代数变化、最佳适应度随代数变化,以及不同数据的分布情况,如负荷、风速、太阳辐射、弃电、缺电和电池状态等。此外,代码示例展示了如何运用GA求解,并绘制了发电单元的功率输出和年变化。该系统原理基于GA的自然选择和遗传原理,通过染色体编码、初始种群生成、适应度函数、选择、交叉和变异操作来寻找最优容量配置,以平衡成本、效率和可靠性。
|
2天前
|
机器学习/深度学习 算法
基于鲸鱼优化的knn分类特征选择算法matlab仿真
**基于WOA的KNN特征选择算法摘要** 该研究提出了一种融合鲸鱼优化算法(WOA)与K近邻(KNN)分类器的特征选择方法,旨在提升KNN的分类精度。在MATLAB2022a中实现,WOA负责优化特征子集,通过模拟鲸鱼捕食行为的螺旋式和包围策略搜索最佳特征。KNN则用于评估特征子集的性能。算法流程包括WOA参数初始化、特征二进制编码、适应度函数定义(以分类准确率为基准)、WOA迭代搜索及最优解输出。该方法有效地结合了启发式搜索与机器学习,优化特征选择,提高分类性能。

热门文章

最新文章