def collect_data(runs, X, y, opt_list, search_config, n_iter, opt_dict): time_c = time.time() data_runs_1 = [] data_runs_2 = [] for run in tqdm.tqdm(range(runs)): print("\nRun nr.", run, "\n") total_time_list = [] eval_time_list = [] for key in opt_list: print("optimizer:", key) n_iter_temp = n_iter opt_dict_temp = opt_dict if key == "ParallelTempering": n_iter_temp = int(n_iter / 10) if key == "ParticleSwarm": n_iter_temp = int(n_iter / 10) if key == "EvolutionStrategy": n_iter_temp = int(n_iter / 10) opt_obj = Cypher(search_config, optimizer=key, n_iter=n_iter_temp, **opt_dict_temp) opt_obj.search(X, y) total_time = opt_obj.get_total_time() eval_time = opt_obj.get_eval_time() total_time_list.append(total_time) eval_time_list.append(eval_time) total_time_list = np.array(total_time_list) eval_time_list = np.array(eval_time_list) data_runs_1.append(total_time_list) data_runs_2.append(eval_time_list) data_runs_1 = np.array(data_runs_1) data_runs_2 = np.array(data_runs_2) print("\nCreate Dataframe\n") print("data_runs_1", data_runs_1, data_runs_1.shape) data = pd.DataFrame(data_runs_1, columns=opt_list) model_name = list(search_config.keys())[0] calc_optimizer_time_name = "total_time_" + model_name.__name__ file_name = str(calc_optimizer_time_name) data.to_csv(file_name, index=False) data = pd.DataFrame(data_runs_2, columns=opt_list) calc_optimizer_time_name = "eval_time_" + model_name.__name__ file_name = str(calc_optimizer_time_name) data.to_csv(file_name, index=False) print("data collecting time:", time.time() - time_c)
def test_get_total_time(): opt = Cypher(X, y) opt.search(search_config, n_iter=n_iter, optimizer="HillClimbing") opt.get_total_time()