赞
踩
该题目主要考察数据收集、综合评价及多目标规划的能力。
为大家分享2024年华数杯数学建模竞赛C题的完整数据与第一问代码,关注公众号 云顶数模 领取相关资料!
详细的问题分析、实现代码及参考论文,完整代码与2w字的参考论文持续更新中~
在第一问,题目要求找到35200个景点中评分的最高分,并对最高分的景点数按照城市进行统计。最后得出拥有最高评分景点数量的前十个城市。在这一问中,主要选手的考察数据查询能力,按照题目的要求遍历各个表格进行查询即可。
在第二问中,要求遵循城市最佳景点游览原则,结合多个因素对352个城市进行综合评价,选出50个城市。在这道题中,需要建立一个综合评价模型对多个因素进行综合评价。在这里可以考虑建立AHP-TOPSIS模型或者熵权法-TOPSIS模型。在构建各个城市的评分指标表格后,可以基于因子分析法或者主成分分析法进行降维,然后利用所构建的综合评价模型计算各个城市的评分。
在第三问中,假设一名游客从广州入境,要求建立一个优化模型,优化目标是在144小时内游玩尽可能多的城市,同时要求综合游玩体验最好。在这里需要建立一个游玩体验的评价模型,以计算第二个目标值。模型的约束条件包括:需要遵循城市最佳景点游览原则,且交通方式只能选择高铁,同时解空间被限制在50个最令外国游客向往的城市内。对于这一问,可以建立一个双目标优化模型,并通过NSGA-Ⅱ等多目标优化算法进行求解。
在第四问中,要求将优化目标改为既要尽可能的游览更多的城市,又需要使门票和交通的总费用尽可能的少。对于这个问题,可以直接对问题三中的双目标优化模型进行修改,然后同样基于一样的方法进行求解。
在第五问中,要求将游览的目的地改为山景。在这一问中,可选的旅游城市不再局限于50个城市,故需要先对有山景的城市进行筛选,然后划定解空间的范围。这一问的优化目标为:尽可能浏览更多的山以及总费用更小。约束条件包括每个城市只能游玩一座评分最高的山,而且不同城市之间的交通方式只能选择高铁,所以在这一问中只能选择高铁可以到达的城市。在明确解空间后,可以建立双目标优化模型并基于多目标优化算法进行求解。
(1)使用python遍历每一个.csv文件并将其合并为一个文件
(2)对缺失值和异常值进行处理
(3)基于DSA(Data Structure Analysis)得出最大值,画出数据分布直方图 (解决 BS是多少?全国有多少个景点获评了BS)
(4)基于DT(decision tree)-Spearman得出 获评BS景点最多的城市,相关性越高获评越多。(DT对数据进行分类,分类因素有两个:城市和得分;然后将分类结果作spearman相关性分析。)
Score 三沙 五家渠 玉溪 益阳 天门 阿拉尔 大兴安岭 潍坊 烟台 邢台
5 36 28 21 20 19 18 18 18 18 17
# 导入软件包 import pandas as pd import numpy as np from sklearn.tree import DecisionTreeClassifier import seaborn as sns import matplotlib.pyplot as plt # 热力图可视化 # 1. 过滤掉警告的意思 import warnings warnings.filterwarnings("ignore") # 2. 导入数据 data=pd.read_excel('hsc.xlsx') # 3. 用来查看数据框的列名 data.head() # 图片显示中文 plt.rcParams['font.sans-serif']=['SimHei'] # 减号unicode编码 plt.rcParams['axes.unicode_minus'] =False # 删除无关的列 data.drop([], axis=1, inplace=True) # 4. 计算各变量之间的相关系数 corr = data.corr(method='spearman') # 5. 调整画布大小 ax = plt.subplots(figsize=(9, 9)) # 6. 画热力图 annot=True 表示显示系数 ax = sns.heatmap(corr, vmax=.9, square=True, annot=False, cmap="YlGnBu") # 7. 设置刻度字体大小 plt.xticks(fontsize=8) plt.yticks(fontsize=8) plt.show()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。