赛道 B:北京移动用户体验影响因素研究
移动通信技术飞速发展,给人们带来了极大便利,人们也越来越离不开移动通信技术带来的各种便捷。随着网络不断的建设,网络覆盖越来越完善。各个移动运营商,越来越重视客户的网络使用体验,从而进一步提升网络服务质量。客户满意度是客户对运营商产品服务的满意程度,反映了客户期望与实际感知的产品服务之间的差异。特别是在信息透明、产品同质化的今天,客户满意度的表现成为各大运营商市场运营状况的重要体现。数字经济时代,各大运营商需要运用数字经济的管理理念和技术手段,建立客户体验生态的全方位系统性测评体系,实现客户满意度评测的数字化转型,让客户体验赋能商业决策,让商业决策真正服务客户,共同推动移动网络高质量可持续发展。
下面给出整体思路代码(后续继续分析,不再重复收费,购买后加好友一对一指导):
首先对所有指标进行数据处理,进行缺失值和重复值检查。假设附件一和附件二的数据是对用户的真实情况记录,未对异常值进行处理。将object型数据进行编码处理,本文使用3种编码形式,包括lable编码、有序编码等。删除缺失值大于百分之 80的指标。考虑到变量的取值特征,本文将变量分为连续型变量和离散型变量两部分,分别运用相关分析和方差选择的方法,选择了与满意度在相关关系较强的20个连续型和26个离散型因素。对这50多个自变量与满意度建立LightGBM回归模型,并且对自变量的贡献度进行排序,找到前23个显著影响满意度的因素。考虑到这23个自变量之间可能存在多重共线性,为保证变量有较高的解释程度,计算自变量之间的相关系数,剔除自变量之间相关性较高的变量,最终得到对满意度最具显著影响的20个分子描述符变量。最后对选取的变量计算MIC和Spearman值,结果表明,选取的变量之间相关关系较弱,具有很好的独立性。同时,选取的20个变量具有很好的可解释性,说明20个变量的选取是合理的。
购买链接:
import random
import plotly.express as px
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.graph_objects as go
from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error
from sklearn.preprocessing import MinMaxScaler
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.ticker as ticker
from matplotlib.ticker import FixedFormatter, FixedLocator
pd.set_option('display.max_rows', 100)
cm = sns.light_palette("green", as_cmap=True)
yuyin_clear.head(10).style.background_gradient(cmap=cm)
# 分为连续性变量和类别变量
con_col = []
Dis_col = []
for i in tqdm(yuyin_clear.columns):
if len(yuyin_clear[i].unique())<=10:
Dis_col.append(i)
if len(yuyin_clear[i].unique())>10:
con_col.append(i)
# 类别变量
print(Dis_col)
# 连续变量
print(con_col)
yuyin_clear.loc[:,Dis_col].describe().style.background_gradient(cmap=cm)
yuyin_clear.loc[:, yuyin_clear.columns=='语音通话整体满意度'].describe().style.background_gradient(cmap=cm)
import seaborn as sns
from matplotlib.font_manager import FontProperties
import warnings
warnings.filterwarnings('ignore')
# 读取字体路径,设置字体为思源黑体
myfont=FontProperties(fname=r'/Users/Library/Fonts/SourceHanSansSC-Normal.otf')
sns.set(font=myfont.get_family())
sns.set_style("whitegrid",{"font.sans-serif":['Source Han Sans CN']})
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文
# 为了坐标轴负号正常显示。matplotlib默认不支持中文,设置中文字体后,负号会显示异常。需要手动将坐标轴负号设为False才能正常显示负号。
matplotlib.rcParams['axes.unicode_minus'] = False
#
略
原文链接:2022 年 MathorCup 高校数学建模挑战赛--大数据竞赛(北京移动用户体验影响因素研究全套代码)