import json import numpy as np r=json.load(open('results.json')) rows=r['budget_sweep'] for rate in sorted(set(x['rate'] for x in rows)): q=sorted([x for x in rows if x['rate']==rate],key=lambda x:x['freq']) sl=np.polyfit(np.log([x['v2'] for x in q[:3]]),np.log([x['epsilon'] for x in q[:3]]),1)[0] print('rate',rate,'slow epsilon-v2 slope',sl) for freq in sorted(set(x['freq'] for x in rows)): q=[x for x in rows if x['freq']==freq] sl=np.polyfit(np.log([x['sigma'] for x in q]),np.log([x['epsilon'] for x in q]),1)[0] print('freq',freq,'epsilon-sigma slope',sl) for f in [0.03,0.1,0.3]: q=sorted([x for x in rows if x['freq']==f],key=lambda x:x['rate']) chosen=next((x for x in q if x['budget_ratio']>=.5),q[-1]) base=[x for x in q if x['rate']==1][0] print('controller',f,'selected_rate',chosen['rate'],'baseline_mse',base['epsilon'],'controller_mse',chosen['epsilon']) print('ratio_summary',min(x['budget_ratio'] for x in rows),np.median([x['budget_ratio'] for x in rows]),max(x['budget_ratio'] for x in rows))