2022年MathorCup大数据竞赛B题北京移动用户体验影响因素研究求解全过程文档及程序

2022年MathorCup高校数学建模挑战赛—大数据竞赛

B题 北京移动用户体验影响因素研究

原题再现:

  移动通信技术飞速发展,给人们带来了极大便利,人们也越来越离不开移动通信技术带来的各种便捷。随着网络不断的建设,网络覆盖越来越完善。各个移动运营商,越来越重视客户的网络使用体验,从而进一步提升网络服务质量。
  客户满意度是客户对运营商产品服务的满意程度,反映了客户期望与实际感知的产品服务之间的差异。特别是在信息透明、产品同质化的今天,客户满意度的表现成为各大运营商市场运营状况的重要体现。数字经济时代,各大运营商需要运用数字经济的管理理念和技术手段,建立客户体验生态的全方位系统性测评体系,实现客户满意度评测的数字化转型,让客户体验赋能商业决策,让商业决策真正服务客户,共同推动移动网络高质量可持续发展。
  根据客户投诉,对影响用户体验的问题逐点解决,是传统提升客户满意度的方法。但是随着用户数量的大幅增加,移动产品的种类越来越丰富,客户的需求越来越高,传统的方法已经难以有效提升客户的满意度。本研究拟通过分析影响用户满意度的各种因素,为决策提供依据,从而实现更早、更全面提升用户满意度。
  中国移动通信集团北京公司,让客户根据自身在网络覆盖与信号强度、语音通话清晰度和语音通话稳定性三个方面的体验进行打分,同时还让客户根据语音通话的整体体验进行语音通话整体满意度的打分,并统计整理影响客户语音业务体验的因素,希望以此来分析客户语音业务满意度的主要影响因素,并提升客户语音业务满意度。同时,对于上网数据业务,中国移动北京公司让客户根据自身在网络覆盖与信号强度、手机上网速度、手机上网稳定性三个方面的体验进行打分,同时还让客户根据手机上网的整体体验进行手机上网整体满意度的打分,并统计整理影响客户上网体验的因素,希望以此可以分析影响客户上网业务体验的主要因素,并提升客户的上网体验。
初赛问题
  基于以上背景,请你们的团队根据附件给出的数据,通过数据分析与建模的方法帮助中国移动北京公司解决以下问题:
  问题 1:根据附件 1 和附件 2,分别研究影响客户语音业务和上网业务满意度的主要因素,并给出各因素对客户打分影响程度的量化分析和结果。附件 1、2 中各字段的解释说明见附件 5。
  问题 2:结合问题 1 的分析,对于客户语音业务和上网业务分别建立客户打分基于相关影响因素的数学模型,并据此对附件 3、4 中的客户打分进行预测研究,将预测结果分别填写在 result.xlsx 的 Sheet1“语音”和Sheet2“上网”两个工作表中,并上传到竞赛平台,说明你们预测的合理性。
  附件
  附件 1 语音业务用户满意度数据
  附件 2 上网业务用户满意度数据
  附件 3 语音业务用户满意度预测数据
  附件 4 上网业务用户满意度预测数据
  附件 5 附件 1、2、3、4 的字段说明

整体求解过程概述(摘要)

  随着移动通信技术的迅猛发展和网络工程的不断建设,在信息透明、产品同质化的今天,提升语音通话及网络服务的质量,满足用户对高质量语音通话、网络服务的需求显得尤为重要。本文旨在建立一个基于多模型调参优化的 Stacking 集成学习,完善且合理地预测用户评分的普适性模型,从已有数据中心获得有效信息,更高效地提升服务质量,从而完善业务服务体系。
  针对问题一,主要需要对用户语音及上网业务评分影响因素的程度进行量化分析。本文首先对数据集进行统一处理,包括:初步剔除相关列数据、学习数据与预测数据指标一致化、指标规范化、空缺值处理、标签编码、特征构造、数据标准化、学习数据与预测数据一致化、学习数据训练集与测试集划分。之后在处理好的数据集上建立熵权法、灰色关联度分析、随机森林分类模型,多方面综合考虑,量化分析各影响因素对评分的影响程度,最终结果见表 2、表 3及表 4,并依此来确定影响用户两项业务满意度的主要因素。量化结果接近于实际生活,效果良好,且可为后续问题奠定基础。
  针对问题二,主要需要根据已有影响因素对用户的评分进行预测,并解释预测的合理性。本文首先结合问题一量化结果以及建立主成分分析模型,对数据累计方差进行解释,确定特征个数;之后建立 XGBoost 模型,并得出各影响因素的重要性,与随机森林模型结合分析,确定特征的选择;再建立 KNN、SVM、LightGBM 以及多分类逻辑回归模型,对数据进行学习分析;随后,对各个模型进行超参数调优,模型准确率均有大幅度提升,如随机森林较原先提升了 11.69%,最高提升较原先可达到 14.25%,效果良好。再者,以模型的准确率、平均绝对误差、均方误差为标准,选择表现较优的模型作为 Stacking 集成学习的基模型,同时选择余下的一个模型作为第二层模型,在提升准确率的同时,避免过拟合。同时对其采用五折交叉验证,验证其稳健性。Stacking 集成学习结果符合预期效果,各评分预测模型效果见表 10,明显优于单一模型。在保证准确率的同时,预测的平均绝对误差、均方误差均有一定优化,同时本文还注重结果的可解释性及模型的现实意义。最后,本文进行可视化分析,绘制原始数据及预测数据评分人数南丁格尔玫瑰图,查看数据分布,绘制模型的混淆矩阵热力图、分类报告、ROC/AUC 曲线,多方面评估模型效果及解释模型的合理性。综合上述分析,可以确认模型效果良好,具有良好的稳健性、泛化能力。
  最后,本文对所建立的模型的优缺点进行了中肯的评价、提出了模型的改进措施以及对模型进行了一定推广。

