algorise's picture
download
raw
4.45 kB
"""Dump every number the logbook pages quote, so no value is ever typed by hand."""
import json
import os
ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
V2 = os.path.join(ROOT, "results", "v2")
a = json.load(open(os.path.join(V2, "analysis_v2.json")))
DS = ["moons-hard", "rings", "gauss-xor", "digits-3v8"]
print("### INTEGRITY")
tot = 0.0
for ds in DS:
i = a["integrity"][ds]
tot += i["wall_time_sec"]
print(f"{ds}: n_tr={i['n_train']} n_te={i['n_test']} d={i['d']} "
f"seeds={i['n_seeds']} uniq_hash={i['unique_data_hashes']} "
f"uniq_c1hinge={i['unique_cycle1_hinge']} wall={i['wall_time_sec']:.1f}s")
print(" acc_std:", {k: round(v, 5) for k, v in i["acc_std_by_method"].items()})
print(f"TOTAL WALL = {tot:.1f}s = {tot/60:.1f} min")
print("\n### CLAIM 1")
c1 = a["claims"]["claim1"]
print("verdict", c1["verdict"], c1["n_pass"], "/", c1["n_checks"])
for ds in DS:
d = c1["per_dataset"][ds]
A, B, C = d["P1a"], d["P1b"], d["P1c"]
print(f"\n{ds}")
print(f" P1a pass={A['pass']} max_head_drift_A={A['max_head_drift_in_phaseA']:.3e} "
f"max_feat_drift_B={A['max_feat_drift_in_phaseB']:.3e} "
f"min_feat_move_A={A['min_feat_move_in_phaseA']:.4f} "
f"min_head_move_B={A['min_head_move_in_phaseB']:.4f} "
f"min_disp_C={A['min_mean_disp_phaseC']:.4f} n_obs={A['n_cycle_observations']}")
print(f" P1b pass={B['pass']} ratio={B['ratio_mean']:.4f} "
f"[{B['ratio_lo']:.4f},{B['ratio_hi']:.4f}] "
f"final_hinge={B['final_hinge_mean']:.6f}+/-{B['final_hinge_ci_hw']:.6f}")
print(f" P1c pass={C['pass']} slope={C['slope']:.4f} R2={C['r2']:.4f} "
f"degenerate={C['degenerate_exact_zero_hinge']} "
f"zeros={C['n_exact_zero_observations']}/{C['n_observations']} "
f"first_zero_cycle={C['first_zero_cycle']}")
print(f" curve={[round(v,5) for v in C['mean_curve']]}")
print("\n### CLAIM 2")
c2 = a["claims"]["claim2"]
print("verdict", c2["verdict"], c2["n_pass"], "/", c2["n_checks"])
for ds in DS:
d = c2["per_dataset"][ds]
A, B, C, D = d["P2a"], d["P2b"], d["P2c"], d["P2d"]
ph = A["posthoc_cos_vs_random_paired"]
print(f"\n{ds}")
print(f" P2a pass={A['pass']} cos={A['mean']:.4f} [{A['lo']:.4f},{A['hi']:.4f}] "
f"| random-ctrl cos={A['control_random_push_cos_mean']:.4f}"
f"+/-{A['control_random_push_cos_ci_hw']:.4f}")
print(f" posthoc paired cos(normal)-cos(random)={ph['mean']:+.4f} "
f"[{ph['lo']:+.4f},{ph['hi']:+.4f}] p_t={ph['p_ttest']:.2e} "
f"p_w={ph['p_wilcoxon']:.2e}")
print(f" P2b pass={B['pass']} d_active_margin={B['mean']:+.4f} "
f"[{B['lo']:+.4f},{B['hi']:+.4f}]")
print(f" P2c pass={C['pass']} growth={C['growth_mean']:+.4f} "
f"[{C['growth_lo']:+.4f},{C['growth_hi']:+.4f}] "
f"viol_down_frac={C['frac_seeds_violators_down']:.2f}")
print(f" P2d pass={D['pass']} dNormMargin(ddsvm-rand)={D['mean']:+.5f} "
f"[{D['lo']:+.5f},{D['hi']:+.5f}] p_t={D['p_ttest']:.4f}")
print(f" active_frac c1={d['active_frac_curve'][0]*100:.2f}% "
f"c15={d['active_frac_curve'][-1]*100:.2f}% | "
f"violators c1={d['violators_curve'][0]:.1f} c15={d['violators_curve'][-1]:.1f}")
print(f" margin pre c1={d['margin_pre_curve'][0]:.4f} -> "
f"post c15={d['margin_post_curve'][-1]:.4f}")
print("\n### CLAIM 3")
c3 = a["claims"]["claim3"]
print("verdict", c3["verdict"], "both:", c3["n_datasets_both_baselines_beaten"],
"any:", c3["n_datasets_any_baseline_beaten"],
"regress:", c3["n_datasets_regression"])
for ds in DS:
acc = a["datasets"][ds]["acc"]
print(f"\n{ds}")
for m, v in acc.items():
print(f" {m:12s} {v['mean']*100:6.2f} +/- {v['ci_hw']*100:.2f}")
for k, v in a["datasets"][ds]["paired"].items():
print(f" {k:22s} {v['mean']*100:+7.3f}pp "
f"[{v['lo']*100:+.3f},{v['hi']*100:+.3f}] "
f"p_t={v['p_ttest']:.4f} p_w={v['p_wilcoxon']:.4f} "
f"CI_excl0={v['ci_excludes_zero']}")
mp = a["datasets"][ds]["margin_paired"]
nm = a["datasets"][ds]["test_norm_margin"]
print(" test norm margin:", {k: round(v["mean"], 5) for k, v in nm.items()})
for k, v in mp.items():
print(f" margin {k:22s} {v['mean']:+.5f} [{v['lo']:+.5f},{v['hi']:+.5f}] "
f"p_t={v['p_ttest']:.4f}")

Xet Storage Details

Size:
4.45 kB
·
Xet hash:
9deda557dc0f8b058d4fbc020d408681e54c8f008dcd8f41026ab613b21298b9

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.