The aroma and mouthfeel heads now publish a fitted decision threshold plus measured out-of-fold precision (#261, #263). Taste and Tox21 still run on a flat 0.5 with only AUROC shown, which is the exact reporting gap #261 closed everywhere else — and AUROC is the metric that cannot see class imbalance.
Taste heads have hundreds of positives each so their thresholds are unlikely to move far, but that is the finding, not a reason to skip measuring: "we checked and 0.5 was right" is a result. The Tox21 heads are the ones to actually worry about, because assay actives are rare and a safety flag that is right 15% of the time is worse than useless — it trains people to ignore it.
Scope
train_taste.py / train_tox.py adopt train_aroma._calibrate (out-of-fold threshold + 50% precision floor + confident_capable)
- both manifests carry
threshold, cv_precision, cv_recall, confident_capable
predict_taste / predict_tox honour the per-head threshold and return indicative where the floor is not met
/api/heads publishes the same fields for all four modalities, so the catalog is uniform
- head bars show
fires ≥N% · N% precise for every modality, not just aroma
Every one of the 190 heads should be auditable the same way.
The aroma and mouthfeel heads now publish a fitted decision threshold plus measured out-of-fold precision (#261, #263). Taste and Tox21 still run on a flat 0.5 with only AUROC shown, which is the exact reporting gap #261 closed everywhere else — and AUROC is the metric that cannot see class imbalance.
Taste heads have hundreds of positives each so their thresholds are unlikely to move far, but that is the finding, not a reason to skip measuring: "we checked and 0.5 was right" is a result. The Tox21 heads are the ones to actually worry about, because assay actives are rare and a safety flag that is right 15% of the time is worse than useless — it trains people to ignore it.
Scope
train_taste.py/train_tox.pyadopttrain_aroma._calibrate(out-of-fold threshold + 50% precision floor +confident_capable)threshold,cv_precision,cv_recall,confident_capablepredict_taste/predict_toxhonour the per-head threshold and returnindicativewhere the floor is not met/api/headspublishes the same fields for all four modalities, so the catalog is uniformfires ≥N% · N% precisefor every modality, not just aromaEvery one of the 190 heads should be auditable the same way.