Esempio n. 1
0
def save_perf_over_alpha(alg, exp, auc_or_final, sp, rerun=False):
    fp_list, sp_list, tp_list, fop_list, _ = make_params(alg, exp)
    res_path = make_res_path(alg, exp)
    mean_over_alpha, stderr_over_alpha = np.zeros(len(fp_list)), np.zeros(
        len(fp_list))
    best_fp, best_tp, best_fop = load_best_rerun_params(
        alg, exp, auc_or_final, sp) if rerun else (0, 0, 0)
    for tp in tp_list:
        for fop in fop_list:
            current_params = make_current_params(alg, sp, tp, fop)
            for i, fp in enumerate(fp_list):
                current_params['alpha'] = fp
                load_name = os.path.join(
                    res_path, create_name_for_save_load(current_params))
                perf = np.load(f"{load_name}_mean_stderr_{auc_or_final}.npy")
                if rerun and fp == best_fp and tp == best_tp and fop == best_fop:
                    perf = np.load(
                        f"{load_name}_mean_stderr_{auc_or_final}_rerun.npy")

                mean_over_alpha[i], stderr_over_alpha[i] = perf[0], perf[1]

            save_name = os.path.join(
                res_path,
                create_name_for_save_load(current_params,
                                          excluded_params=['alpha']))
            postfix = ''
            if rerun and tp == best_tp and fop == best_fop:
                postfix = '_rerun'
            np.save(f"{save_name}_mean_{auc_or_final}_over_alpha{postfix}",
                    mean_over_alpha)
            np.save(f"{save_name}_stderr_{auc_or_final}_over_alpha{postfix}",
                    stderr_over_alpha)
Esempio n. 2
0
def find_best_perf(alg, exp, auc_or_final, sp):
    exp_attrs = EXP_ATTRS[exp](exp)
    fp_list, _, tp_list, fop_list, res_path = make_params(alg, exp)
    best_params = {}
    best_perf, best_fp, best_sp, best_tp, best_fop = np.inf, np.inf, np.inf, np.inf, np.inf
    for fop in fop_list:
        for tp in tp_list:
            current_params = make_current_params(alg, sp, tp, fop)
            load_name = os.path.join(
                res_path,
                create_name_for_save_load(current_params,
                                          excluded_params=['alpha']) +
                f'_mean_{auc_or_final}_over_alpha.npy')
            current_perf = load_and_replace_large_nan_inf(
                load_name,
                large=exp_attrs.learning_starting_point,
                replace_with=exp_attrs.over_limit_replacement)
            min_perf = min(current_perf)
            if min_perf < best_perf:
                best_perf = min_perf
                best_perf_idx = int(np.nanargmin(current_perf))
                best_fp = fp_list[best_perf_idx]
                best_params = current_params
                best_params['alpha'] = best_fp
    return best_params
Esempio n. 3
0
def load_all_performances(alg, exp, auc_or_final, sp, exp_attrs):
    fp_list, sp_list, tp_list, fop_list, res_path = make_params(alg, exp)
    all_performance = np.zeros((len(fp_list), len(tp_list), len(fop_list)))
    for i, fop in enumerate(fop_list):
        for j, tp in enumerate(tp_list):
            current_params = make_current_params(alg, sp, tp, fop)
            load_file_name = os.path.join(
                res_path,
                create_name_for_save_load(current_params,
                                          excluded_params=['alpha']) +
                f'_mean_{auc_or_final}_over_alpha.npy')

            if RERUN:
                load_file_name_rerun = load_file_name.replace(
                    '.npy', f"{RERUN_POSTFIX}.npy")
                if os.path.exists(load_file_name):
                    load_file_name = load_file_name_rerun

            performance = np.load(load_file_name)
            performance = replace_large_nan_inf(
                performance,
                large=exp_attrs.learning_starting_point,
                replace_with=exp_attrs.over_limit_waterfall)
            all_performance[:, j, i] = performance
    return all_performance
def load_data(alg, exp, best_params, postfix=''):
    res_path = os.path.join(os.getcwd(), 'Results', exp, alg)
    generic_name = create_name_for_save_load(best_params)
    load_file_name = os.path.join(res_path, f"{generic_name}_RMSVE_mean_over_runs{postfix}.npy")
    mean_lc = np.load(load_file_name)
    load_file_name = os.path.join(res_path, f"{generic_name}_RMSVE_stderr_over_runs{postfix}.npy")
    stderr_lc = np.load(load_file_name)
    return mean_lc, stderr_lc
Esempio n. 5
0
def get_ls_rmsve(alg, exp, sp):
    res_path = os.path.join(os.getcwd(), 'Results', exp, alg)
    params = {'alpha': 0.01, 'lmbda': sp}
    if alg == 'LSETD':
        params['beta'] = 0.9
    generic_name = create_name_for_save_load(params)
    load_file_name = os.path.join(res_path,
                                  f"{generic_name}_RMSVE_mean_over_runs.npy")
    return np.load(load_file_name)
Esempio n. 6
0
def load_performance_over_alpha(alg, exp, params, auc_or_final, exp_attrs):
    res_path = make_res_path(alg, exp)
    load_file_name = os.path.join(
        res_path,
        create_name_for_save_load(params, excluded_params=['alpha']) +
        f"_mean_{auc_or_final}_over_alpha.npy")
    performance_over_alpha = np.load(load_file_name)
    performance_over_alpha = replace_large_nan_inf(
        performance_over_alpha,
        large=exp_attrs.learning_starting_point,
        replace_with=exp_attrs.over_limit_replacement)
    stderr_load_file_name = os.path.join(
        res_path,
        create_name_for_save_load(params, excluded_params=['alpha']) +
        f'_stderr_{auc_or_final}_over_alpha.npy')
    std_err_of_best_perf_over_alpha = np.load(stderr_load_file_name)
    std_err_of_best_perf_over_alpha = replace_large_nan_inf(
        std_err_of_best_perf_over_alpha,
        large=exp_attrs.learning_starting_point,
        replace_with=0.0)
    return performance_over_alpha, std_err_of_best_perf_over_alpha
Esempio n. 7
0
def load_data(alg, exp, best_params, postfix=''):
    if exp in [
            'FirstChain', 'FirstFourRoom', '1HVFourRoom', 'NewChain',
            'NewFourRoom', 'NewHVFourRoom'
    ]:
        evalu = 'RMSVE'
    else:
        evalu = 'steps'
    res_path = os.path.join(os.getcwd(), 'Results', exp, alg)
    generic_name = create_name_for_save_load(best_params)
    load_file_name = os.path.join(
        res_path, f"{generic_name}_{evalu}_mean_over_runs{postfix}.npy")
    mean_lc = np.load(load_file_name)
    print(mean_lc)
    load_file_name = os.path.join(
        res_path, f"{generic_name}_{evalu}_stderr_over_runs{postfix}.npy")
    stderr_lc = np.load(load_file_name)
    return mean_lc, stderr_lc
Esempio n. 8
0
def rename_best_old_result(res_path, params_dict, file_name):
    name_to_save = create_name_for_save_load(param_dict=params_dict)
    path_and_name = os.path.join(res_path, name_to_save)
    file_name = path_and_name + file_name
    os.rename(file_name + '.npy', file_name + '_old.npy')