def aggregate(filepath): f = open(filepath, 'rb') all_results = pickle.load(f) f.close() n = len(all_results) d = len(all_results[0]['lnr_costs']) var = np.zeros((n, d - 1)) opt_var = np.zeros((n, d - 1)) lamb = np.zeros((n, d - 1)) params = [] title = None for t, result in enumerate(all_results): params.append(result['param']) title = result['title'] var[t, :] = result['variations'] opt_var[t, :] = result['opt_variations'] lamb[t, :] = result['lambdas'] var_mean, var_std = statistics.mean_sem(var.T) opt_var_mean, opt_var_std = statistics.mean_sem(opt_var.T) lamb_max = np.max(lamb, axis=1) lamb_mean, lamb_std = statistics.mean_sem(lamb.T) results = { 'var': [var_mean, var_std], 'opt_var': [opt_var_mean, opt_var_std], 'lamb': [lamb_max, lamb_mean, lamb_std] } return params, results
def aggregate_save(direc, prefix, all_results): n = len(all_results) d = len(all_results[0]['lnr_costs']) var = np.zeros((n, d - 1)) opt_var = np.zeros((n, d - 1)) lamb = np.zeros((n, d - 1)) params = [] title = None for t, result in enumerate(all_results): params.append(result['param']) title = result['title'] var[t, :] = result['variations'] opt_var[t, :] = result['opt_variations'] lamb[t, :] = result['lambdas'] var_mean, var_std = statistics.mean_sem(var.T) opt_var_mean, opt_var_std = statistics.mean_sem(opt_var.T) lamb_max = np.max(lamb, axis=1) lamb_mean, lamb_std = statistics.mean_sem(lamb.T) # Dynamic Regret plt.subplot(311) plt.title("Variations") plt.errorbar(params, var_mean, yerr=var_std, label='lnr variations') plt.errorbar(params, opt_var_mean, yerr=opt_var_std, label='opt variations') plt.xscale('log') plt.legend() plt.subplot(312) plt.title("Max Lambda Ratio") plt.xscale('log') plt.plot(params, lamb_max) plt.subplot(313) plt.title("Mean Lambda Ratio") plt.errorbar(params, lamb_mean, yerr=lamb_std) plt.xscale('log') plt.tight_layout() filepath = os.path.join(direc, prefix) + '_lambda.pdf' plt.savefig(filepath) plt.close() plt.cla() plt.clf()
def aggregate(self, all_results): n = len(all_results) d = self.iters lnr_costs = np.zeros((n, d)) opt_costs = np.zeros((n, d)) diff_costs = np.zeros((n, d)) lnr_batch_costs = np.zeros((n, d)) opt_batch_costs = np.zeros((n, d)) static_regret = np.zeros((n, d)) for t, result in enumerate(all_results): lnr_costs[t, :] = result['lnr_costs'] opt_costs[t, :] = result['opt_costs'] diff_costs[t, :] = result['lnr_costs'] - result['opt_costs'] lnr_batch_costs[t, :] = result['lnr_batch_costs'] opt_batch_costs[t, :] = result['opt_batch_costs'] static_regret[t, :] = result['static_regret'] lnr_mean, lnr_std = statistics.mean_sem(lnr_costs) opt_mean, opt_std = statistics.mean_sem(opt_costs) diff_mean, diff_std = statistics.mean_sem(diff_costs) lnr_batch_mean, lnr_batch_std = statistics.mean_sem(lnr_batch_costs) opt_batch_mean, opt_batch_std = statistics.mean_sem(opt_batch_costs) static_regret_mean, static_regret_sem = statistics.mean_sem( static_regret) x_axis = np.arange(len(lnr_mean)) # Dynamic Regret plt.subplot(211) plt.title("Actual loss") plt.errorbar(x_axis, lnr_mean, yerr=lnr_std, label='lnr costs') plt.errorbar(x_axis, opt_mean, yerr=opt_std, label='opt costs') plt.legend() plt.subplot(212) plt.title("Difference") plt.errorbar(x_axis, diff_mean, yerr=diff_std) plt.tight_layout() filepath = os.path.join(self.dir, self.prefix) + '.pdf' plt.savefig(filepath) plt.close() plt.cla() plt.clf() # Static Regret plt.subplot(211) plt.title("Batch loss") plt.errorbar(x_axis, lnr_batch_mean, yerr=lnr_std, label='lnr costs') plt.errorbar(x_axis, opt_batch_mean, yerr=opt_std, label='opt costs') plt.legend() plt.subplot(212) plt.title("Static Regret") plt.errorbar(x_axis, static_regret_mean, yerr=diff_std) plt.tight_layout() filepath = os.path.join(self.dir, self.prefix) + '_batch.pdf' plt.savefig(filepath) plt.close() plt.cla() plt.clf()
def aggregate(filepath): f = open(filepath, 'rb') all_results = pickle.load(f) f.close() n = len(all_results) d = len(all_results[0]['lnr_costs']) lnr_costs = np.zeros((n, d)) opt_costs = np.zeros((n, d)) diff_costs = np.zeros((n, d)) static_regret = np.zeros((n, d)) rewards = np.zeros((n, d)) sup_rewards = np.zeros((n, d)) variations = np.zeros((n, d - 1)) opt_variations = np.zeros((n, d - 1)) lambdas = np.zeros((n, d - 1)) betas = np.zeros((n, d - 1)) for t, result in enumerate(all_results): lnr_costs[t, :] = result['lnr_costs'] opt_costs[t, :] = result['opt_costs'] # lnr_costs[t, :] = np.cumsum(result['lnr_costs']) / (np.arange(d) + 1) # opt_costs[t, :] = np.cumsum(result['opt_costs']) / (np.arange(d) + 1) rewards[t, :] = result['rewards'] sup_rewards[t, :] = result['sup_rewards'] variations[t, :] = result['variations'] opt_variations[t, :] = result['opt_variations'] lambdas[t, :] = result['lambdas'] betas[t, :] = result['betas'] static_regret[t, :] = result['static_regret'] diff_costs = lnr_costs - opt_costs lnr_mean, lnr_std = statistics.mean_sem(lnr_costs) opt_mean, opt_std = statistics.mean_sem(opt_costs) diff_mean, diff_std = statistics.mean_sem(diff_costs) sr_mean, sr_std = statistics.mean_sem(static_regret) var_mean, var_std = statistics.mean_sem(variations) opt_var_mean, opt_var_std = statistics.mean_sem(opt_variations) lam_mean, lam_std = statistics.mean_sem(lambdas) beta_mean, beta_std = statistics.mean_sem(betas) reward_mean, reward_std = statistics.mean_sem(rewards) sup_reward_mean, sup_reward_std = statistics.mean_sem(sup_rewards) x_axis = np.arange(len(lnr_mean)) results = { "dyn_regret": (diff_mean, diff_std), "static_regret": (sr_mean, sr_std), "reward": (reward_mean, reward_std), "sup_reward": (sup_reward_mean, sup_reward_std), "var": (var_mean, var_std), "opt_var": (opt_var_mean, opt_var_std), "lam": (lam_mean, lam_std), 'beta': (beta_mean, beta_std) } return results