模型假设:

  • 假设一:语音与上网业务的八项评分中,存在个别用户乱评、错评现象;
  • 假设二:除个别用户的部分评分外,其余所有数据真实且符合实际情况;
  • 假设三:用户评分还受到除附件中因素之外的因素的影响;
  • 假设四:给定的数据集可全面体现用户整体情况;
  • 假设五:对于同一业务,学习数据与预测数据的内在规律是一致的。

问题分析:

  问题的整体分析
  该题是一个关于移动用户对语音及上网业务体验评分的数据分析、预测类问题。从分析目的看,本题需要分析用户对语音与上网业务的评分及各个影响因素,筛选出影响用户评分的主要因素,并量化结果。同时需要对用户的评分进行预测及研究,为运营商提供参考,从而提升用户语音及上网的优质体验。因此本题主要需完成两方面任务:其一,研究影响用户语音及上网业务满意度的主要因素,并对各因素进行量化分析;其二,根据上述的分析,建立合理模型,对用户的评分进行预测及研究,确保分类模型的准确性、稳健性、可靠性,并有一定的泛化能力,且能够包容用户真实评分的主观性。
  从数据来源、特征看,本题的数据来源于北京移动用户的语音与上网业务评分数据,数据包括用户对语音业务下“语音通话整体满意度”“网络覆盖与信号强度”“语音通话清晰度”“语音通话稳定性”,上网业务下“手机上网整体满意度”“网络覆盖与信号强度”“手机上网速度”“手机上网稳定性”方面的评分,以及相关的影响评分的因素。评分数据具有主观性,影响因素数据具有高维、多样、标准体系不一致、量纲不一致等特点,且数据量较大。因此,本题数据相对特殊且复杂,需要对数据进行一定的预处理,以便于后续的分析。从模型的选择看,本题数据量较大、维度较高,且分析目的是分析影响用户评分的主要因素,并对用户的评分进行预测及研究。本文将评分视为多分类,且评分具有一定主观性、分类种类多,因此,在模型的选择上,本文结合多种分类预测模型,构建集成学习模型,尽可能多地学习到用户评分特点,提升模型的准确性、稳健性及可泛化性能。从软件的选择看,本题为数据类型,且需要进行大量的数据分析、预测等,因此我们选择 Python Jupyter 对问题进行求解,其交互式的编程范式,方便且高效。
  问题一的分析
  问题一的核心目的在于研究并量化分析影响用户对语音及上网业务满意度的主要因素。对于已给的数据集,数据在完整度、指标标准等方面存在一定缺陷。这导致在原数据上我们不可直接进行分析,需要对原数据集进行数据的预处理。此外附件数据集在语音及上网业务中,每一业务均有四项评分,因此我们需要对每一项评分进行分析,对各因素进行量化。结合数据来源、与特征方面,我们综合皮尔逊相关系数、熵权法、灰色关联度分析、随机森林分类,构建多元量化分析模型,尽可能准确挖掘到影响用户评分的因素,为构建后续预测模型提供优质依据。
  问题二的分析
  问题二的核心目的在于建立基于影响用户评分影响因素的数学模型,并依据附件 3、4中相关因素对用户评分进行预测,并解释模型预测的合理性。但是在附件 1 与附件 2,附件 3与附件 4 中,影响因素存在不配对的情况。这导致在给定用户评分的数据中,部分因素不可作为模型建立的基础特征数据,因此在数据预处理的同时,还需要对附件 1 与附件 2,附件3 与附件 4 中的影响因素列取交集,使得学习数据与预测数据的特征数据一致。此外,在已给的存在用户评分的数据集中,用户对每一项的评分均为整数,不存在小数,且评分范围为[1, 10]。因此,我们在建立预测模型时,应尽量避免使用回归模型,而应使用分类模型,但部分分类模型需要分类标签量值从 0 开始,因此需要对所有评分进行标签编码,规范数据。同时分类种类较多,对于单一模型,其预测准确率较低,平均绝对误差较高、泛化能力较弱……因此,本文结合多种机器学习模型,构建集成学习模型,尽可能准确预测用户评分。最后,在此基础上,结合模型的分类混淆矩阵热力图、分类报告、ROC/AUC 曲线等对于预测结果进行解释,叙述模型的合理性,同时考虑集成学习模型对预测误差的包容性,对模型的泛化能力进行分析。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

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)
# 导入数据
data1=pd.read_csv('./data/附件1语音业务用户满意度数据.csv', index_col= '用户id')
# 查看前五行
data1.head()
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)
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)
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/217416.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

