def run_optimization_tests(algorithm, input_files, key_file, is_weighted, max_eval): inputs = prepare_tw_input(input_files, is_weighted) search_space = get_search_space_by_algorithm(algorithm) LOGGER.info( "algorithm:{}, key_file: {}, weighted= {}, # of files: {}, " "max_eval={}".format(algorithm, key_file, is_weighted, len(input_files), max_eval)) optimize(objective, inputs, key_file, search_space, max_eval)
def run_kmeans(paths: List[Dict[str, str]], params): message = 'Running K-Means experiments' print(message + '...') logging.info(message) results_to_save = '### K-Means experiments results\n' results_to_save += 'Except K, the other parameters are the default ones (eg. euclidean distance)\n' for path in paths: results_to_save += f'{path["name"]} dataset\n' X = pd.read_csv(os.path.join('datasets', path['X'])) Y = pd.read_csv(os.path.join('datasets', path['Y']), header=None) # Optimization of K alg_params = { 'name': path['name'], 'vis_dims': 2, 'fig_save_path': params.output_path } results = optimize(X=X.values, algorithm=KMeans, algorithm_params=alg_params, metric='calinski_harabasz_score', metric_params={'X': X.values}, k_values=list(range(2, 15)), goal='minimize') results_to_save = generate_results(X, Y, results, results_to_save) with open(os.path.join(params.output_path, 'results.md'), 'a') as f: f.write(results_to_save)