机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

2024-02-27 1063阅读

温馨提示:这篇文章已超过442天没有更新,请注意相关的内容是否还可用!

机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

作者:i阿极

作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页

😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪


大家好,我i阿极。喜欢本专栏的小伙伴,请多多支持

专栏案例:机器学习案例
机器学习(一):线性回归之最小二乘法
机器学习(二):线性回归之梯度下降法
机器学习(三):基于线性回归对波士顿房价预测
机器学习(四):基于KNN算法对鸢尾花类别进行分类预测
机器学习(五):基于KNN模型对高炉发电量进行回归预测分析
机器学习(六):基于高斯贝叶斯对面部皮肤进行预测分析
机器学习(七):基于多项式贝叶斯对蘑菇毒性分类预测分析
机器学习(八):基于PCA对人脸识别数据降维并建立KNN模型检验
机器学习(十四):基于逻辑回归对超市销售活动预测分析
机器学习(十五):基于神经网络对用户评论情感分析预测
机器学习(十六):线性回归分析女性身高与体重之间的关系
机器学习(十七):基于支持向量机(SVM)进行人脸识别预测
机器学习(十八):基于逻辑回归对优惠券使用情况预测分析
机器学习(十九):基于逻辑回归对某银行客户违约预测分析
机器学习(二十):LightGBM算法原理(附案例实战)
机器学习(二十一):基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
机器学习(二十二):基于逻辑回归(Logistic Regression)对股票客户流失预测分析

