NOAI 2025 复赛题解|第2题:不理解化学反应,模型就是在瞎猜

NOAI 2025 复赛题解|第2题:不理解化学反应,模型就是在瞎猜

本文核心观点
NOAI 2025复赛第2题要求预测化学反应半衰期,题目明确提示特征工程比复杂模型更重要。核心思路:从化学反应方程构造特征,简单模型即可拟合。

NOAI 2025 复赛题解|第2题:不理解化学反应,模型就是在瞎猜

NOAI复赛 机器学习 / 科学计算

需要真题、资料,请拉到文末添加艾斯老师微信。

题目回顾

一个金属有机反应 L₂M + D ⇋ L₂MD,包含 5 个基元反应、8 种物质浓度随时间变化。训练集 1000 个实验的浓度-时间序列,每 10 秒记录一次。

任务:给定新实验的初始浓度(c(L₂M)、c(D)、c(L)),预测 L₂M 的半衰期 t₁/₂

题目原文提示:"对化学反应本身分析得越充分,求解越精确。""Feature 数比较少,不建议使用太复杂的模型。"

翻译:这是特征工程的题,不是堆模型的题。

思路一:直接回归(baseline)

从训练集的浓度曲线里提取半衰期(L₂M 浓度降到初始值一半的时刻),用 3 个初始浓度作为输入,训练回归模型。

提取半衰期时用线性插值——数据每 10 秒一个点,直接找"第一个 ≤ c₀/2 的点"会有 ±10 秒误差,插值能精确到 1 秒以内。

这个 baseline 能跑出分数,但不会高。3 个浓度和半衰期之间隔了 5 个基元反应和 8 组微分方程,不是简单的线性关系。

思路二:基于化学机制的特征工程

题目给了 5 个基元反应方程。半衰期取决于反应速率,反应速率取决于浓度的组合关系。

可以构造的特征:

c_L2M, c_D, c_L # 原始 3 个 c_L2M * c_D # 正反应速率相关 c_L2M / (c_D + ε) # 浓度比 c_D / (c_L + ε) # 浓度比 c_L ** 2 # 配体解离可能是二级反应 c_L2M * c_D / (c_L + ε) # 综合特征

具体构造什么,取决于你对基元反应方程的理解。特征构造得好,简单模型就能拟合得很好 ✅ 能不能从方程里看出该构造什么特征,取决于你对化学动力学的理解深度。这就是题目说"分析越充分,求解越精确"的意思。

思路三:数值模拟求解

从训练数据里回归出 5 个反应的速率常数(k₁ ~ k₅),然后对新初始条件直接用差分方程模拟,算出半衰期。完全基于物理机制,不需要训练数据覆盖所有初始条件。但实现复杂。

容易踩的坑

坑 1评分公式是断崖式的

5次方让惩罚在临界点附近急剧变化:误差 5 → Score ≈ 0.95,误差 10 → Score ≈ 0.84,误差 15 → Score ≈ 0.25,误差 18 → Score = 0。误差超过约17就是0分。宁可整体偏保守,也不要个别实验出大错。

坑 2半衰期提取不够精确

每 10 秒一个数据点,直接取最近的点会有 ±10 秒误差。必须用插值。

坑 3有些实验的浓度可能不降到一半

反应可能在 L₂M 浓度还没降到一半时就达到平衡。需要单独处理这种 edge case。

坑 4不看化学方程直接训模型

3 个输入变量直接回归一个输出,中间隔了 5 个基元反应的复杂非线性关系。不做特征工程,模型很难学到正确映射。

区分度在哪

纯 ML baseline(3 个浓度直接回归)→ 能拿分但分不高

化学机制特征工程 + 简单模型 → 分数显著提升

数值模拟求解 → 如果实现正确,最精确

这道题的核心竞争力不是写代码的能力,是看懂化学方程、把化学知识转化成特征的能力。

微信二维码

扫码备注【NOAI】加交流群