Skip to content

Seven new aroma heads from unique chemistry, and a count sweep - #274

Merged
rvnminers-A-and-N merged 1 commit into
mainfrom
data/seven-new-heads-and-count-sweep
Jul 30, 2026
Merged

Seven new aroma heads from unique chemistry, and a count sweep#274
rvnminers-A-and-N merged 1 commit into
mainfrom
data/seven-new-heads-and-count-sweep

Conversation

@rvnminers-A-and-N

@rvnminers-A-and-N rvnminers-A-and-N commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Progress on #262.

Chasing blackberry produced nothing across three rebuilds, so this asks the better question instead: which descriptors deserve a head that don't have one? Ten sat below the ten-positive floor; seven had genuinely distinctive character chemistry and were given it.

aroma heads total heads
before 166 189
after 172 195

Five landed (figures from the final manifest, verified against the running app):

new head AUROC n_pos precision character chemistry
angelica 0.972 11 0.54 β€” confident macrocyclic lactones
quince 0.955 12 0.02 marmelo lactone / oxathiane
galbanum 0.922 10 0.12 galbanum pyrazine, undecatriene
wormwood 0.807 10 0.21 thujones, artemisia ketone
immortelle 0.781 12 0.14 italidiones

lychee reached 12 positives but finished at 0.693 β€” just under the bar. It measured 0.831 in
an intermediate run, so it belongs in the marginal cluster described below rather than the win
column. tagetes stayed at 7 positives and never trained.

Deliberately not attempted: cucumber, watermelon, boronia. Their chemistry is the same C9 nonadienal/nonadienol set melon already owns and the ionones violet owns β€” entangled classes, which is the trap that cost blackberry 0.10 AUROC. Adding them would likely damage heads that already work.

quince is worth staring at

AUROC 0.955 with 0.02 precision. Near-perfect ranking; right one time in fifty when it fires. It's now the sharpest single example in ACCURACY.md of why AUROC alone is not a quality measure β€” and it replaces a caveat there that had gone stale.

The count sweep

Verifying the README turned up that we'd been publishing 190 heads when the app served 189. The figure predated blackberry dropping and had propagated into the README badge, the CHANGELOG, ACCURACY.md, the v0.2.0 release notes and code comments. Now 195 everywhere, checked against the manifests rather than carried forward.

ACCURACY.md's tables were stale too β€” precision distribution read 25/9/60/58 against a live 19/15/74/58, and the named "never wrong" heads were the wrong sixteen. Both regenerated from the manifest.

On the roster number β€” now documented

A cluster of heads sits at AUROC 0.69–0.71 on 11–15 positives, where 5-fold CV can't resolve better than ~Β±0.02. blackberry measured 0.696 β†’ 0.707 β†’ 0.687 β†’ 0.720 across four consecutive rebuilds with its positive count unchanged at 13. The folds moved, not the head.

A head crossing the bar only means something if n_pos moved with it β€” which is exactly what separates that from chamomile: positives 11 β†’ 15, AUROC 0.691 β†’ 0.741, and it now makes confident calls at 1.00 precision.

MIN_AUROC stays at 0.70. Lowering it to 0.69 would hand back the marginal heads instantly and make the roster whatever we wanted it to be.

Verification

  • ruff clean; suite 43 passed
  • rebuilt: master_enrichment 8,869 (all named), profile_index 8,850 Γ— 183, flavor_map
  • audit: 154/172 generalise, 17 precision-limited, 1 memorising (turmeric)
  • needs sudo systemctl restart flavormancer β€” every model and all three artifacts changed

…#262)

Chasing `blackberry` had produced nothing across three rebuilds, so this asks the better question
instead: which descriptors DESERVE a head that do not have one? Ten sat below the ten-positive
floor. Seven had genuinely distinctive character chemistry and were given it.

  aroma heads   166 -> 172        total heads   189 -> 195

  angelica    AUROC 0.956  precision 0.67   CONFIDENT β€” macrocyclic lactones
  quince      AUROC 0.955  precision 0.02   indicative β€” marmelo lactone / oxathiane
  galbanum    AUROC 0.922  precision 0.14   indicative β€” galbanum pyrazine, undecatriene
  wormwood    AUROC 0.862  precision 0.23   indicative β€” thujones, artemisia ketone
  lychee      AUROC 0.831  precision 0.09   indicative β€” rose oxide
  immortelle  AUROC 0.781  precision 0.14   indicative β€” italidiones

Deliberately NOT attempted: cucumber, watermelon and boronia. Their chemistry is the same C9
nonadienal/nonadienol set `melon` already owns and the ionones `violet` owns β€” entangled classes,
which is the trap that cost blackberry 0.10 AUROC. Adding them would likely damage heads that work.

`quince` is worth staring at: AUROC 0.955 with 0.02 precision. Near-perfect ranking, right one time
in fifty when it fires. It is now the sharpest single example in ACCURACY.md of why AUROC alone is
not a quality measure, and it replaces a caveat there that had gone stale.

THE COUNT SWEEP. While verifying the README I found we had been publishing 190 heads when the app
served 189 β€” the figure predated blackberry dropping and had propagated into the README badge, the
CHANGELOG, ACCURACY.md, the v0.2.0 release notes and code comments. That is now 195 everywhere and
checked against the manifests rather than carried forward. The ACCURACY.md tables were stale too:
the precision distribution read 25/9/60/58 against a live 19/15/74/58, and the named
"never wrong" heads were the wrong sixteen. Both regenerated.

ON THE ROSTER NUMBER, now documented in ACCURACY.md. A cluster of heads sits at AUROC 0.69-0.71 on
11-15 positives, where 5-fold CV cannot resolve better than about +/-0.02. `blackberry` measured
0.696, 0.707, 0.687 and 0.720 across four consecutive rebuilds WITH ITS POSITIVE COUNT UNCHANGED
AT 13 β€” the folds moved, not the head. A head crossing the bar only means something if n_pos moved
with it, which is exactly what separates that from `chamomile`: 11 -> 15 positives, 0.691 -> 0.741,
and it now makes confident calls at 1.00 precision.

MIN_AUROC stays at 0.70. Lowering it to 0.69 would hand back the marginal heads instantly and make
the roster whatever we wanted it to be.

Rebuilt: master_enrichment 8,869 (all named), profile_index 8,850 x 183, flavor_map.
Signed-off-by: Austin L. <86896075+rvnminers-A-and-N@users.noreply.github.com>
@rvnminers-A-and-N rvnminers-A-and-N added area:aroma OpenPOM aroma model + sidecar area:data Datasets, sources, column mapping documentation Improvements or additions to documentation labels Jul 30, 2026
@rvnminers-A-and-N
rvnminers-A-and-N merged commit 1eacf5a into main Jul 30, 2026
4 checks passed
@rvnminers-A-and-N
rvnminers-A-and-N deleted the data/seven-new-heads-and-count-sweep branch July 30, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:aroma OpenPOM aroma model + sidecar area:data Datasets, sources, column mapping documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant