如果你参加过数学建模国赛,一定经历过这样的"灵魂拷问":
题目给了 5000 行数据,让我预测下个月的销量,可我翻完教材只看到一堆偏微分方程……
这时候,机器学习就是你的"外挂"。
这篇文章不打算罗列十几个模型名词让你头大,而是用一条主线把"机器学习在数学建模里到底怎么用"讲透:
- 三个核心公式(损失函数 / 梯度下降 / 神经网络前向传播)到底长什么样?
- 用一段 ~60 行纯 Python 代码 真实训练,对比三种模型的效果;
- 2026 年国赛 B 题(无线电干扰源)、C 题预测类题目里,机器学习具体怎么切入?
先用一个生活类比,让你 30 秒内抓住机器学习的"魂"。
类比 | 老中医把脉 vs 现代仪器体检
传统数学建模像老中医:通过物理定律、化学方程,把"病人"拆解成"阴阳虚实"——一旦机理清楚,预测极准。
机器学习像现代仪器体检:不问机理,直接给一台心电图机 + 一堆历史病例,让它自己"看"出心律不齐的规律。
所以当你的题目机理太复杂、变量太多、又恰好有数据时——机器学习就是顺手的工具。
一、机器学习的"三件套":数据、模型、损失
无论多复杂的机器学习模型,本质都只做一件事:在数据里找一个函数,把输入映射到输出。
把它拆成三件套:
- 数据 (x, y) ——历史观测值,比如"过去 60 个月每月用电量";
- 模型 ŷ = f(x; w) ——带参数 w 的函数,比如最简单的线性回归 ŷ = wx + b;
- 损失 L(w) ——模型的预测值 ŷ 和真实值 y 之间的差距,用来衡量"模型猜得准不准"。
最常用的损失函数是均方误差 (MSE):
MSE = L(w) = 1⁄n · Σi=1n (yi − ŷi)2
它的几何含义是:把所有数据点上的"预测误差的平方"取平均。
L 越小,模型越准;我们要做的事情只有一件——找到让 L 最小的 w。
① 原始数据② 清洗 & 特征③ 选模型④ 训练 & 调参⑤ 评估 & 上线机器学习建模的标准五步流程(这也是国赛论文里"模型建立"那一节的常用叙述顺序)图 1 | 机器学习建模的标准五步流程,国赛论文的"模型建立"一节通常按这个顺序写
注意,这五步不是机器学习独有——传统数学建模也走这个流程。区别在第③步:传统建模是"人脑推导公式",机器学习是"算法自动搜索参数"。
二、梯度下降:机器学习是怎么"找到最优解"的
有了损失函数 L(w),剩下的问题就是:怎么把 w 调到让 L 最小?
答案是梯度下降——一个 19 世纪就存在的朴素想法。
类比 | 蒙眼下山
想象你被蒙上眼睛站在一座山上,你只想走到山谷最低点。
你唯一能做的就是:感受脚下的坡度,朝最陡的下坡方向迈一步;再感受,再迈一步……
每一步的"步长"叫学习率 η:太小下山太慢,太大会跨过谷底直接飞出去。
翻译成数学:
梯度下降 wk+1 = wk − η · ∂L ⁄ ∂w
其中 ∂L/∂w 是损失函数对参数的偏导数(梯度),告诉我们"山坡的陡度和方向";η 是学习率,决定每一步迈多大。
重复这个公式几百到几千次,w 就会收敛到谷底——也就是机器学习里说的"训练完成"。
起点(随机)谷底(最优)-5-3-1135
-12-8-404812参数 w₁参数 w₂梯度下降:每一步都朝"最陡的下坡"走图 2 | 红色箭头是梯度下降在 2D 损失曲面上的路径,从随机起点一路走到谷底
这里有一个反直觉但重要的细节:机器学习找到的"最优 w"是数值最优,不一定是物理最优。
所以国赛论文里,如果只用机器学习,评委会觉得"机理不清"。通常的做法是:先用物理/统计给出公式形式,再用机器学习去拟合参数——两者结合最稳。
三、三大经典模型:分别长什么样
这一节我们快速过三个在国赛里出场率最高的模型,看它们的"函数形式"和适用场景。
3.1 线性回归 ——"称体重"的最朴素工具
它假设 y 和 x 是直线关系:
ŷ = w1x + w0
两个参数 w₁(斜率)和 w₀(截距),可以用闭式解一步到位:
w1 = Σ (xi − x̄)(yi − ȳ) ⁄ Σ (xi − x̄)2, w0 = ȳ − w1x̄
优点:可解释性极强(w₁ 就是"x 每增加 1,y 增加多少");训练快到毫秒级。
缺点:只能拟合直线,遇到曲线就拉胯。
适用:自变量只有 1~2 个、近似线性的场景(比如"广告费 vs 销量")。
3.2 决策树 ——"查户口"式层层筛选
决策树不做"加权打分",而是用 if-else 把空间切碎:
如果 x2 > 6.4 则 类 B;否则若 x1 > 3.2 则 类 A;否则 类 B …
它把特征空间切成长方形,每块贴一个标签。下图是 2 个特征的二维切分示例:
00224466881010特征 x₁特征 x₂类 A类 B决策树:把平面切成长方形,再贴标签图 3 | 决策树把平面切成一块块矩形,再贴上类别标签
优点:完全不用归一化、可解释性极强(决策路径就是规则)、天然处理类别特征。
缺点:单棵树容易过拟合,深度太深就背答案。
国赛常见用法:随机森林(RF)/ XGBoost —— 把几百棵决策树打包,投票表决,既稳又准。
3.3 神经网络 ——"万能拟合器"
如果说线性回归是"用一根直线穿过云",神经网络就是"用一根橡皮筋穿过云"。
它由若干层"神经元"组成,每根连线都是一个可学习的权重 wᵢ:
输入层隐含层输出层wᵢ预测值x1x2x3神经网络结构:每根连线 wᵢ 都是一个可学习的参数图 4 | 一个最简单的 MLP:3 输入 → 5 隐藏 → 1 输出,每条连线上都有一个权重 wᵢ
前向传播公式(一层):
hj = tanh(Σiwijxi + bj), ŷ = Σjvjhj + c
tanh 是"激活函数",让网络能拟合非线性关系(如果不加激活函数,再多层的神经网络也只是个线性回归)。
权重 wᵢ 通过反向传播 + 梯度下降不断更新——公式还是上一节的 w := w - η · ∂L/∂w,只是 ∂L/∂w 要用链式法则一层层算回去。
优点:理论上可以逼近任意连续函数("万能近似定理"),处理图像、文本、时序都好用。
缺点:黑盒、训练慢、需要数据量、调参玄学。
国赛常见用法:MLP / CNN(图像)/ LSTM & Transformer(时序)。
四、实战对比:60 行纯 Python 真实训练
光看公式不够直观。我用一段真实可跑的代码(无需 numpy、sklearn),对比上面三个模型在同一份数据上的拟合效果。
任务设定:预测一个时间序列,数据生成规则是
y(t) = 0.4 t + 0.3 sin(4.4πt) + ε, ε ∼ N(0, 0.062)
也就是"线性趋势 + 季节波动 + 高斯噪声"——这正是国赛里销量、用电量、客流量类预测题的典型形态。
注意下面这张图,
真实规律是带正弦起伏的曲线,并不是直线:
-0.6-0.30.00.30.60.90.00.20.50.81.0时间 t (归一化)指标值真实观测值(含噪声)图 5 | 60 个带噪声的观测点,肉眼能看出"上升 + 起伏"两种趋势
接下来分别用三种模型去拟合:
- 线性回归
- MLP (1-8-1) —— 一个 8 个隐藏神经元的两层网络,能拟合非线性;
- KNN (k=5)
—— 用最近 5 个点的平均值做预测,平滑但延迟。
-0.6-0.30.00.30.60.90.00.20.50.81.0时间 t (归一化)指标值真实数据点线性回归MLP 神经网络KNN (k=5)
图 6 | 三种模型在同一份数据上的拟合结果对比
从图上能直接看到三个现象:
- 线性回归(橙线):只看到"上升趋势",把起伏全抹平了——MSE 最大;
- MLP(绿线)
- KNN(紫线):呈阶梯状,比 MLP 滞后,但比线性回归更接近真规律。
具体的 MSE 数值对比:
0.51.52.50.00.00.00.00.0MSE 误差模型0.0428线性回归0.0062MLP 神经网络0.0029KNN (k=5)图 7 | 三种模型在训练集上的 MSE 对比(噪声 σ=0.06,理论 MSE 下界 ≈ 0.0036)
- MLP MSE = 0.00616(接近噪声下界,说明几乎把规律学到家了)
这是国赛里一个非常经典的教训:用错模型 = 把分数拱手让人。当数据有非线性结构时,硬上线性回归就是送命。
顺便看一下 MLP 训练时的损失下降曲线——梯度下降到底有没有在工作:
0.00.1
0.10.10.21.0500.01000.01500.02000.0训练轮次 (epoch)训练 MSE 损失训练集 MSE最终 MSE = 0.05104图 8 | MLP 训练 2000 轮的 MSE 损失下降曲线,前 200 轮陡降,后面慢慢收敛
这条曲线是机器学习调参时最重要的"体检报告":
如果它陡降后趋平——恭喜,训练成功;
如果纹丝不动——学习率太小或代码有 bug;
如果震荡上飞——学习率太大,模型"飞过谷底"。
五、国赛真题里,机器学习怎么用?
最后落到实操,结合 2026 年国赛常见方向,说说机器学习的具体打法。
5.1 B 题类(机理复杂 + 有数据)——机器学习做"辅助定位"
以经典的"无线电干扰源定位"题为例:题目给了若干监测站接收到的信号强度 RSSI,要你反推干扰源位置。
传统建模路线:用对数距离路径损耗模型
RSSI = A − 10n·log₁₀(d) + 噪声,列非线性方程组求解。
机器学习加成:把 (x, y) 网格化,在每个格点上让模型预测 RSSI,和实测值匹配最好的格点就是干扰源。
常见做法:先用 KNN 做粗定位,再用 XGBoost 精修,最后代入物理公式验证——机理 + 数据双保险。
5.2 C 题类(预测 / 优化)——机器学习挑大梁
C 题常是"给历史数据,预测未来 + 给出策略"。这一类几乎可以完全交给机器学习:
- 时间序列预测:用 LSTM / Prophet / XGBoost 直接预测;
- 聚类分析:K-means 把样本分成若干"画像"(比如把外贸上市公司按财务特征分成 3 类);
- 因子分析:先用因子分析降维、剔除共线性,再用机器学习做预测——这是我硕士论文里的标准操作。
具体到我自己的研究:23 家 A 股外贸上市公司、9 个财务指标,
第一步:因子分析把 9 个指标压缩成 3 个公因子(盈利能力 / 偿债能力 / 营运能力);
第二步:用 K-means 把 23 家公司聚成 3 类(稳健型 / 成长型 / 风险型);
第三步:对每类分别用 ARIMA / LSTM 预测下一年走势。
这一套"因子分析 + 聚类 + 时序预测"几乎可以平移到任何 C 题。
5.3 避坑清单
国赛里用机器学习,最容易翻车的 5 个点:
- 不做数据归一化
- 不划分训练 / 验证 / 测试集
- 只报训练集精度
- 机理解释完全缺失
- 把网格搜索 (Grid Search) 当调参的唯一手段
六、公式总结表(建议收藏)
最后把这篇文章出现过的所有核心公式汇总,方便复习和复制到国赛论文里。
| | |
|---|
| | |
| | |
| | |
| hⱼ = tanh(Σ wᵢⱼxᵢ + bⱼ);ŷ = Σ vⱼhⱼ + c | |
| ∂L/∂wᵢ = ∂L/∂ŷ · ∂ŷ/∂h · ∂h/∂wᵢ | |
| ŷ = (1/k) · Σ yⱼ,j ∈ top-k 最邻近 | |
| | |
写在最后
机器学习不是数学建模的"银弹",但它是一把非常顺手的瑞士军刀。
下次再遇到"机理不清、数据很多、要预测未来"的题目,记得拿出来用。
记住一句话:机理是骨,数据是肉,机器学习是把它们缝在一起的针线。
国赛拿奖的论文,三者缺一不可。
下一篇会写《LSTM 时间序列预测:从直觉到代码》,把上面那个 sin 数据集再用 LSTM 跑一遍,看更深的网络是不是真的能学到更长的记忆。敬请期待
本文来源:数学中国
关注公众号了解更多
会员申请 请在公众号内回复“个人会员”或“单位会员