定制手机套餐---python序列

if __name__ __main__:print("定制手机套餐")print("")#定义电话时长:字典callTimeOptions{1:0分钟,2:50分钟,3:100分钟,4:300分钟,5:不限量}callTimeInputinput("请输入电话时长的选择编号:")callTimeResultcallTimeOpt…

【数据结构】用C语言实现顺序栈(附完整运行代码)

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 一.了解项目功能 在本次项目中我们的目标是实现一个顺序栈: 该顺序栈使用动态内存分配空间,可以用来存储任意数量的同类型数据. 顺序栈结构体需要包含三个要素:存放数据的数组…

TCP/IP协议:最流行的电子邮件协议SMTP(简单邮件传输协议)详解

SMTP 是一种电子邮件协议,用于通过互联网从一个电子邮件帐户向另一个电子邮件帐户发送电子邮件。它是TCP/IP协议应用层的一部分。作为一种电子邮件协议,它建立了不同电子邮件客户端和帐户之间轻松信息交换的规则。这样,简单邮件传输协议就可以…

车载通信架构 —— 传统车内通信网络CAN(可靠性为王)

车载通信架构 —— 传统车内通信网络CAN(可靠性为王) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非…

03 _ 系统设计目标(一):如何提升系统性能?

提到互联网系统设计,可能听到最多的词就是“三高”,也就是“高并发”“高性能”“高可用”,它们是互联网系统架构设计永恒的主题。这里将整体探讨下高并发系统设计的目标,然后在此基础上,探讨下:如何提升系…

力扣二叉树--总结篇(1)

前言 七天写了二十道题,前面感觉不错,后面越来越写不出来,刷题的心境和效果已然发生了变化。写个阶段总结,及时调整。 内容 先是二叉树的遍历 前序,中序,后序,即对应的递归,迭代…

CDA一级备考思维导图

CDA一级备考思维导图 第一章 数据分析概述与职业操守1、数据分析概念、方法论、角色2、数据分析师职业道德与行为准则3、大数据立法、安全、隐私 CDA一级复习备考资料共计七个章节,如需资料,请留言,概览如下图: 第一章 数据分析…

软件测试没有面试?8类细节让你邀约不断

求职不顺,没有邀约,大概率是你的简历出现了问题。 本篇文章列出高薪简历应该注意的细节,合计36处,涉及简历的八大组成部分。 同时,在这我也准备了一份软件测试视频教程(含接口、自动化、性能等&#xff0…

Linux | 重定向 | 文件概念 | 查看文件 | 查看时间 | 查找文件 | zip

Linux | 重定向 | 文件概念 | 查看文件 | 查看时间 | 查找文件 | zip 文章目录 Linux | 重定向 | 文件概念 | 查看文件 | 查看时间 | 查找文件 | zip一、more1.1 输出重定向>和>>1.2 输入重定向< 二、 再谈一切皆文件三、less指令【重要】四、head指令五、tail指令…

机器学习【02】在 Pycharm 里使用 Jupyter Notebook

只有 Pycharm 的 Professional 版才支持 Jupyter Notebook 本教程结束只能在pycharm中使用&#xff0c;下载的库在pycharm选中的虚拟环境中 ssh -L localhost:9999:localhost:8888 usernameip这句话每次都要用 准备 1.服务器安装jupyter sudo snap install jupyter2.在 Jup…

运动蓝牙耳机什么牌子好?百元蓝牙运动耳机排行榜

​跑步、骑车、健身等运动时&#xff0c;大家都需要一款专业的运动耳机来陪伴&#xff0c;它不仅可以提供高品质的音乐和佩戴舒适度&#xff0c;还可以帮助你掌握运动状态&#xff0c;让你更加专注和投入。今天我为大家推荐几款备受好评的运动耳机&#xff0c;它们都拥有不错的…

多线程详解(未完结)

文章目录 ⭐️写在前面的话⭐️一、线程简介1.1 进程1.2 线程1.3 多线程和多进程的区别1.4 总结 二、继承实现2.1 继承Thread类例子&#xff1a;网图下载 2.2 实现Runnable接口 (推荐)案例&#xff1a;火车站买票问题案例&#xff1a;龟兔赛跑 2.3 实现Callable接口 (了解即可)…