参加2021数学建模美赛C题的感受

前言

我是计算机专业的。我的队友A是会计专业,B是计算机专业。分工是:我和B负责建模和编程,A负责写论文。

最开始是A来找我组的队,然后我又去找的B。当时就想着多参加一些比赛,但因为大二上学期有很多事情忙里忙外的就拖着了。正好有同学来找我,我就参加了。

组好队已经是接近期末考试了,我又去准备期末考试。紧张的期末考试结束之后,当然是要放松两天。但这两天心里又惦记着比赛这个事情,慌得很。因为自己既没有接触过数学建模,也没有学过python,更是对比赛的相关情况一无所知,纯路人,纯裸赛。

准备阶段

大概准备了三四天左右的时间吧。也没干什么事情,就是先了解了一下比赛的流程,了解了该准备什么,就花了两天的功夫(因为刚放假想摸鱼)。然后去把python安了,pycharm安了。

经过了解,我发现ICM都是跨学科的,我觉得我没那本事,又听说AB题都很难。所以,最后一点时间,我去看了一篇2020年C题的论文(不是O奖的)。我看了一下,感觉很重要的一步是学会处理excel表。于是我就花了点功夫写了几个demo。事实证明:很有用。

开赛

比赛好像4点?还是6点就开始了。但我们三个8点钟才爬起来。没有任何犹豫,直接看的C题。感觉没有想象中那么高大上(或许是我理解的比较浅薄)。

很快,我们看完题进行了讨论。第一问我的直觉就是:提取positiveID报告的经纬度和发现日期,以日期最早的点为传播源,计算其它数据点到起始点的距离。我就不信没有一个现成的能预测一个按时间发展排序的数据的模型。

第二问我一看,NND,这不是图像分类吗?我SRDP不就搞这个吗?可惜的是,我SRDP的课程学习只看了前面的引言和第一讲,就简单介绍了一下卷积神经网络,什么机器学习三大牛啊之类的,还有什么激活函数,这层那层。印象比较深的是relu函数。

虽然学的不多,但对于理解题目还是很有帮助的。至于后面三问,我想得是就在模型上讨论讨论就行了。

Day1

上午我们已经确定了大致的思路,然后我就先开始数据提取了。因为前天刚看了python操作excel,所以上手不算特别难。我们三个在qq群连的语音,我开了个屏幕共享,我在敲代码,她们在看。我把思路讲给A,有bug或需要搜索资料的地方就找B一块商量(因为B还没安pycharm,我服,后来两天才让她安上的,因为自己一个人负责代码和编程实在是太累了)

第一天的下午,我已经顺利地完成了ARIMA模型的构建。说实话,当时激动的一批。晚上,我就快马加鞭的进入第二问。因为对于图像识别分类,机器学习,我只知道一些理论,比如要有模型,训练集测试集等等,但是从来没有上手过代码,心里没底。第一晚没怎么熬,12点就睡了,就把分训练集的代码写出来了,模型也没写出来。

Day2

早上4点钟起来,继续肝。干到中午,我激动的和队友说:我建出来了!我建出来了!我当时那个激动啊。我本来以为这个工作要费好多天,估计要一整天,甚至要更久,甚至都建不出来。但没想到一上午就搞定了?而且,中午饭我吃的那叫一个香啊~中午还美美的睡了一觉。

下午起来,继续去完善我的模型,发现是有点问题的,也就是预测结果都是negative,一张positive也没有。而且模型准确率高的离谱,都是0.999几,甚至到了1.0 我人都傻了。

这时候还不知道过拟合的概念。但是,不得不提,我的直觉灰常精准。我直接写了一个copyfile.py,用来把positive中的图片按比例复制的和negative的达到1:1。但还是有很高的准确率。后来又研究下去,整了L2正则化,还在换损失函数,加了dropout。反正就各种尝试。换完之后,模型直接跑不起来了。

Day3

