系列文章目录

第一章 【大数据竞赛】2022MathorCup大数据竞赛 B题 北京移动用户体验影响因素研究 题目分析
第二章【大数据竞赛】2022MathorCup大数据挑战赛 B题 北京移动用户体验影响因素研究 探索性数据分析


文章目录

  • 系列文章目录
  • 前言
  • 一、准备阶段
    • 1.数据准备
    • 2.导入依赖包
    • 3.导入数据
  • 二、探索性数据分析
    • 1.变量识别
    • 2.单变量分析
    • 2.双变量分析
  • 总结

前言

  该系列文章分为问题分析探索性数据分析特征工程模型建立四个部分,以此来记录完成本次竞赛的具体思路,及对部分问题的补充研究。
  探索性数据分析(EDA)主要包括三部分:变量识别单变量分析双变量分析,具体概述可查看【EDA与特征工程】数据探索与特征工程综合指南,本文对附件一数据进行探索性分析进行记录,对竞赛思路的回顾和补充。

若需要附件数据,评论区留邮箱,看到会回复。


一、准备阶段

1.数据准备

  将原始数据转换为csv文件格式,保存到data路径,方便之后操作。

import pandas as pd
import openpyxl
import os# 创建一个data文件夹,用于存放csv格式的数据
if not os.path.exists('D:\\Jupyter\\Competition\\20221220_bigdata\\初赛赛题 2022年MathorCup大数据竞赛\\2022年MathorCup大数据竞赛-赛道B初赛\\data'):os.makedirs('D:\\Jupyter\\Competition\\20221220_bigdata\\初赛赛题 2022年MathorCup大数据竞赛\\2022年MathorCup大数据竞赛-赛道B初赛\\data')df1 = pd.read_excel('D:\\Jupyter\\Competition\\20221220_bigdata\\初赛赛题 2022年MathorCup大数据竞赛\\2022年MathorCup大数据竞赛-赛道B初赛\\附件1语音业务用户满意度数据.xlsx',engine='openpyxl').iloc[:,:55]
df1.to_csv('D:\\Jupyter\\Competition\\20221220_bigdata\\初赛赛题 2022年MathorCup大数据竞赛\\2022年MathorCup大数据竞赛-赛道B初赛\\data\\附件1语音业务用户满意度数据.csv',sep=',',index=False,encoding='utf_8_sig')# 设置工作路径
os.chdir('D:\\Jupyter\\Competition\\20221220_bigdata\\初赛赛题 2022年MathorCup大数据竞赛\\2022年MathorCup大数据竞赛-赛道B初赛'')

2.导入依赖包

# 导入依赖包
import pandas as pd
import numpy as np
import missingno as msno
import scipy.stats as st
import matplotlib.pyplot as plt
import seaborn as sns# 设置图像样式
plt.style.use('seaborn-darkgrid')
sns.set(style = 'darkgrid')
# 设置图像字体
plt.rcParams['font.sans-serif'] = ['STSong']# 忽略警告
import warnings
warnings.filterwarnings('ignore')# 显示pd所有列
pd.set_option('display.max_columns', None)

3.导入数据

# 导入数据
data1=pd.read_csv('./data/附件1语音业务用户满意度数据.csv', index_col= '用户id')
# 查看前五行
data1.head()

# 结合附件5对数据作基本处理
data1['重定向次数']=data1['重定向次数'].fillna(value=0)
data1['重定向驻留时长']=data1['重定向驻留时长'].fillna(value=0)
data1['是否关怀用户']=data1['是否关怀用户'].fillna(value='否')
data1['是否去过营业厅']=data1['是否去过营业厅'].fillna(value='否')

二、探索性数据分析

1.变量识别

# 查看数据基本信息
data1.info()
print(f"附件1语音业务用户满意度数据的原始数据形状为:{data1.shape}")

  通过题目背景及查看数据基本信息,可将前4个变量划分为目标变量,其余50个划分为预测变量;对于预测变量数据类型,将数据划分为对象数据类型,整数类型以及浮点类型;对于预测变量数据类别,将数据划分为分类变量与连续变量。该数据中有几列属性表示次数,即整数类型中有部分表示为分类变量(0-1),有部分表示为连续变量(次数),即将整数类型中的连续变量划分到浮点类型中,代码如下:

#对数据列属性进行分类,int,float,subject,方便后续对应编码操作
import numpy as np
#判断数据类型函数2
def pd_sjlx(data):#object,float64,int64 fds=[]#浮点数lb=[]#类别中,英文zs=[]#整数for name in data.columns.tolist():if(data[name].dtype==object):lb.append(name)if(data[name].dtype==np.float64 or data[name].dtype==np.float32):fds.append(name)if(data[name].dtype==np.int64 or data[name].dtype==np.int32):if((len(data[name].unique())>10)):#设置阈值为10,判断是否为整数类型的连续数值变量fds.append(name)else:zs.append(name) return lb,fds,zs
lb,fds,zs=pd_sjlx(data1.iloc[:,4:])
print('类别列',lb)
print()
print('数值列',fds)
print()
print('类别数值列',zs)

2.单变量分析

  对于连续变量进行单变量分析,需要了解变量的集中趋势扩散程度分布。查看其基本统计量如下:

# 查看基本统计量
data1[fds].describe().T

  对浮点型数据做密度图:

dis_cols = 5 #一行几个
dis_rows = len(fds)
plt.figure(figsize=(7*dis_cols, 4* dis_rows))for i in range(len(fds)):ax = plt.subplot(dis_rows, dis_cols, i+1)ax = sns.kdeplot(data1.loc[:,fds[i]], shade= True)ax.set_xlabel(fds[i],fontsize= 15)ax.set_ylabel("Frequency", fontsize= 15)
plt.tight_layout()
plt.show()

由上图可知,个别属性大致呈现正态分布,其他整体呈现左偏分布,后续可考虑平方/立方指数对变量进行转换。

  对于分类变量进行单变量分析,使用频率表来了解每个类别的分布,这里针对目标变量进行频数可视化分析。

# 查看各因变量的类别频数
fig = plt.figure(figsize = (16,9), dpi= 100)
fig.add_subplot(2,2,1)
sns.countplot(x='语音通话整体满意度',data=data1)
fig.add_subplot(2,2,2)
sns.countplot(x='网络覆盖与信号强度',data=data1)
fig.add_subplot(2,2,3)
sns.countplot(x='语音通话清晰度',data=data1)
fig.add_subplot(2,2,4)
sns.countplot(x='语音通话稳定性',data=data1)
# plt.savefig('./图片/满意度各类别频数统计图',formate='png',dpi=500)

  由上图可得,对于目标变量,样本大部分类别集中在高评分区间(8~10),随着评分降低对应的频数也在下降,评分为1的频数略微上升,对于该问题背景,可能低评分样本后续需要着重分析,找出导致用户体验差的因素,对移动公司有较大的价值;除此之外,不同目标变量的频数分布大致相同,初步观察他们4者呈现强相关性。

2.双变量分析

  双变量分析是找出两个变量之间的关系。在预定义的显著性水平上寻找变量之间的关联和分离。我们可以对分类变量和连续变量的任意组合进行双变量分析。组合可以是:分类和分类分类和连续以及连续和连续

  • 分类和分类:本次竞赛我们将满意度作为分类变量,这里主要分析目标变量之间的关系。

    • 目标变量满意度交叉分析,以【“网络覆盖与信号强度”,“语音通话清晰度”,“语音通话稳定性”】的不同类别分别作为横坐标,【“语音通话整体满意度”】在对应类别下的平均值作为纵坐标,观测前面3者与整体满意度的关系。由上图可得,整体来看,语音通话整体满意度的评分与其余三种呈现强相关性,对应类别下的平均值与类别分数相差正负0.5,其中与语音通话清晰度相关性最强,绝对差值最。
    • 以“语音通话整体满意度”为标签,作pairplot图。观测【“网络覆盖与信号强度”,“语音通话清晰度”,“语音通话稳定性”】两两之间的关系。

由上图可得,当其中一个目标变量评分较高时,其余变量评分大概率较高,但也有个别样本的某一目标变量其他目标变量取值差异较大,这些样本可能含有重要区分信息

# 因变量满意度交叉分析
fig = plt.figure(figsize = (24,5), dpi= 100)
fig.add_subplot(1,3,1)
sns.barplot(x='网络覆盖与信号强度',y='语音通话整体满意度',data=data1)
fig.add_subplot(1,3,2)
sns.barplot(x='语音通话清晰度',y='语音通话整体满意度',data=data1)
fig.add_subplot(1,3,3)
sns.barplot(x='语音通话稳定性',y='语音通话整体满意度',data=data1)
#plt.savefig('./图片/满意度交叉分析',formate='png',dpi=500)sns.pairplot(data1.iloc[:,:4],hue='语音通话整体满意度')
  • 连续与连续:在两个连续变量之间进行双变量分析时,应该查看散点图。通过前面单变量分析中的密度图,观测【“外省流量占比”,“外省语音占比”】两者分布大致相同,此处讨论两者的关系。

    • 对两者建立散点图并进行回归拟合,其可视化结果如下:由两者的散点图及回归可视化可得,外省流量占比与外省语音占比呈现较强正相关,对于连续变量之间的相关性可以使用Pearson相关系数进行统计量分析。通过计算其Pearson相关系数为0.9627,在后续的特征工程中可考虑将相关性较高的变量进行剔除。对所有连续变量进行相关性分析,其热力图如下
plt.figure(figsize=(20,9),dpi= 100)
sns.regplot(x= data1['外省流量占比'], y= data1['外省语音占比'])
plt.title('散点图及回归可视化')
plt.show()pd.concat([data1['外省流量占比'],data1['外省语音占比']], axis= 1).corr(method= "pearson")fig = plt.figure(figsize = (20,18))
sns.heatmap(data1[col].corr(),cmap='YlGnBu',linewidth=0.5,annot=True,fmt='.2f')#数值变量相关系数

总结

  本次竞赛在探索性数据分析部分做的不够完整,变量识别做的较好,单变量分析及多变量分析仅做了少部分较为主要的特征,还有许多其他特征没有考虑全面或根本没有考虑到,并且连续变量与分类变量的关系没有进行系统的探索(当时这一环节一直纠结于选择的方法)。

【大数据竞赛】2022MathorCup大数据挑战赛 B题 北京移动用户体验影响因素研究 探索性数据分析相关推荐

  1. 【大数据竞赛】2022MathorCup大数据挑战赛 B题 北京移动用户体验影响因素研究 题目分析

    系列文章目录 第一章 [大数据竞赛]2022MathorCup大数据竞赛 B题 北京移动用户体验影响因素研究 题目分析 第二章[大数据竞赛]2022MathorCup大数据挑战赛 B题 北京移动用户体 ...

  2. 2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛(北京移动用户体验影响因素研究全套代码)

    赛道 B:北京移动用户体验影响因素研究      移动通信技术飞速发展,给人们带来了极大便利,人们也越来越离不开移动通信技术带来的各种便捷.随着网络不断的建设,网络覆盖越来越完善.各个移动运营商,越来 ...

  3. 2022年第三届MathorCup 大数据竞赛 赛道B 北京移动用户体验影响因素研究 完整建模方案及代码实现详解

    北京移动用户体验影响因素研究 移动通信技术飞速发展,给人们带来了极大便利,人们也越来越离不开移动通信技术带来的各种便捷.随着网络不断的建设,网络覆盖越来越完善.各个移动运营商,越来越重视客户的网络使用 ...

  4. MathorCup大数据竞赛-北京移动用户体验影响因素问题思考

    针对本次2022年MathorCup大数据竞赛-赛道B初赛题是关于北京移动用户体验影响因素问题.问题一,二呈递进关系.客户语音业务和上网业务满意度研究内容方法大同小异.这里给出客户语音业务满意度研究内 ...

  5. 【数据竞赛】大规模数据调参用这个包就可以啦。

    作者:尘沙杰少 模型调参--Successive Halving! 简 介 现在非常多的机器学习模型在建模时都会涉及到参数调节的问题,不同的模型参数对于模型的影响非常大,如何从大量的参数中选出较好的一 ...

  6. 博睿数据智能监测终端全面升级,计算能力强大、用户体验真实性高

    长久以来,传统PC互联网的应用通过嵌入SDK的拨测方式进行应用性能和用户体验监测,具有一定的侵入性.而在万物互联时代,随着云计算.边缘计算.物联网等技术的崛起,企业对无需嵌码的"黑盒&quo ...

  7. 2023年第八届数维杯大学生数学建模挑战赛 A题 河流-地下水系统水体污染研究

    2023年第八届数维杯大学生数学建模挑战赛题目 (请先阅读"数维杯大学生数学建模挑战赛论文格式规范") 目录 问题1 通过查阅相关文献和资料,分析并建立河流-地下水系统中有机污染物 ...

  8. MathorCup高校数学建模挑战赛——大数据竞赛 赛道A 移动通信基站流量预测baseline

    文章目录 前言 一.简单分析 二.具体程序 1.引入库 2.读入数据 3.数据处理 4.模型训练和预测 5.结果文件输出 总结 前言 本文给出2020年MathorCup高校数学建模挑战赛--大数据竞 ...

  9. 什么是大数据口子_大数据分析师年薪几十万,学什么专业才能从事大数据?

    近几年,大数据为各个领域带来了全新的变革,大数据的重要性越来越被企业和国家所看到,大数据工作者的需求再次被无限放大,他们的薪资和社会地位也在不断上涨.马云在演讲中就提到,未来的时代将不是IT时代,而是 ...

最新文章

  1. 在Ubuntu 12.04 64bit上搭建Crtmpserver视频直播服务
  2. android 画板菜单,Android画板实现
  3. 代码编辑神器VIM(附我写acm程序时的配置)(转)
  4. Cuda中Global memory中coalescing例程解释
  5. airtest自动化测试_自动化测试必备实用工具,帮你提高工作效率|Gitee项目推荐...
  6. 自动去除所有目录的隐藏属性的DOS命令
  7. mysql设置参数0和1_MySQL 8.0 首个自适应参数横空出世
  8. RNQOJ 98 逃亡的准备
  9. 2019阿里巴巴技术面试题集锦(含答案)
  10. d3 canvas_D3和Canvas分3个步骤
  11. Web之CSS开发技巧: CSS @media
  12. 20200728:力扣199周周赛题解(上)
  13. JSONObject和JSONArray使用
  14. maven中GroupID 和ArtifactID怎么写
  15. MFC之学习扇形绘制与绘制阴阳鱼图
  16. 制造业OEER语言数据挖掘之人工神经网络探索
  17. Python爬取不羞涩网小姐姐图片——BeautifulSoup应用
  18. 工作效率的变速器——沟通
  19. 征信 - 信用的价值
  20. 英国六所大学开通高性能计算中心

热门文章

  1. 狂神说——Mybatis 学习
  2. 工作...工作...工作...
  3. 基础类 - SQL语句
  4. JSJ2021A6(时间限制:20000ms 内存限制:65536KB)
  5. 30G机器人培训全套资料!(300个PPT+400个视频教程)
  6. 西门子PLC解密软件,西门子smart200解密软件,西门子200,300解密软件,松下,台达PLC欧姆龙,AB,解密软件三菱解密,威纶通触摸屏解密软件,
  7. Perl语言面向对象入门
  8. 第一次写正规论文的同学务必分享,排版自动排版,加注释。。。。。。等等!!!!!!!!(copy也得整出档次来啊,这就是门面啊)...
  9. Windows重启显卡驱动热键说明
  10. quickpcb添加pcb库_QuickPcb2005元件库(QuickPcb集成元件库)V1.0 最新版