def _test_config_44(data_rnd_seed_values,
                    noise_values,
                    results_dir="results/synthetic_data"):
    """Testing configuration for the changing amount of noise experiment.
    
    Parameters
    ----------
    data_rnd_seed_values : list
        Values of data_rnd_seed for which to repeat the experiment.
    noise_values : list
        Values of the amount of noise for which to repeat the experiment.
    results_dir : str
        Directory in which to put the chaning_noise directory with the relevant
        experiment results.
    
    """
    # parameters of the synthetic Boolean MTL problem
    attributes = 12
    disjunct_degree = 6
    n = 50
    task_groups = 5
    tasks_per_group = 5
    noise = 0.0
    n_learning_sets = 10
    # parameters of the MTL problem tester
    rnd_seed = 51

    # dynamic parameters of the synthetic Boolean MTL problem

    for data_rnd_seed in data_rnd_seed_values:
        results_path_fmt = os.path.join(
            path_prefix, results_dir,
            "changing_noise/bool_func-a{}d{}n{}g{}tg{}"
            "nse{{}}rs{}nls{}-seed{}-complete_test".format(
                attributes, disjunct_degree, n, task_groups, tasks_per_group,
                data_rnd_seed, n_learning_sets, rnd_seed))
        if "run" in mode:
            for noise in noise_values:
                # prepare directories and loggers
                results_path = results_path_fmt.format(noise)
                if not os.path.exists(results_path):
                    os.makedirs(results_path)
                log_file = os.path.join(results_path, "run-{}.log".\
                            format(time.strftime("%Y%m%d_%H%M%S")))
                configure_logger(logger,
                                 console_level=logging.INFO,
                                 file_name=log_file)
                log_base_learner_info(logger, base_learners_bool)
                # generate boolean data with complete test sets
                funcs_pickle_path = os.path.join(results_path,
                                                 "boolean_funcs.pkl")
                tasks_data, tasks_complete_test_sets = \
                    synthetic_data.generate_boolean_data_with_complete_test_sets(
                        attributes, disjunct_degree, n, task_groups,
                        tasks_per_group, noise,
                        random_seed=data_rnd_seed,
                        n_learning_sets=n_learning_sets,
                        funcs_pickle_path=funcs_pickle_path)
                # test the generated MTL problem
                test_tasks(tasks_data,
                           results_path,
                           base_learners_bool,
                           measures_clas,
                           learners,
                           "pre-prepared_test",
                           rnd_seed=rnd_seed,
                           test=test,
                           unpickle=unpickle,
                           visualize=visualize,
                           preprepared_test_sets=tasks_complete_test_sets,
                           separate_figs=True,
                           cfg_logger=False)
        if "combine" in mode:
            combine_experiment_results(
                results_path_fmt,
                noise_values,
                (results_path_fmt.format(pprint_iter(noise_values)) +
                 "-{}-{{}}.pdf".format(error_measure)),
                n_learning_sets,
                error_measure=error_measure,
                title="Avg. results for tasks",
                xlabel="% of noise")
