openfree commited on
Commit
4e79c5d
·
verified ·
1 Parent(s): 413ba79

README: 4-model val-weighted cross-family ensemble = 0.805 scaffold-test (honest, +GIN graph net)

Browse files
Files changed (1) hide show
  1. README.md +8 -8
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
- Averaging v4 with **two independently fine-tuned SMILES transformers**, 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.791 |
66
  | MolFormer-XL fine-tune (3-seed) | 0.776 |
67
  | ChemBERTa-77M-MTR fine-tune (3-seed) | 0.779 |
68
- | v4 + MolFormer | 0.794 |
69
- | v4 + ChemBERTa | 0.799 |
70
- | **v4 + MolFormer + ChemBERTa (equal-weight)** | **0.803** |
71
 
72
- Equal-weight probability average (**no test-set tuning**). Cross-family diversity (descriptor GBDT + two differently-pretrained SMILES transformers) produces decorrelated errors **+0.012 over v4 alone, crossing 0.80** on the scaffold split.
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 for this dataset. The single transformers reproduce ~0.85 on a random internal val (matching the 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`, `ensemble_3way.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.