2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结

2022 高教杯数学建模C题古代玻璃制品的成分分析与鉴别回顾及总结

Paper & Code:https://github.com/Fly-Pluche/2022-mathematical-modeling-C
希望可以施舍几个star⭐️

国赛分工

我们三人都有主要的分工:

队员A主要负责二,三问的求解以及代码的编写,使用Excel或者Python进行部分数据处理,通过Python计算第一问以及第四问的回归方程。

队员B进行第一问以及第四问的求解,以及使用Excel对数据进行处理。

队员C参与所有问题求解过程的讨论,主要进行论文的编写,队员A与队员B都参与论文的部分编写的工作。

流程图等是由队员A以及队员B绘制的。

技术栈

队员A:大二,两年的Python使用经验,两年的机器学习(深度学习,对于传统的机器学习模型不太了解)经验,进行过算法改进,模型部署,发过论文,打过kaggle。有较熟练使用Excel,PPT,Visio的能力,使用过LaTeX。

队员B:大二,熟练使用WPS,,会使用SPSS,了解一定的数学模型等。

队员C:大二,会使用SPSS、WPS,了解模型等。

数模经验

队员A:2022年从校赛开始第一次打数学建模,加上暑假训练三次,赛前一共做过四次题。

队员B:2021年校赛参与奖,2022同上。

队员C:2021年国赛省三,2022同上。

暑假练习

队员A :只有在做题的时候学习数模。。。

队员B:学习SPSS的操作,了解LaTeX的使用等

队员C:阅读相关重要模型的书籍,掌握LaTeX的使用等

本来是计划返校线下做题,由于暑假疫情的原因,我们只能在线上交流做题,主要通过QQ电话,腾讯会议等手段进行,参考对应国赛题的优秀论文进行练习,由于是线上练习,所以我们三个的讨论并不能很好的进行,很多时候都是讨论一下解题思路,然后一个人主负责几题,然后自己写对应求解的论文。

通过练习,我们了解了打一个数模的大致流程,需求,注意点,以及我们自己的缺陷。通过练习,熟悉了LaTeX的编写,以及应对LaTeX编写出现的一些问题,队员A也在练习中囤积了一些有用的代码,熟练Pandas以及部分Excel的使用,懂得权衡使用Pandas还是Excel进行数据处理。队员B,C也在训练中不断了解模型以及SPSS的使用。

在使用的过程中也发现一个宝藏软件SPSSPRO,还是有点东西的,还有维护群,我当时挂着科学上网的工具,有些包下载不了,维护群的工作人员直接远程帮我debug。

(我个人是觉得这已经是线上练习的最优解了。既然没有办法讨论,那就各自为阵,了解一下自己主负责之外的东西,这样在最后才能互相帮忙,好应对突发情况。也是后面国赛的时候,我们能互相帮忙的原因吧)

0 Day

6:00PM发题目,我当时还在上课,6:05下课(我之前还在问要不要请假),我让他们先发题目给我,先帮我买饭,然后我下课直接去跟他们讨论,结果去的时候他们才刚刚打算去吃饭,我当时人都傻了(捂脸.jpg),他们说第一天先不急,先去吃饭。

我看了C题(菜鸡,只能选C)感觉部分题目比较熟悉,所以也放下心去吃饭。结果吃完饭后,分析一波题目,感觉还是有点傻眼,第一题的预测风化前的含量就不知道该如何下手,因为它的数据并不能通过机器学习的方式预测。但是当时又不知道能用啥其他的办法,当时就想到一个很玄虚的方法,第一个晚上我想试试用机器学习预测的方式进行预测,小熬一会儿,如果搞出来了第二天就能开始写论文。

队友B和C好像晚上十一点左右走的吧打算第二天早上七点起来。我留着做第一题,结果肝到两点多,发现寄了,预测失败当时感觉有点沮丧。但是又瞥了一眼题目,突然发现已经写好的机器学习模型可以用在第三问,后面又发现用回归的方式可以解决第一问。

瞬间感觉又充满了希望,在群里给队友留下遗言之后,刷会儿手机开始睡觉。。。

1 Day

好像早上7点50被队友叫醒,吃个饭,小小讨论了一波第一问使用回归的可行性,最后敲定使用回归的方式求解。

早上+下午:队友A使用集成模型对问题三进行求解,得到优秀的结果。

晚上:队友A使用随机森林进行数据填补,以及修改因填补产生的一些坑(例如:化学成分含量变多)。

队友B以及队友C尝试对第一问使用岭回归进行求解,结果发现存在共线性等问题,开始使用岭回归。