def _test_config_44(data_rnd_seed_values, noise_values,
                    results_dir="results/synthetic_data"):
    """Testing configuration for the changing amount of noise experiment.
    
    Parameters
    ----------
    data_rnd_seed_values : list
        Values of data_rnd_seed for which to repeat the experiment.
    noise_values : list
        Values of the amount of noise for which to repeat the experiment.
    results_dir : str
        Directory in which to put the chaning_noise directory with the relevant
        experiment results.
    
    """
    # parameters of the synthetic Boolean MTL problem
    attributes = 12
    disjunct_degree = 6
    n = 50
    task_groups = 5
    tasks_per_group = 5
    noise = 0.0
    n_learning_sets = 10
    # parameters of the MTL problem tester
    rnd_seed = 51
    
    # dynamic parameters of the synthetic Boolean MTL problem
    
    
    for data_rnd_seed in data_rnd_seed_values:
        results_path_fmt = os.path.join(path_prefix, results_dir,
            "changing_noise/bool_func-a{}d{}n{}g{}tg{}"
            "nse{{}}rs{}nls{}-seed{}-complete_test".format(attributes,
            disjunct_degree, n, task_groups, tasks_per_group,
            data_rnd_seed, n_learning_sets, rnd_seed))
        if "run" in mode:
            for noise in noise_values:
                # prepare directories and loggers
                results_path = results_path_fmt.format(noise)
                if not os.path.exists(results_path):
                    os.makedirs(results_path)
                log_file = os.path.join(results_path, "run-{}.log".\
                            format(time.strftime("%Y%m%d_%H%M%S")))
                configure_logger(logger, console_level=logging.INFO,
                                 file_name=log_file)
                log_base_learner_info(logger, base_learners_bool)
                # generate boolean data with complete test sets
                funcs_pickle_path = os.path.join(results_path,
                                                 "boolean_funcs.pkl")
                tasks_data, tasks_complete_test_sets = \
                    synthetic_data.generate_boolean_data_with_complete_test_sets(
                        attributes, disjunct_degree, n, task_groups,
                        tasks_per_group, noise,
                        random_seed=data_rnd_seed,
                        n_learning_sets=n_learning_sets,
                        funcs_pickle_path=funcs_pickle_path)
                # test the generated MTL problem
                test_tasks(tasks_data, results_path, base_learners_bool,
                           measures_clas, learners, "pre-prepared_test",
                           rnd_seed=rnd_seed, test=test,
                           unpickle=unpickle, visualize=visualize,
                           preprepared_test_sets=tasks_complete_test_sets,
                           separate_figs=True, cfg_logger=False)
        if "combine" in mode:
            combine_experiment_results(results_path_fmt,
                noise_values,
                (results_path_fmt.format(pprint_iter(noise_values)) +
                 "-{}-{{}}.pdf".format(error_measure)),
                n_learning_sets, error_measure=error_measure,
                title="Avg. results for tasks", xlabel="% of noise")
 # prepare directories and loggers
 results_path = (os.path.join(
     path_prefix, "results/synthetic_data/"
     "bool_func-a{}d{}n{}g{}tg{}nse{}rs{}nls{}-seed{}-complete_test"
     "".format(attributes, disjunct_degree, n, task_groups,
               tasks_per_group, noise, data_rnd_seed,
               n_learning_sets, rnd_seed)))
 if not os.path.exists(results_path):
     os.makedirs(results_path)
 log_file = os.path.join(
     results_path,
     "run-{}.log".format(time.strftime("%Y%m%d_%H%M%S")))
 configure_logger(logger,
                  console_level=logging.INFO,
                  file_name=log_file)
 log_base_learner_info(logger, base_learners_bool)
 # generate boolean data with complete test sets
 funcs_pickle_path = os.path.join(results_path, "boolean_funcs.pkl")
 tasks_data, tasks_complete_test_sets = \
     synthetic_data.generate_boolean_data_with_complete_test_sets(
         attributes, disjunct_degree, n, task_groups,
         tasks_per_group, noise, random_seed=data_rnd_seed,
         n_learning_sets=n_learning_sets,
         funcs_pickle_path=funcs_pickle_path)
 # test the generated MTL problem
 test_tasks(tasks_data,
            results_path,
            base_learners_bool,
            measures_clas,
            learners,
            "pre-prepared_test",
 n_learning_sets = 3
 # parameters of the MTL problem tester
 rnd_seed = 51
 # prepare directories and loggers
 results_path = (os.path.join(path_prefix, "results/synthetic_data/"
     "bool_func-a{}d{}n{}g{}tg{}nse{}rs{}nls{}-seed{}-complete_test"
     "".format(attributes, disjunct_degree, n, task_groups,
     tasks_per_group, noise, data_rnd_seed, n_learning_sets,
     rnd_seed)))
 if not os.path.exists(results_path):
     os.makedirs(results_path)
 log_file = os.path.join(results_path,
                 "run-{}.log".format(time.strftime("%Y%m%d_%H%M%S")))
 configure_logger(logger, console_level=logging.INFO,
                  file_name=log_file)
 log_base_learner_info(logger, base_learners_bool)
 # generate boolean data with complete test sets
 funcs_pickle_path = os.path.join(results_path, "boolean_funcs.pkl")
 tasks_data, tasks_complete_test_sets = \
     synthetic_data.generate_boolean_data_with_complete_test_sets(
         attributes, disjunct_degree, n, task_groups,
         tasks_per_group, noise, random_seed=data_rnd_seed,
         n_learning_sets=n_learning_sets,
         funcs_pickle_path=funcs_pickle_path)
 # test the generated MTL problem
 test_tasks(tasks_data, results_path, base_learners_bool,
            measures_clas, learners, "pre-prepared_test",
            rnd_seed=rnd_seed,
            test=test, unpickle=unpickle, visualize=visualize,
            preprepared_test_sets=tasks_complete_test_sets,
            separate_figs=True, cfg_logger=False)