文章目录

  • 机器学习:基于逻辑回归对航空公司乘客满意度的因素分析
  • 1、前言
  • 2、数据说明
  • 3、数据读取及预处理
  • 4、客户满意度分布情况
  • 5、乘客其他情况
    • 5.1 不同满意度的乘客中男女人数
    • 5.2 不同满意度的乘客中客户类型的人数
    • 5.3 不同满意度的乘客中旅行类型的人数
    • 6、相关性分析
    • 7、建模预测

      1、前言

      航空公司乘客满意度是一个关键的指标,对于航空公司来说至关重要。了解乘客满意度的因素可以帮助航空公司优化服务,提升乘客体验,从而提高乘客忠诚度和口碑。

      本文旨在基于逻辑回归方法对航空公司乘客满意度的因素进行分析。逻辑回归是一种广泛应用于分类问题的统计学习方法,能够帮助我们理解和预测不同因素对乘客满意度的影响程度。

      在本文中,我们将收集与乘客满意度相关的数据,包括乘客的个人信息、航班信息、服务评价等方面。然后,我们将使用逻辑回归模型对这些数据进行建模和分析,以确定对乘客满意度具有显著影响的因素。

      通过本文的研究,我们期望能够揭示出哪些因素对乘客满意度的影响最为显著,从而为航空公司制定改进策略和提供更优质的服务提供依据。

      本文将首先介绍航空公司乘客满意度的研究背景和意义,然后详细阐述逻辑回归方法的原理和应用。接着,我们将描述数据收集和预处理的过程,并展示实证分析的结果和讨论。最后,我们将总结研究的主要发现,并提出对未来研究的展望。

      通过对航空公司乘客满意度的因素进行逻辑回归分析,我们可以为航空公司提供有针对性的改进建议,提升乘客满意度,从而增强竞争力和业务增长。

      2、数据说明

      id唯一的身份证件
      Gender乘客性别(女性、男性)
      CustomerType客户类型(忠诚客户、不忠诚客户)
      Age乘客的实际年龄
      TypeOfTravel乘客飞行目的(个人旅行、商务旅行)
      Class乘客飞机上的旅行舱位(商务舱、环保舱、生态升级版)
      FlightDistance此旅程的飞行距离
      InflightWifiservice机上wifi服务的满意度(0:不适用;1-5)
      DepartureArrivalTimeCconvenient出发/到达时间的满意度方便
      EaseOfOnlineBooking在线预订的满意度
      GateLocation登机口位置满意度
      FoodAndDrink食物和饮料的满意度
      OnlineBoarding网上登机满意度
      SeatComfort座椅舒适度满意度
      InflightEntertainment机上娱乐的满意度
      OnBoardService机上服务的满意度
      LegRoomService腿部客房服务的满意度
      BaggageHandling行李处理满意度
      CheckinService入住服务的满意度
      InflightService机上服务的满意度
      Cleanliness清洁度的满意度
      DepartureDelayInMinutes出发时延误几分钟
      ArrivalDelayInMinutes抵达时延迟几分钟
      satisfaction航空公司满意度(满意、中性或不满意)

      3、数据读取及预处理

      对数据进行导入。

      import numpy as np
      import pandas as pd
      import matplotlib.pyplot as plt
      import warnings
      warnings.filterwarnings('ignore')
      # 设置字体为中文字体(例如SimHei、Arial Unicode MS等)
      plt.rcParams['font.sans-serif'] = 'SimHei'
      plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
      df = pd.read_csv(r"D:\Download\data.csv")
      df.head()
      

      机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

      使用isna().sum()对数据查看是否有缺失值

      df.isna().sum()
      

      机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

      发现ArrivalDelayInMinutes列有297个缺失值,本文将ArrivalDelayInMinutes列的平均值进行填充。

      df['ArrivalDelayInMinutes'] = df['ArrivalDelayInMinutes'].fillna(round(df['ArrivalDelayInMinutes'].mean(),2))
      

      使用duplicated().sum() 查看是否有重复值

      df.duplicated().sum()  
      

      使用shape查看数据大小,结果发现有97247行,24列

      df.shape
      

      4、客户满意度分布情况

      为了展示乘客满意度的分类分布情况,将用绘制饼图来进行解释。

      tmp = df['satisfaction'].value_counts()
      fig = plt.figure(figsize=(6,6))
      plt.pie(tmp.values, 
              labels=tmp.index, 
              autopct='%1.1f%%', 
              counterclock=False, 
              startangle=90,
              )
      plt.show()
      

      机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

      在航空公司满意度的统计中,仅有43.3%的乘客觉得满意,剩下的56.7%的乘客是中立态度或是不满意。

      5、乘客其他情况

      5.1 不同满意度的乘客中男女人数

      通过使用plt.bar函数绘制了一个柱状图,用于展示不同满意度的乘客中男女人数的对比情况。

      tmp = df.groupby(['satisfaction','Gender']).agg({'Class':'count'}).reset_index()
      unit_topics = tmp['satisfaction'].unique()
      As = tmp.query('Gender == "Female"')['Class'].tolist()
      Bs = tmp.query('Gender == "Male"')['Class'].tolist()
      plt.figure(figsize=(10, 8))
      plt.bar(range(len(As)), As, color="#D6E3B7", label='Female')
      plt.bar(range(len(Bs)), Bs, bottom = As, color="#95A96A", label='Male')
      ax = plt.subplot()
      ax.set_xticks(range(len(unit_topics)))
      ax.set_xticklabels(unit_topics)
      ax.set_ylabel("Number")
      plt.legend()
      plt.title('不同满意度的乘客中男女人数',fontSize=18)
      plt.show()
      

      机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

      在不同满意度的乘客中,性别似乎不是是否满意的关键点,两者的男女比例接近1:1。

      5.2 不同满意度的乘客中客户类型的人数

      通过使用plt.bar函数绘制了一个柱状图,用于展示不同满意度的乘客中客户类型的人数对比情况。

      tmp = df.groupby(['satisfaction','CustomerType']).agg({'Class':'count'}).reset_index()
      unit_topics = tmp['satisfaction'].unique()
      As = tmp[tmp['CustomerType'] == 'Loyal Customer']['Class'].tolist()
      Bs = tmp[tmp['CustomerType'] == 'disloyal Customer']['Class'].tolist()
      plt.figure(figsize=(10, 8))
      plt.bar(range(len(As)), As, color="#D6E3B7", label='Loyal Customer')
      plt.bar(range(len(Bs)), Bs, bottom = As, color="#95A96A", label='Disloyal Customer')
      ax = plt.subplot()
      ax.set_xticks(range(len(unit_topics)))
      ax.set_xticklabels(unit_topics)
      ax.set_ylabel("Number")
      plt.legend()
      plt.title('不同满意度的乘客中客户类型的人数',fontSize=18)
      

      机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

      在不同类型的客户中,不忠诚客户更多的是不满意航空公司的服务;在满意服务的人群中,忠诚客户的占比远大于不忠诚客户。

      5.3 不同满意度的乘客中旅行类型的人数

      使用plt.bar函数绘制了一个柱状图,展示了不同满意度的乘客中旅行类型的人数对比情况。

      tmp = df.groupby(['satisfaction','TypeOfTravel']).agg({'Class':'count'}).reset_index()
      unit_topics = tmp['satisfaction'].unique()
      As = tmp[tmp['TypeOfTravel'] == 'Business travel']['Class'].tolist()
      Bs = tmp[tmp['TypeOfTravel'] == 'Personal Travel']['Class'].tolist()
      plt.figure(figsize=(10, 8))
      plt.bar(range(len(As)), As, color="#D6E3B7", label='Business travel')
      plt.bar(range(len(Bs)), Bs, bottom = As, color="#95A96A", label='Personal Travel')
      ax = plt.subplot()
      ax.set_xticks(range(len(unit_topics)))
      ax.set_xticklabels(unit_topics)
      ax.set_ylabel("Number")
      plt.legend()
      plt.title('不同满意度的乘客中旅行类型的人数',fontSize=18)
      plt.show()
      

      机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

      在中立或不满意的人群中,进行商务出行和私人出行的人群占比接近1:1;而满意的人群中,进行商务出行的人数更多。

      6、相关性分析

      为了计算DataFrame df 中各列之间的相关性,并通过热力图可视化了相关性矩阵。

      df['DepartureDelayInMinutesLabel'] = pd.cut(df["DepartureDelayInMinutes"],[0,10,30,60,120,10000],\
               labels=["2h"],right=False)
      df['ArrivalDelayInMinutesLabel'] = pd.cut(df["ArrivalDelayInMinutes"],[0,10,30,60,120,10000],\
               labels=["2h"],right=False)
      df.drop(['DepartureDelayInMinutesLabel','ArrivalDelayInMinutesLabel'], axis=1, inplace=True)
      ## 独热编码处理
      from sklearn.preprocessing import LabelEncoder, MinMaxScaler  
      le = LabelEncoder()
      for i in df.columns:
          if df[i].dtypes == 'O':
              df[i] = le.fit_transform(df[i])   
       
      ## 计算相关性
      tmp = round(df.corr(),2)
      labels = tmp.columns.tolist()  
      plt.figure(figsize=(16,16))
      plt.xticks(np.arange(len(labels)), labels=labels, 
                           rotation=90, rotation_mode="anchor", ha="right")
      plt.yticks(np.arange(len(labels)), labels=labels)
      plt.imshow(tmp.values)
      for i in range(len(labels)):
              for j in range(len(labels)):
                  text = plt.text(j, i, tmp.values[i, j],ha="center", va="center", color="black")
      plt.tight_layout()
      plt.show()  
      

      机器学习:基于逻辑回归对航空公司乘客满意度的因素分析

      7、建模预测

      对数据集进行了划分,并使用逻辑回归模型进行建模和预测,并进行了模型评估。

      ## 划分数据集
      X = df_model.iloc[:,:-1]
      Y = df_model.iloc[:,-1:]
      from sklearn.model_selection import train_test_split
      X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=2023)
      ## 使用逻辑回归进行建模
      from sklearn.linear_model import LogisticRegression
      model = LogisticRegression()
      model.fit(X_train, y_train)
      model
      y_pre = model.predict(X_test)  ##预测
      ## 模型评估
      from sklearn.metrics import accuracy_score, classification_report
      accuracy_score(y_pre, y_test)  ##模型预测准确率
      

      最后,通过打印输出 accuracy_score(y_pre, y_test),显示模型的预测准确率。准确率为 0.8386118251928021,表示模型在测试集上的预测准确率约为 83.86%。准确率是评估分类模型性能的常用指标之一,它表示模型正确预测的样本比例。在这个案例中,逻辑回归模型对测试集的预测准确率达到了约 83.86%,这意味着模型能够正确预测测试集中约 83.86% 的样本。


      📢文章下方有交流学习区!一起学习进步!💪💪💪

      📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒

      📢你的支持和鼓励是我创作的动力❗❗❗

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]