下午的时候,大家补觉+洗澡。

晚上好像熬到四五点吧。

2 Day

早上好像也是七八点起来。

队友B以及队友C使用SPSS,SPSSPRO,Excel等对第一问使用岭回归进行求解,最后得到优秀的拟合效果。

接着队友B对第一问进行收尾性工作并开始第四问,队友C开始撰写论文。

我开始痛苦的第二题,那个亚类的概念是真的不太明确,不知道该如何划分。有两种方案,一种是K-means聚类,一种是决策树,然后通过决策树的可视化进行解释。但是我们觉得这种方法太low了,没有创新。就想着用随机森林去解决这个问题,结果发现随机森林的对亚类划分的可解释性太差了。由于时间问题,所以我计划使用PCA主成分分析+K-means聚类,结果通过肘部法以及轮廓法确认,发现降维后的数据推荐聚类簇K等于主成分分析赛选出的成分个数。故此,只能使用K-means进行聚类。

这时候非常感谢队友C找到生物类别亚类划分的概念,生物类别的亚种划分是指一个物种A和物种B他们有着明显的生殖隔离(马和驴,狼和狗),其中B是由A的部分种群迁移到一个新的环境中,受环境影响演变成而来的。

我们借鉴其概念进行解释,一种玻璃品种的主要成分相差无几,所以成分的变化是风化导致的,故此我们认为根据化学成分聚类出的结果是在风化程度上的划分,根据风化程度进而演变的类别。

故此,我们认为聚类出的结果应该是存在两个极端,一个族类全为未风化,一个族全为风化,其他的族可能两种情况都有,如下图。

在这里插入图片描述

第一次聚类的时候发现确实结果与猜想的一致,只能说很高兴。结果都搞完了,发现聚类存在随机性,即使调整了随机种子,聚类结果也是不一样的,直接大寄特寄。

当时心态是真的有些炸。

因为这天晚上一波三折,拿用随机森林补全后的数据重新走一遍之前的流程,发现了一些之前的Bug,幸运的是修好了。(主要是因为除了队员A,其他队员没有机器学习的基础,对于归一化的映射不太了解,导致用Python预测的时候由于归一化以及忘记逆归一化的原因,导致预测结果存在误差)

然后开始打王者(我们三都在比赛的时候偶尔打打游戏或者小睡片刻,放松一下保持精神),打了一会儿,灵感来了。既然聚类结果存在随机性,那就人工挑选出聚类效果好的结果作为训练集,训练一个机器学习模型,那这个机器可学习模型不就是相对稳定的亚分类模型吗?后面的敏感性分析啥的不是就一并解决了,并且能写的跟多了,存在创新性以及可解释性。

第四问题目问的比较清楚,具体就没有太多创新,队友B根据具体情况进行分析解题建模。

然后我们就开始写各自负责部分的论文。

这天差不多都是六点左右睡觉,我跟队员C睡了40分钟左右,队员B睡了两个小时左右。

Finally Day

这一天主要就是论文的整合。

队友A写着写着,发现有些问题没有写完整,例如模型的敏感性分析,通过资料查找最终选择Salib进行敏感度分析,将结果分析出来,结果在查找灵敏度指标的相关解释时,发现有一篇解释很好的博客,结果博主自己在评论区说,这个方法不适用于C题,不用看了,还有两个人在附和式的评论,直接看的人傻了。但是最后感觉使用这个方法应该没有什么问题,最后硬着头皮用了。然后就是代码的整理,把解题过程中用到的项目文件都打包提交。

论文写的还是很极限的,晚上7点56左右,交了第一版。然后发现8点到10点确实有最后一次的提交机会,我们利用WPS的错别字查找功能对论文进行最后的修改,修正错别字,表格排版问题,引用错误等,生成最后一版的MD5码。

END

以上以为个人作为第一视角进行描述,由于比赛紧张还有记忆曲线等问题限制,描述总会存在侧重以及偏差,这里我着重描述了一些我遇到的坑和心路历程,但并不代表我的队友全程就没有出力,我们三个平均三天睡了10个小时左右,队员C后期直接来了模仿一手低配版达芬奇睡眠法。

说实在也是运气比较好,遇到队员A比较拿手的题目(C题的二三问),并且之前有关第三问的代码准备,要是遇到那些建立特征值以及约束方程啥的题目,直接寄。并且有两个肯努力跟我技术互补,没有摆大烂,能肝的队友。

结果

感觉是万幸中的不幸吧,还是太菜了,嘤嘤嘤(╥╯^╰╥)

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值