数学建模综述
数学建模综述
数学建模是我个人觉得挺值得去打的一个比赛类型,主要是可以从比赛中学到论文的基本撰写流程与思路技巧、传统建模分析的基础方法(尤其是在这个机器学习横行的当下显得更为重要)、利用科学思维分析现实问题的能力(可以让自己变得更理性),功利点的话还有加综测保研考验复试的用途。我们学校的相关制度也比较成熟,三段校赛给基础模型学一遍,然后美赛国赛换着打,挺建议我们学校的大一的学弟学妹参加,正好大一上学学编程工数淑芬,大一下来打这个,挺好的。
本文就按照我的思路进行一些梳理吧。注意本人是工科生,可能会更偏重与用工科惯用套路来想,像是微分方程推导建模之类的就略过不谈了。
同时还有一点,机器学习的方法我也不讲了,一个是这个玩意很多模型都是黑箱没法解释,一个是本来这类比赛的初衷就不是机器学习,有的比赛就直接给机器学习给ban了。
本博客基于25年网协数学建模例会进行叙述(很多都是直接抄的),感谢分享人郭文涛。
建模编程
按照这几个大类来思考模型选用。如果是入门者建议就从零开始边打边学,像毛主席讲的“从战争中学习战争”吗。
个人建议的入门路径是:参与校赛,利用CSDN/知乎/B站+SPSS验证+GPT/DeepSeek/现在流行的ai进行解释,逐步学会相关方法。
flowchart LR
B[AI及搜索了解可用模型]
B --> C[SPSS验证方法可行性]
C --> D[写代码]
当然,前提是你要知道有什么方法可以选,明白几个方向的模型有什么选项、他的输入和输出是什么、主要思想是什么、适用场景和特点有哪些。
优化
优化得出最大最小值。具体而言是变量+约束条件+目标函数,如果你学过神经网络的一些基本概念就会知道这个和训练时放个目标函数然后往那里学习的思路是有点像的。具体而言是我告诉你现在有哪些变量,然后我最后想要得到一个什么东西(最短路径是什么等等),然后你来给我建模得到这样一个模型。
注意事项有:
- 线性寻路等存在最佳唯一解。
- 退火、遗传、粒子群为模拟结果,可能有局部最优解,最好多跑几轮。
- 微分差分方程一般是生物、种群的题,多轮模拟添加竞争等条件,美赛A题比较常见。
- 图论当时那个分享人不会,然后我也不咋会,这个东西有点太理论了。
flowchart LR
A[优化模型] --> B[数学规划]
B --> B1[dp]
A --> C[微分、差分方程]
C --> C1[传染病模型SIR]
C --> C2[Lotka-Volterra]
C --> C3[Leslie种群模型]
A --> D[图论与网络]
D --> D1[最短路]
D --> D2[网络最大流]
D --> D3[旅行商问题TSP]
A --> E[优化算法]
E --> E1[退火算法]
E --> E2[遗传算法]
E --> E3[粒子群算法]
分类
给现有的物品分出等级,可能会伴随着大量的数据。一般不会单独出题,比如评价的时候会有这种东西的出现。
K-means和SVM、XGBoost比较重要
flowchart LR
A[分类模型] --> B1[判别分析]
B1 --> B11[距离判别法]
B1 --> B12[Fisher判别法]
B1 --> B13[Bayes判别法]
A --> B2[聚类分析]
B2 --> B21[K-means聚类]
A --> B3[神经网络分类]
B3 --> B22[CNN]
B3 --> B23[yolo]
B3 --> B31[随机森林]
B3 --> B32[SVM]
B3 --> B33[XGBoost]
评价
评价方案的好坏,给出相应的评判方法,25年校赛第一轮的B题就是这个,当时用的熵权法+TOPSIS做的就挺好,然后先用PCA筛几个变量下去,还能画点好看的热力图什么的。这类题实在不会用AHP这种纯主观的糊弄糊弄也不是不行,至少能给题做出来。
但是要注意一点,这种比较套路化的思路同质化就会比较严重,具体怎么抉择还是自己仔细想一想吧。
flowchart LR
A[评价模型] --> B1[层次分析法(AHP)]
A --> B2[灰色关联度分析]
A --> B3[BP神经网络]
A --> B4[数据包络法DEA]
A --> B5[组合评价法]
A --> B6[熵权法+TOPSIS]
预测
预测未来的变化
- 输入:按照时间排布的变量
- 输出:按照时间排布的变量未来值
- 主要使用:线性回归、ARIMA
- 多变量:可以尝试使用LSTM,也可以非时序,给定要素做判断
flowchart LR
A[预测模型] --> B1[回归分析]
B1 --> B11[线性回归]
B1 --> B12[岭回归]
A --> B2[时间序列分析]
B2 --> B21[ARIMA]
A --> B3[灰色预测]
B3 --> B31["GM(1,1)"]
A --> B4["支持向量机 SVM"]
A --> B5[机器学习]
B5 --> B51[BP神经网络]
B5 --> B52[LSTM]
B5 --> B53[GRU]
B5 --> B54[随机森林]
B5 --> B55[梯度提升机 GBDT]
B5 --> B56[XGBoost 回归]
B5 --> B57[LightGBM]
B5 --> B58[SVR 回归]
A --> B6[组合预测]
总体流程
flowchart LR
B[AI及搜索了解可用模型]
B --> C[SPSS验证方法可行性]
C --> D[写代码]
D --> E[优化图表]
E --> F[结果验证,评估]
评估的话可做可不做,如果多个模型可以比较一下,或者指标好看,比如拟合的很好可以吹一下,差了就不说了。 再说一遍,一定要注意要验证是否可行,避免无用功。
论文部分
文档结构
- 摘要
- 目录
- 问题介绍
- 背景
- 重述
- 分析
- 符号表
- 基本假设
- 模型建立与求解
- 一、二、三
- 模型评估优缺点、灵敏性分析
主体部分
方法引入 + 公式 + 运用图片 + 结果
- 说清楚为啥用:哪类的模型 + 实现什么目的
- 说清楚如何用:计算公式 + 可能的过程图
- 说清楚用结果:使用结果图 + 误差分析
注意事项
- 看题目位置是第几题,第一题可以稍微水一些,后面第三题就要猛猛干。
- 一定要注意要验证是否可行,避免无用功。
- 画出来的图一定要美化一些,因为实际上大家的模型都差不多,最重要的还是你的图片,要比较帅。
- 摘要也很重要,这个建议要建模手在最后做完的时候再改一下。
- 做完之后记得补充符号表
- 无论建模、细节完成度多少,是否完成每个任务和作图,都要按照模板填够内容,不缺漏部分
- 论文手第一天就要干活,写背景调研什么的
- 图片需要细细打磨,下面贴一张分享会的ppt ![[屏幕截图 2025-04-22 014046.png]]
- 建模手和论文手要好好沟通
- 建模手要注意评估优缺点,要注意灵敏度的分析设计,这个听分享会的话要用shap?我没用过反正是