diff options
Diffstat (limited to 'diag/aggregate.py')
| -rw-r--r-- | diag/aggregate.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/diag/aggregate.py b/diag/aggregate.py new file mode 100644 index 0000000..b0f737a --- /dev/null +++ b/diag/aggregate.py @@ -0,0 +1,54 @@ +"""Aggregate multi-seed coloring results -> mean+/-std per (grad_mode, pe, contract).""" +import glob, json +import numpy as np +from collections import defaultdict + +R = '/home/yurenh2/rrog/runs' + + +def ms(xs): + a = np.array([x for x in xs if x is not None], dtype=float) + return f"{a.mean():.3f}±{a.std():.3f} (n={len(a)})" if len(a) else "—" + + +def load(pat): + out = [] + for f in glob.glob(pat): + try: + out.append(json.load(open(f))) + except Exception: + pass + return out + + +def key(d): + return (d.get('conv', 'gin'), d.get('pe'), d.get('grad_mode'), 'ctr' if d.get('contract') else '-') + + +solve, le, ml = defaultdict(list), defaultdict(list), defaultdict(list) +pk, ls, au, det = defaultdict(list), defaultdict(list), defaultdict(list), defaultdict(list) + +for d in load(f"{R}/color_*.json"): + if 'solve_rate' in d and d.get('pe') is not None: + solve[key(d)].append(d['solve_rate']) +for d in load(f"{R}/le_color_*.json"): + le[key(d)].append(d.get('auroc')) + ml[key(d)].append(d.get('mean_lam')) +for d in load(f"{R}/ptrm_color_*.json"): + k = key(d); det[k].append(d.get('det')) + s2 = d.get('sigmas', {}).get('0.2') + if s2: + pk[k].append(s2.get('passk')); ls[k].append(s2.get('lamsel')); au[k].append(s2.get('auroc')) + +print("=== best solve_rate (deterministic, EMA) ===") +for k in sorted(solve, key=str): + print(f" {k}: {ms(solve[k])}") +print("=== LE AUROC(fail|lambda1) ===") +for k in sorted(le, key=str): + print(f" {k}: {ms(le[k])}") +print("=== LE mean_lambda1 (forced-contraction dose) ===") +for k in sorted(ml, key=str): + print(f" {k}: {ms(ml[k])}") +print("=== PTRM sigma=0.2 ===") +for k in sorted(pk, key=str): + print(f" {k}: det {ms(det[k])} | pass@K {ms(pk[k])} | lambda-sel {ms(ls[k])} | AUROC {ms(au[k])}") |
