2020年“华为杯”第十七届中国研究生数学建模竞赛B题心得(满纸荒唐言,一把辛酸泪)

满纸荒唐言,一把辛酸泪。
都云作者痴,谁解其中味?
——纪念2016-2020所有的数学建模论文

古人说得好:“书到用时方恨少,事非经过不知难”。做数学建模的我:“方法用时真恨少,建模经过更知难”。2020年9.17-21,应该是我最后一次参加数学建模比赛了吧,感触颇多。将这些感触记录下来,权当留个纪念,希望能给后来的人提供一点帮助。

(一)对比赛题目本身的感悟,

B题对于广大参赛选手来说,是典型的的扮猪吃虎。这里的猪是说它看上去好做(数据降维+预测,相关的方法一大堆),其实暗藏玄机,各种坑人(坑都是陨石坑)。不幸的是,广大研究生不全是老虎,还有很多是我这样的猪。
2020年“华为杯”第十七届中国研究生数学建模竞赛B题心得(满纸荒唐言,一把辛酸泪)_第1张图片

根据大赛官方的说法,B的数据来源于真实的工厂,所以存在很多“问题”,更加真实。但是大家在其中发现了太多超越现实的东西,比如绝对零度和人造太阳温度,同一个变量在不同表中的量纲不同等。出题人的语文大概率是自学成才,叙述方式颇得“前言不搭后语”六字真传。种种情况,导致B题带给我们的远超预期,也给我的数学建模生涯带来了精彩的结束(希望比赛成绩也能精彩一些)。

(二)一些简单的经验

赛前准备,不算充分,除了之前几次没有什么成绩的比赛经验(最好的是省三),没有赛前培训和学习,也没有了解大佬的经验。直到比赛前两天,才在闲暇时间里抽空看看经验贴,就这已经受益匪浅了。往年的优秀论文也是,没有早早阅读,赛前只粗读了一篇,足以感受到其内容之充实,写作之精彩,图片之丰富等优点。看论文的一个好处是帮助你准备论文模板,了解论文的组成部分有哪些。同时,看看人家的算法又多又高级,图片表格层出不穷,可以让自己意识到,学习的算法还是太少,画图方法掌握的也不好。

组队也是门学问,本科舍友保研去了北理,找了实验室两位没有比赛经验的同学组队,他一个人建模算法写作一把抓,第三天就放弃了。这位仁兄最后得出经验:要么找比较合作过的水平一般的熟人,要么和有些实力的陌生人。一旦你的队友是熟人+小白,你就很容易陷入无人可用的境地,最后只能是哑巴吃黄连——有苦说不出。好在这次我们三个都是一瓶子不满半瓶子晃荡的水平,谁也不嫌弃谁。

关于选题,开赛之前队友信誓旦旦地说,一定不选优化类题目,然后选择了数据处理的B,最后的任务也是个优化问题。目前来看,华为杯的题目中,优化是很难绕开的点。因此,对分类、降维、回归等基本算法有一定掌握的同学,可以了解一下优化方面的方法,以免和我们一样沦落到临时抱佛脚的地步。(我好悔啊,我从一开始就不应该参加这个比赛;如果我不参加这个比赛,我也不用做这个题目;如果不做这个题目,我也不会沦落到这么一个伤心的地步)
2020年“华为杯”第十七届中国研究生数学建模竞赛B题心得(满纸荒唐言,一把辛酸泪)_第2张图片

关于算法,前面提到了尽量掌握多种方面的算法,以免被题目打个措手不及。还有一点很重要,就是在日常学习中,对于学习到的、简单应用的方法,不要浅尝辄止。比如我们在本科期间就用过了聚类方法,对Q型和R型也有一定的认识。但是并没有深入了解例如距离计算、聚类树生成方法、聚类结果进一步展示方面的知识。对系统聚类、K均值聚类、两步聚类等具体的方法也没有研究(其实也不用投入太多时间,可以作为日常学习的调剂)。这样的结果就是,当我问队友:“R型聚类用相关系数来进行变量相似性度量时,可以面向非线性的变量组吗?”我俩就同时沉默了。其实我现在还不太懂聚类分析的原理,下一步也会慢慢学习一下,写几篇博客。

关于画图,主要有流程图和结果图两类。对于一篇30+页的论文,适当的流程图十分有用,不仅能够帮助我们理清思路,还能给论文增加一份亮点。我们也是赛前才意识到这一点,十分后悔之前的mathorcup没有画流程图。结果图的种类就是多种多样的了,常用的折线图、柱状图、饼图,高级一点的热图、聚类树、回归图、误差直方图等,以及更加专业(高大上)的图形,都可以成为论文中的亮点。

关于论文。论文的写作一定要和算法啥的同时进行,即解题过程中思路制定、方法选择、做出结果等步骤的进行,必须伴随着相关论文内容的产生(有安全三同时那味了,我差点忘了自己还是个半吊子的安全专业学生)。特别是对于实力较差的队伍,及时将想法和结果转化为论文是很明智的做法,负责论文写作的同学务必参与其他人对题目的讨论,这样在其他人解题的同时,解题的相关论文就可以被写出来了,起码写个差不多,节省时间。

最后说一下团队合作,作为一个习惯独来独往的人,偶尔的团队合作对我来说是个挑战。自己做东西,顺与不顺,高兴难过,都是自己承担,不用顾及他人。团队合作就不一样了,你可以鄙视自己写的辣鸡代码,但最好不要对队友的作品有过激的看法,无论如何那也是你们论文的组成部分。在建模过程中,或多或少会产生争执,及时化解,以完成比赛为重。我这种脾气差有心直口快的人,幸亏碰到脾气好的队友,要不然早就一拍两散回宿舍打王者了。

总之,数学建模是一次不错的经历,一路以来我也看到了自己成长,更看到了自己的缺点,希望几年的博士生涯结束后,我也能成为别人口中靠谱的队友。

以上

笔者的其他博客,欢迎大家阅读学习,共同进步
傻瓜攻略(一)——MATLAB主成分分析代码及结果分析实例

MATLAB中plotconfusion函数的应用

傻瓜攻略(二)——MATLAB数据挖掘之Apriori算法实现

win10系统中通过conda命令安装tensorflow(cpu版本,不用pip)

你可能感兴趣的:(MATLAB学习笔记,华为杯,数学建模,研究生,2020)