예제 #1
0
def load_median_experiments(ini_file_path,date_exp):
    Config.read(ini_file_path)
    Config.sections()

    models = dict(Config.items('inference'))
    number_data_points = ConfigSectionMap("test-data")['data-points'].split(',')
    list_noise_variance = ConfigSectionMap("test-data")['observation_noise'].split(',')
    repeat =  ConfigSectionMap("others")['repeat']
    number_test_points =  ConfigSectionMap("others")['number-test-points']
    test_problems =  ConfigSectionMap("test-data")['test-problems'].split(',')
    total_steps_outer = ConfigSectionMap("MCMC")["total-steps-outer"]


    directory="results/"+date_exp
    residual_list = []

    df_list= []
    index_it=0
    for key in models:
        all_inf_string = ConfigSectionMap("inference")[key]
        list_of_infer= all_inf_string.split(";")
        for infer in list_of_infer:
            for test_problem in test_problems:
                for noise in list_noise_variance:
                    for n in number_data_points:
                        df = pd.DataFrame()
                        print(index_it)
                        index_it+=1
                        for index in range(int(repeat)):
                            experiment_name = key+'_'+infer+'_'+total_steps_outer+'_'\
                                               + test_problem +'_'+noise+'_'+n+'_'+number_test_points+'_'+str(index)
                            output_file_name = directory+"/exp_"+ experiment_name
                            try:
                                df = pd.read_pickle(output_file_name)

                                residual_list.append(np.abs(df['residuals'].values))

                            except ValueError:
                                ("could not open "+output_file_name)
                        res_matrix = np.matrix(residual_list)
                        residual_list = []
                        df['median-residual']=pd.Series([np.median(res_matrix[:,i].tolist()) for i in df.index ])
                        df['model'] = pd.Series([key for _ in range(len(df.index))], index=df.index)
                        df['test_problem'] = pd.Series([test_problem for _ in range(len(df.index))], index=df.index)
                        df['noise'] = pd.Series([noise for _ in range(len(df.index))], index=df.index)
                        df['n'] = pd.Series([n for _ in range(len(df.index))], index=df.index)
                        df['repeat'] = pd.Series([index for _ in range(len(df.index))], index=df.index)
                        df_list.append(df)
    df_experiment=pd.concat(df_list)
    df_experiment.to_pickle("results/median_residual_"+date_exp)
    return  df_experiment
예제 #2
0
def load_experiments(ini_file_path,date_exp):
    Config.read(ini_file_path)
    Config.sections()

    models = dict(Config.items('inference'))
    number_data_points = ConfigSectionMap("test-data")['data-points'].split(',')
    list_noise_variance = ConfigSectionMap("test-data")['observation_noise'].split(',')
    repeat =  ConfigSectionMap("others")['repeat']
    number_test_points =  ConfigSectionMap("others")['number-test-points']
    test_problems =  ConfigSectionMap("test-data")['test-problems'].split(',')
    total_steps_outer = ConfigSectionMap("MCMC")["total-steps-outer"]

    condition=[]
    directory="results/"+date_exp
    un_averaged_frames=[]
    for index in range(int(repeat)):
        frames =[]
        for key in models:
            all_inf_string = ConfigSectionMap("inference")[key]
            list_of_infer= all_inf_string.split(";")
            for infer in list_of_infer:
                for test_problem in test_problems:
                    for noise in list_noise_variance:
                        for n in number_data_points:

                            experiment_name = key+'_'+infer+'_'+total_steps_outer+'_'\
                                               + test_problem +'_'+noise+'_'+n+'_'+number_test_points+'_'+str(index)
                            output_file_name = directory+"/exp_"+ experiment_name
                            try:
                                df = pd.read_pickle(output_file_name)
                                df['model'] = pd.Series([key for _ in range(len(df.index))], index=df.index)
                                df['test_problem'] = pd.Series([test_problem for _ in range(len(df.index))], index=df.index)
                                df['noise'] = pd.Series([noise for _ in range(len(df.index))], index=df.index)
                                df['n'] = pd.Series([n for _ in range(len(df.index))], index=df.index)
                                df['repeat'] = pd.Series([index for _ in range(len(df.index))], index=df.index)
                                #df['mcmcm-step-index'] = pd.Series([i for i in range(len(total_steps_outer))], index=df.index)
                                frames.append(df)
                            except ValueError:
                                ("could not open "+output_file_name)
        un_averaged_frames.append(pd.concat(frames))
    df_experiment = average_frames(un_averaged_frames)
    df_experiment.to_pickle("results/experiment_"+date_exp)
    return  df_experiment
