667. NeurIPS - Open Polymer Prediction 2025 | neurips-open-polymer-prediction-2025
所以我不认为我做了什么特别有趣的事情,但由于发生了大洗牌,我想看看哪些解决方案幸存了下来(除了 Tg 后处理之外),我想我还是分享一下我的方案吧。
我的代码由 20 个不同的 notebook 组成,所以我不打算分享代码。但我认为它很容易理解。
我使用了大多数公开 notebook 中的数据集,即主办方添加到竞赛数据中的数据集以及 TgSS 数据集。我不想花时间阅读细则和寻找隐藏的仓库。
我尝试了两种处理数据集的方式,首先是重新缩放以更接近训练数据,然后是去除异常值。这两种方式得出的 LB 分数都较差,所以我最终使用了原始数据。
数据集之间存在显著偏移,例如为了重新缩放 TgSS 数据集,我做了 *.71 + 22。
我生成了几乎所有能生成的特征:Morgan、MACCS 指纹、RDKit 和 Mordred 描述符、图特征、ChemBERT 嵌入。
在删除低方差列后,我最终得到了大约 1500 个字段。
首先我用所有特征运行了第一个 Autogluon。然后我使用特征重要性功能,每个目标保留大约 500 个特征,并运行了第二个 Autogluon 模型。我还使用了几个公开 notebook 中的 XGB 模型,例如 这个(不确定是否是原作者),但在我的设置下,它的表现比公开版本差得多(.68 vs .64 LB)。
例如,Rg 的 top 特征是 3 个 BERT 生成的字段,以及 Mordred 键合和结构信息内容。
我使用第一阶段的 3 个模型在所有训练 SMILES 上生成伪标签。然后我在这些标签上训练了第三个 Autogluon。我使用了所有第一阶段的特征以及第一阶段模型对其他目标的预测。
一般来说,Autogluon 集成主要由 Tabm 组成。例如,我最终使用的 Tg 模型是 77% TabM, 15% LGBM, 8% Catboost。
所有 Autogluon 以及特征选择都是在具有 12 小时预算的 GPU notebook 上运行的。
我的 .86 notebook(公开 LB 为 .66)使用了以下模型:
| 目标 | 模型 |
|---|---|
| Tg | 仅含 500 个特征的第一阶段 Autogluon |
| FFV | XGBoost |
| Tc | 第二阶段 Autogluon(带有弱标签) |
| Density | 两个第一阶段 Autogluon 的平均值 |
| Rg | 第二阶段 Autogluon(带有弱标签) |
模型的选择纯粹基于 LB 分数。虽然我没有做任何后处理,但 Tg 的选择带来了显著的改进,所以它可能是具有“最佳”偏差的模型。
我提交了一个更保守的集成,仅使用我尝试过的所有模型的中位数,那个在公开 LB 上得分为 .65,但在私有 LB 上仅为 .91。
我最初只想用这次竞赛尝试一堆表格模型和 GNN。我对 LGBM 尝试了相同的两阶段方法,但结果较差。我也在 Tg 上训练了一个 GNN,表现灾难性地差,所以我停在那里了(事后看来,也许这不是最好的目标)。
最后我认为我的最终分数运气不错,我在公开 leaderboard 上不在铜牌范围内。但看到其他解决方案,我认为这表明 Autogluon 和 TabM 是相当强大的方法。