QuaPy/BayesianKDEy/generate_results.py

32 lines
1.0 KiB
Python

import pickle
from collections import defaultdict
import pandas as pd
from glob import glob
from pathlib import Path
for setup in ['binary', 'multiclass']:
path = f'./results/{setup}/*.pkl'
table = defaultdict(list)
for file in glob(path):
file = Path(file)
dataset, method = file.name.replace('.pkl', '').split('__')
report = pickle.load(open(file, 'rb'))
results = report['results']
n_samples = len(results['ae'])
table['method'].extend([method] * n_samples)
table['dataset'].extend([dataset] * n_samples)
table['ae'].extend(results['ae'])
table['coverage'].extend(results['coverage'])
table['amplitude'].extend(results['amplitude'])
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 1000)
pd.set_option('display.max_rows', None)
df = pd.DataFrame(table)
pv = pd.pivot_table(df, index='dataset', columns='method', values=['ae', 'coverage', 'amplitude'])
print(f'{setup=}')
print(pv)
print()