예제 #3
0
            help="Do not use parallelism")
    parser.add_argument("--cores", type=int, default=60,
            help="Number of cores")
    parser.add_argument("-m", metavar="MESSAGE", type=str, default=" no message ", help="Message")

    ns = parser.parse_args()
    ini_file_path = ns.ini_file_path
    date_exp = ns.d
    run_locally = ns.local
    cores = ns.cores
    message = ns.m

    Config.read(ini_file_path)
    Config.sections()

    models = dict(Config.items('inference'))

    number_data_points = ConfigSectionMap("test-data")['data-points'].split(',')
    list_noise_variance = ConfigSectionMap("test-data")['observation_noise'].split(',')
    repeat =  ConfigSectionMap("others")['repeat']
    number_test_points =  ConfigSectionMap("others")['number-test-points']
    test_problems =  ConfigSectionMap("test-data")['test-problems'].split(',')
    total_steps_outer = ConfigSectionMap("MCMC")["total-steps-outer"]


    condition=[]
    for key in models:
        all_inf_string = ConfigSectionMap("inference")[key]
        list_of_infer= all_inf_string.split(";")
        for infer in list_of_infer:
            for test_problem in test_problems:
예제 #4
0
def get_last_n_residuals(ini_file_path,date_exp,n_last_residuals):
    Config.read(ini_file_path)
    Config.sections()

    models = dict(Config.items('inference'))
    number_data_points = ConfigSectionMap("test-data")['data-points'].split(',')
    list_noise_variance = ConfigSectionMap("test-data")['observation_noise'].split(',')
    repeat =  ConfigSectionMap("others")['repeat']
    number_test_points =  ConfigSectionMap("others")['number-test-points']
    test_problems =  ConfigSectionMap("test-data")['test-problems'].split(',')
    total_steps_outer = ConfigSectionMap("MCMC")["total-steps-outer"]

    condition=[]
    directory="results/"+date_exp
    un_averaged_frames=[]
    base_line = []
    residuals=[]
    model=[]
    problem=[]
    noise_level=[]
    n_training_data=[]
    for index in range(int(repeat)):
        for key in models:
            all_inf_string = ConfigSectionMap("inference")[key]
            list_of_infer= all_inf_string.split(";")
            for infer in list_of_infer:
                for test_problem in test_problems:
                    for noise in list_noise_variance:
                        for n in number_data_points:

                            experiment_name = key+'_'+infer+'_'+total_steps_outer+'_'\
                                               + test_problem +'_'+noise+'_'+n+'_'+number_test_points+'_'+str(index)
                            output_file_name = directory+"/exp_"+ experiment_name
                            try:
                                df_all = pd.read_pickle(output_file_name)
                                df=df_all.tail(n_last_residuals)

                                base_line.extend(df['base-line'].iloc[0])
                                #index=[]
                                for j in range(len(df.index)):
                                    residuals.extend(df['residuals'].iloc[j])

                                    model.extend([key for _ in range(int(number_test_points))])
                                    problem.extend([test_problem for _ in range(int(number_test_points))])
                                    noise_level.extend([noise for _ in range(int(number_test_points))])
                                    n_training_data.extend([n for _ in range(int(number_test_points))])
                                    #index.append([j for _ in range(int(number_test_points))])


                                    #residuals= np.concatenate(residuals,df['residuals'].iloc[j])


                                '''
                                df['model'] = pd.Series([key for _ in range(len(df.index))], index=df.index)
                                df['test_problem'] = pd.Series([test_problem for _ in range(len(df.index))], index=df.index)
                                df['noise'] = pd.Series([noise for _ in range(len(df.index))], index=df.index)
                                df['n'] = pd.Series([n for _ in range(len(df.index))], index=df.index)
                                df['repeat'] = pd.Series([index for _ in range(len(df.index))], index=df.index)
                                #df['mcmcm-step-index'] = pd.Series([i for i in range(len(total_steps_outer))], index=df.index)
                                '''
                            except ValueError:
                                ("could not open "+output_file_name)
    return pd.DataFrame({'residuals':residuals,'model':model,'test_problem':problem,'noise':noise_level,'n':n_training_data}),np.mean(base_line)