小工具知识网

当前位置: 首页 > 行业知识 > 数据挖掘:航空公司的客户价值分析

行业知识

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

2026-11-01 20:53:57 来源:互联网转载

需求分析

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

系统实现

实验流程分析

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

    数据准备

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

      打开spyder,输入以下代码

      import pandas as pdimport numpy as npfrom sklearn.metrics import silhouette_scorefrom sklearn.decomposition import PCAfrom sklearn.cluster import KMeans,AgglomerativeClusteringfrom sklearn.preprocessing import StandardScalerimport matplotlib.pyplot as pltimport datetimeplt.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()

上一篇:纯净版系统win7_win7原版纯净版_真正win7纯净版镜像64位下载

下一篇:两台服务器怎么端口捆绑?