README: 4-model val-weighted cross-family ensemble = 0.805 scaffold-test (honest, +GIN graph net)
Browse files
README.md
CHANGED
|
@@ -58,22 +58,22 @@ Measured on a **Bemis–Murcko scaffold split** (80/20, leak-free) using the sav
|
|
| 58 |
|
| 59 |
## Companion result — cross-family ensemble (reproducible, beats v4 alone)
|
| 60 |
|
| 61 |
-
|
| 62 |
|
| 63 |
| Model (scaffold-test) | Mean AUC |
|
| 64 |
|---|---|
|
| 65 |
-
| v4 (XGBoost descriptors, this repo) | 0.791 |
|
| 66 |
| MolFormer-XL fine-tune (3-seed) | 0.776 |
|
| 67 |
| ChemBERTa-77M-MTR fine-tune (3-seed) | 0.779 |
|
| 68 |
-
|
|
| 69 |
-
| v4 + ChemBERTa | 0.
|
| 70 |
-
| **v4 + MolFormer + ChemBERTa (
|
| 71 |
|
| 72 |
-
|
| 73 |
|
| 74 |
-
> **Honesty note.** Each transformer *alone* is **below** v4 on this scaffold split. Literature "MolFormer Tox21 ≈ 0.847 / GNN SOTA 0.83–0.85" figures are **random-split**; on the harder scaffold split (generalization to novel chemotypes) ~0.80 is near the realistic ceiling
|
| 75 |
|
| 76 |
-
Reproduction scripts (de novo, leak-free, identical split): `tox21_v5_molformer.py`, `tox21_chemberta.py`, `
|
| 77 |
|
| 78 |
## Intended use
|
| 79 |
Computational toxicity **triage / prioritization** for drug and nutraceutical candidates (e.g., flag high-risk endpoints before wet-lab). **Not** a substitute for experimental toxicity assays.
|
|
|
|
| 58 |
|
| 59 |
## Companion result — cross-family ensemble (reproducible, beats v4 alone)
|
| 60 |
|
| 61 |
+
Combining v4 with **three independently-trained, cross-family models** (two SMILES transformers + a graph neural net), evaluated on the **same** Bemis–Murcko scaffold split (n=1,565 test):
|
| 62 |
|
| 63 |
| Model (scaffold-test) | Mean AUC |
|
| 64 |
|---|---|
|
| 65 |
+
| v4 (XGBoost descriptors, this repo) | 0.789–0.791 |
|
| 66 |
| MolFormer-XL fine-tune (3-seed) | 0.776 |
|
| 67 |
| ChemBERTa-77M-MTR fine-tune (3-seed) | 0.779 |
|
| 68 |
+
| from-scratch GIN graph net (3-seed) | 0.765 |
|
| 69 |
+
| v4 + MolFormer + ChemBERTa (equal-weight) | 0.803 |
|
| 70 |
+
| **v4 + MolFormer + ChemBERTa + GIN (val-weighted)** | **0.805** |
|
| 71 |
|
| 72 |
+
The **val-weighted** ensemble learns non-negative model weights on a held-out **validation** set (weights ≈ v4 2.0 : each NN 0.75; **no test-set tuning**), letting the weaker-but-diverse graph net contribute at low weight. Result: **+0.014 over v4 alone, ~0.805**, near the realistic scaffold-split ceiling.
|
| 73 |
|
| 74 |
+
> **Honesty note.** Each transformer/GNN *alone* is **below** v4 on this scaffold split; the gain comes purely from **cross-family error decorrelation** (descriptor GBDT + SMILES transformers + graph net). Literature "MolFormer Tox21 ≈ 0.847 / GNN SOTA 0.83–0.85" figures are **random-split**; on the harder scaffold split (generalization to novel chemotypes) ~0.80–0.81 is near the realistic ceiling. The single models reproduce ~0.85 on a random internal val (matching random-split literature), confirming the split is the cause of the gap.
|
| 75 |
|
| 76 |
+
Reproduction scripts (de novo, leak-free, identical split): `tox21_v5_molformer.py`, `tox21_chemberta.py`, `tox21_gin.py`, `stack_ensemble.py`.
|
| 77 |
|
| 78 |
## Intended use
|
| 79 |
Computational toxicity **triage / prioritization** for drug and nutraceutical candidates (e.g., flag high-risk endpoints before wet-lab). **Not** a substitute for experimental toxicity assays.
|