我终于能让它跑起来了,但还是过拟合,直接干到凌晨4点。9点多钟起床。但第一问,那个预测结果,需要有一个准确率。我觉得但凭借两张图,不能给出一个数值来,有点low。然后我们就找各种办法去评价第一个ARIMA的准确率。最终,我们要求它符合正态分布的程度,作为准确率。我有画了好大功夫去写。到这个时候我已经甚是疲乏,胸腔有一丝丝压迫感。坐在电脑前,眼睛累的睁不开,屁股上贴了止疼的膏药。最后求出来:0.04!哈哈,惊喜不?这哪敢啊,,,

晚上又发现了新的问题:预测结果出来,属于两个类别的比例都是一样的。比如 [0.5 0.5]

我直接开肝

Day4

bug终于修复了,我自豪的把修改完的problem2.py发给B。又是熟悉的凌晨4点,9点多钟起床。今天的任务是解决第四问。我和B同学讨论的时候感觉挺清晰地,但实际操作代码的时候,我又在纠结一个添加新数据,新数据在训练集中比例小的问题。纠结好久,我又去和B商量,她说:不要在意这些细节…好吧,那就这样吧,爷疲乏了。快中午了,我就写了一半。中午补觉起来下午直接把另一半也补上了。啊,终于要到改论文这一步了吗?太不容易了。

但!是!

有强迫症的我,觉得第二问的图像分类模型还需要操作一下。我进行了一波惊为天人的操作:我又去看了提供的第一个介绍亚洲巨蜂的pdf。本来以为这是一个无用的文件,但我灵光一闪,直接把里面亚洲巨蜂的图片放到训练集里。结果,它居然,他居然,它居然预测出来了3张!3张positive!我去看了一下,你别说还真是!我又深入阅读这篇pdf,发现一个重要信息:区别亚洲巨蜂和其它品种的一个关键点就是它们腹部条纹的不同。于是我又去截了一张大大的亚洲巨蜂腹部图,复制了好几分放到训练集里。阿巴阿巴,检测出5张positive了,哈哈!

10点左右,论文的文案终于全齐了,剩下整合论文翻译翻译就是轻松活了

吗?错!大错特错!我觉得那俩女生,emmm,怎么说呢。。不懂得操作。对。她们论文写得,突出不了重点,详略安排也不是很河里。我又去帮他们修改论文,然后是翻译。

Day5

等到修改后的论文翻译出来,我们发现超过了25页的限制。我想删了A同学写得一堆介绍这介绍那的没用的废话,她想我删代码。最终我完整的保留下来了我心爱的code❤。

但没想到,我们又在论文格式上卡住了。一开始是那个论文的目录有问题,后来有事论文的页码有问题。哎,心塞。

终于,终于,终于把定稿做出来了。我打开屏幕共享,在万众瞩目(啊不,在两个妹纸的瞩目)之下把解决方案发送过去。你以为这就完了?

还没完!我到官网查看是否收到了,一直给我显示not yet received。我们又发了一份,又等了一会儿,还是显示没收到,心里又双叒叕慌了。后来听说这个要等结束后24-48小时才有结果显示,我们才将信将疑的睡了。

凌晨四点。

总结感受

没想到第一次上手python就能写这么多东西了,比如文件操作,pandas,dataframe操作,excel操作,ARIMA模型,图像识别分类模型blabla…

一开始写的时候,我连python语法都不知道,写个啥都得现Google。慢慢的,就很好的适应了。不得不说,python这整齐的马蜂,,,,额不,这整齐的码风很适合爱整齐的我,哈哈。

我有三次很有成就感的时刻。一是建立出来ARIMA模型的时候,二是建出来图像分类模型的时候,三是用图像分类模型能正确识别出一些图像的时候。虽然说,这可能在别人眼里是一个很简陋,很简单的东西。但对于我这么一个在参赛前毫无数学建模经验和python使用经历的人来说,我已经很知足了。越是学习,越感到自己的菜。路漫漫其修远啊!

从凌晨四点开始的数学建模生活第一季,完。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值