数据挖掘:航空公司的客户价值分析

需求分析

理解并掌握聚类分析方法,掌握数据的标准化,掌握寻找最佳聚类数,掌握聚类的绘图,掌握聚类分析的应用场景。

系统实现

实验流程分析

  • 借助航空公司数据,对客户进行分类
  • 对不同类别的客户进行特征分析,比较不同类别客户的价值
  • 对不同价值的客户类别进行个性化服务,制定相应的营销策略

数据准备

  • 加载本次实验所需要用到的包

打开spyder,输入以下代码

import pandas as pd
import numpy as np
from sklearn.metrics import silhouette_score
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans,AgglomerativeClustering
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
import datetime
plt.rcParams['font.sans-serif']=['SimHei']  #中文正常显示
plt.rcParams['axes.unicode_minus']=False   #让负号正常显示
  • 读取数据,查看数据和整理数据信息

  https:staticfile.eduplus.netldataSetsystemLiblc3b5c0f37fe24797808613bc713d5585.rar。压缩包中的数据为csv数据,解压并将该数据移动到c:/数据分析/data目录中

读取并查看数据

 

取出SUM_YR_1和SUM_YR_2不为空的样本
 

去除掉第一年、第二年票价均为0,同时平均折扣系数大于零和飞行里程大于零的数据
 

  • 取出LRFMC模型数据,并整理

取出LRFMC模型数据

计算入会天数 

L = pd.to_datetime(new_data['LOAD_TIME'])-pd.to_datetime(new_data['FFP_DATE'])
L = np.int64(L.astype(str).str.split().str[0])  # 会员入会天数          
L=pd.DataFrame(L,columns=['Days'])
air_features = pd.concat([L, new_data.iloc[:, 2:]], axis=1)   # 横向拼接
print(air_features.head())

更改列名,描述性统计 

 重置索引

数据标准化

 

寻找最佳聚类个数

  • 绘制拐点图,寻找下降最剧烈的点
sse=[]
for i in range(2,10):
    result=KMeans(i,random_state=100).fit(data_scale)
    sse.append(result.inertia_)
plt.figure()
plt.plot(range(2,10),sse,marker='o')
plt.xlabel('k')
plt.ylabel('sse')
plt.show()

k=3/4时最激烈 

  • 绘制轮廓系数图,寻找轮廓系数高的点
sil=[]
for i in range(2,8):
    result=KMeans(i,random_state=100).fit(data_scale)
    sil.append(silhouette_score(air_features,result.labels_))
plt.figure()
plt.plot(range(2,8),sil,marker='o')
plt.xlabel('k')
plt.ylabel('sil')
plt.show()

 k=2/3轮廓系数最高,综合k=3

建立聚类模型

  • 绘制聚类图,观察聚类情况

kmeans聚类

绘制聚类图

结果分析

  • 合并数据,并加入分类

  • 聚合各类,对各特征计算平均值

  • 加入客户分类并画图
def customer_type(cluser):
    if cluser==0:
        return '重要发展客户'
    elif cluser==1:
        return '最重要客户'
    else:
        return '一般客户'

air_features['客户类型']=air_features['cluster'].apply(customer_type)
print(air_features.head())

 绘制图像

customer_count=air_features['客户类型'].value_counts()
plt.figure()
plt.subplot(1,2,1)
plt.bar(customer_count.index,customer_count.values)
#添加文本
for a,b in zip(customer_count.index,customer_count.values):
    plt.text(a,b,b,ha='center',va='bottom',color='b')
plt.subplot(1,2,2)
plt.pie(customer_count.values,labels=list(customer_count.index),autopct='%.1f%%', textprops={'color':'r'},shadow=True)
plt.legend(loc=1)
plt.show()

  • 34
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于数据挖掘航空公司客户价值分析主要包括以下步骤: 1. 数据抽取:抽取航空公司2012年4月1日至2014年3月31日的数据。 2. 数据探索分析(EDA):对抽取的数据进行探索分析,包括数据缺失值与异常值的探索分析、数据清洗、特征构建、标准化等操作。 3. 客户分群:基于RFM模型,使用K-means算法进行客户分群。 4. 客户价值分析:针对模型结果得到不同价值客户,采用不同的营销手段,提供定制化服务。 具体步骤如下: 1. 数据抽取:从航空公司2012年4月1日至2014年3月31日的数据中抽取所需数据,包括客户ID、飞行次数、飞行里程、平均折扣率、飞行时间间隔、总票价等信息。 2. 数据探索分析(EDA):对抽取的数据进行探索分析,包括数据缺失值与异常值的探索分析、数据清洗、特征构建、标准化等操作。其中,数据清洗包括去除重复值、填充缺失值、处理异常值等操作;特征构建包括构建RFM模型所需的三个特征:最近一次飞行时间间隔(Recency)、飞行频率(Frequency)和飞行里程(Monetary);标准化则是将数据转换为标准正态分布。 3. 客户分群:基于RFM模型,使用K-means算法进行客户分群。RFM模型是一种基于客户价值分析模型,其中R表示最近一次消费时间间隔,F表示消费频率,M表示消费金额。K-means算法是一种聚类算法,可以将客户分为不同的群体。 4. 客户价值分析:针对模型结果得到不同价值客户,采用不同的营销手段,提供定制化服务。例如,对于高价值客户,可以提供更高档次的服务,如VIP贵宾室、免费机票等;对于低价值客户,可以提供优惠券、积分兑换等服务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值