ibl_bwb_eval.scoring.aggregation#

Score aggregation and ranking across all suites.

Turns the per-seed raw scores produced by ibl_bwb_eval.scoring.{ts1,ts2,ts3}.score_dir into benchmark-style rankings, in two steps:

  • aggregate() clips designated metrics (e.g. R^2/D^2/bps, which are unbounded below and null-relative: negative just means worse than the null model) at a floor before averaging over seeds, then groups by (label, task, recording_id), the same grouping summarize() uses in each suite, just with the clip applied first.

  • rank() takes that per-recording, per-task summary and produces anchored, significance-based competition ranks (Welch’s t-test step down sorted means, ties when not significantly different), averaged over recording_id within each task.

Usage:

python -m ibl_bwb_eval.scoring.aggregation –pred_dir predictions/ –gt_dir ground_truth/

from_ts3 first, since TS3’s raw keys carry no session and the other two suites’ already match what aggregate expects.

from_ts3

Inject task into ts3_scoring.score_dir's (label, seed) keys.

aggregate

Clip designated metrics at clip_min per seed, then aggregate over seeds.

rank

Competition ranking, averaged over recording_id within each task.