文章目录
- 前言
- 一、建模题目介绍
- 1.1、题目数量
- 1.2、题目种类
- 1.3、题目难度
- 1.4、题目选择
- 二、笔者的备赛过程
- 2.1.简单的题目(本科比赛,学科大作业)
- 2.2.真题
- 三、编程的备赛建议
- 3.1.matlab和python的基础语法
- 3.2.数据预处理
- 3.3.常用的机器学习算法
- 3.4.常见的智能优化算法
- 2.5.画图能力
- 2.6.统计学分析软件SPSS(可选,强烈建议学,很简单)
- 2.7.优化软件lingo(可选,前期学了,但笔者比赛没用)
前言
第一次开竞赛的经验贴,如果有写错的地方,还望各位同学理解。
这一篇文章写于比赛结果公布的第二天,也是对上一篇数学建模心得体会的补充
(上一篇心得体会写于比赛完成后的第二天:华为杯心得体会)
首先介绍一下笔者队伍的情况:
1)获奖情况:国二等奖
2)选题:E题 锡林郭勒草原放牧
3)三人基础:差不多都是零基础。笔者赛前会使用python(笔者课题是深度学习)
4)比赛中用到的软件:python3.6(pycharm),matlab2021a,spss。
5)熬夜情况:倒数第二晚三点睡 最后一晚五点睡 其余时候正常作息
一、建模题目介绍
1.1、题目数量
2022年共有ABCDEF六个题目,选择其中一个完成即可。
其中每道题目有数量不等的小问。
2个小问,3个小问,4个,5个,6个…都有可能
每个小问里拆开也可能还有小小问
1.2、题目种类
如果简单分类的话,我会把每年的建模题ABCDEF分为下面几类:
1)华为/中兴专项题
这种题目可能会涉及到通信工程,信号处理,芯片等工程问题,感觉这是华为和中兴公司自己做工程时遇到的一些真实问题,然后改编成了数学建模题。
2)“涉及到优化,纯数学性质较强的一些题目
比较典型的:2022年一个题目:切木板
3)大数据题目
这种题目会提供很多excel表格数据,可以大量使用统计学方法,机器学习乃至深度学习的方法来解决问题。
比较经典的:2021年题目D:抗胰腺癌候选药物的优化建模
但是,一个完整题目有很大可能有一定穿插:
大数据的题目中,也可能存在某个小问是优化问题。
优化的题目中,也可能存在某个小问题属于统计学问题
1.3、题目难度
从个人感觉上来说(仅仅是个人感觉)
1)大数据题最简单,报的人也是最多的
2)优化题,纯数学题这些难度位于二者之间
3)华为/专项题最难
1.4、题目选择
笔者最开始知道自己水平不够,再加上本身研究生课题方向涉及到了深度学习,所以只准备了“大数据题”的一些解题方法。
二、笔者的备赛过程
2.1.简单的题目(本科比赛,学科大作业)
在比赛开始前一到两个月,学校带着大家一起练题。题目源自于本科的竞赛题,一些数学专业的作业题,目的就是为了让我们对数学建模有一定的基础储备。
2.2.真题
练习完简单的题目之后,就可以着手准备真题了。
如果时间来不及的话,建议就只把对应题目的方法准备一下就行了。比如笔者知道自己只会选择大数据的题目,所以我就只看大数据的准备方法,尤其是把机器学习的代码从头到尾运行了一遍,保存好。
三、编程的备赛建议
由于笔者本论参赛主要以“大数据题”来准备的,所以备赛这里也主要以大数据题为主。
3.1.matlab和python的基础语法
下面给出一部分建模过程中,用的较多的一些基础语法(个人觉得用的多的,因为篇幅原因只展示一部分)
1)比如说读取CSV,excel文件
具体也可以参考我这篇博客,就是当时准备数学建模的时候写的:python读取CSV文件
样例:
import pandas as pd
file_name='D:/数学建模2022/算法/SVM/iris.csv'
names=['separ-length','separ-width','petal_length','petal_width','class']
data=pd.read_csv(file_name,names=names)
print(data)
print(data.shape)
matlab中也有对应的方法,这里就不单独列出了。
2) 循环,遍历,zip,数组,列表,字典等一系列基础语法,需要熟练
比如for循环
for row in sheet[3:sheet.max_row]:
比如zip函数
list1=[1,2,3]
list2=[4,5,6]
list3=zip(list1,list2)
print(list3)
这些语法用熟练了,比赛时候写代码才不会卡顿,从而节省时间。
怎么去练习呢:
我练习方法是,做真题时会在网上看一些优秀的论文,看看它们的代码是什么样子的,然后将里面不会的语法进行重新编程,熟悉一下。多做几套,基础语法自然而然就牢固了。
3.2.数据预处理
数据预处理包括处理缺失值,离群值等等。
这次比赛,数据预处理,我主要用的是matlab2021a中自带的数据预处理包:
如何使用它,我这里就不赘述了,大家可以去网上找找教程,非常简单智能,画图也非常好看
3.3.常用的机器学习算法
在网上的视频,博客都有非常详细的教学,如果只考虑会调用,大家花两到三天就可以学会,一点都不难。
笔者的博客里也有一些现成的代码。
3.4.常见的智能优化算法
同理,在B站也有很多教程,会调用,改参数就行。
2.5.画图能力
个人觉得python画出的图像更鲜艳(相比于matlab),所以重点学了如何用python画图。
有一些比较基础的内容需要提前看一下,比如的python的大画布小画布区别这些,以及中文无法正常显示的这些问题
2.6.统计学分析软件SPSS(可选,强烈建议学,很简单)
回归分析,相关性检验,时间序列预测等等,这个软件是非常好用的,而且造图也非常快。