back
This commit is contained in:
63
example/summary_metrics.py
Normal file
63
example/summary_metrics.py
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Print average metrics from eval.json and compare with previous run."""
|
||||
|
||||
import json
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def mean(values):
|
||||
return sum(values) / len(values) if values else None
|
||||
|
||||
|
||||
def parse_last_row(history_path: Path):
|
||||
if not history_path.exists():
|
||||
return None
|
||||
rows = history_path.read_text(encoding="utf-8").strip().splitlines()
|
||||
if len(rows) < 2:
|
||||
return None
|
||||
last = rows[-1].split(",")
|
||||
if len(last) < 4:
|
||||
return None
|
||||
return {
|
||||
"avg_ks": float(last[1]),
|
||||
"avg_jsd": float(last[2]),
|
||||
"avg_lag1_diff": float(last[3]),
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
base_dir = Path(__file__).resolve().parent
|
||||
eval_path = base_dir / "results" / "eval.json"
|
||||
if not eval_path.exists():
|
||||
raise SystemExit(f"missing eval.json: {eval_path}")
|
||||
|
||||
obj = json.loads(eval_path.read_text(encoding="utf-8"))
|
||||
ks = list(obj.get("continuous_ks", {}).values())
|
||||
jsd = list(obj.get("discrete_jsd", {}).values())
|
||||
lag = list(obj.get("continuous_lag1_diff", {}).values())
|
||||
|
||||
avg_ks = mean(ks)
|
||||
avg_jsd = mean(jsd)
|
||||
avg_lag1 = mean(lag)
|
||||
|
||||
history_path = base_dir / "results" / "metrics_history.csv"
|
||||
prev = parse_last_row(history_path)
|
||||
|
||||
if not history_path.exists():
|
||||
history_path.write_text("timestamp,avg_ks,avg_jsd,avg_lag1_diff\n", encoding="utf-8")
|
||||
with history_path.open("a", encoding="utf-8") as f:
|
||||
f.write(f"{datetime.utcnow().isoformat()},{avg_ks},{avg_jsd},{avg_lag1}\n")
|
||||
|
||||
print("avg_ks", avg_ks)
|
||||
print("avg_jsd", avg_jsd)
|
||||
print("avg_lag1_diff", avg_lag1)
|
||||
|
||||
if prev is not None:
|
||||
print("delta_avg_ks", avg_ks - prev["avg_ks"])
|
||||
print("delta_avg_jsd", avg_jsd - prev["avg_jsd"])
|
||||
print("delta_avg_lag1_diff", avg_lag1 - prev["avg_lag1_diff"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user