Revision 3095c56c2b34103003b96a886725ffde90c84b1f authored by Jasper Schulz on 10 October 2019, 12:25:42 UTC, committed by GitHub on 10 October 2019, 12:25:42 UTC
1 parent 93ebd61
show_results.py
import pandas as pd
import json
from pathlib import Path
import os
from generate_evaluations import metrics_persisted
dir_path = Path(os.path.dirname(os.path.realpath(__file__)))
def collect_results():
evals = []
for evaluation_file in dir_path.glob("*/*.json"):
with open(evaluation_file, "r") as f:
evals.append(json.load(f))
return pd.DataFrame(evals)
def to_markdown(df: pd.DataFrame, float_format="%.3f") -> str:
# adapted from:
# https://stackoverflow.com/questions/33181846/programmatically-convert-pandas-dataframe-to-markdown-table
return os.linesep.join(
[
"|".join(df.columns),
"|".join(4 * "-" for _ in df.columns),
df.to_csv(
sep="|", index=False, header=False, float_format=float_format
),
]
).replace("|", " | ")
results_df = collect_results()
# copy-paste the results in `evaluations/README.md`
for metric in metrics_persisted:
print(f"## {metric}\n")
pivot_df = results_df.pivot_table(
index="estimator", columns="dataset", values=metric
)
print(to_markdown(pivot_df.reset_index(level=0)))
Computing file changes ...