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 个浓度直接回归)→ 能拿分但分不高
• 化学机制特征工程 + 简单模型 → 分数显著提升
• 数值模拟求解 → 如果实现正确,最精确
这道题的核心竞争力不是写代码的能力,是看懂化学方程、把化学知识转化成特征的能力。