From 3e2abe83e33bc90ce6e11f0ab38fd27a80b63284 Mon Sep 17 00:00:00 2001 From: quillotm Date: Thu, 12 Aug 2021 13:51:34 +0200 Subject: [PATCH] Multiple output for measure action. These multiple output are written in json. --- volia/clustering.py | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/volia/clustering.py b/volia/clustering.py index 7411f48..cf22299 100644 --- a/volia/clustering.py +++ b/volia/clustering.py @@ -11,6 +11,7 @@ from sklearn.preprocessing import LabelEncoder from sklearn.metrics import v_measure_score import core.measures +import json CLUSTERING_METHODS = { @@ -28,23 +29,37 @@ def disequilibrium_run(): def measure_run(measure: str, features: str, lst: str, truelabels: str, model: str, modeltype: str): + """ + + @param measure: + @param features: + @param lst: + @param truelabels: + @param model: + @param modeltype: + @return: + """ module = CLUSTERING_METHODS[modeltype] module.load(model) - evaluation = EVALUATION_METHODS[measure] - feats_dict = read_features(features) - labels_dict = read_labels(truelabels) - lst_dict = read_lst(lst) - lst_keys = [key for key in lst_dict] - feats = np.asarray([feats_dict[key] for key in lst_keys]) - Y_pred = module.predict(feats) - Y_truth = [labels_dict[key][0] for key in lst_keys] - le = LabelEncoder() - le.fit(Y_truth) - Y_truth = le.transform(Y_truth) + eval = {} + for ms in measure: + evaluation = EVALUATION_METHODS[ms] + feats_dict = read_features(features) + labels_dict = read_labels(truelabels) + lst_dict = read_lst(lst) + lst_keys = [key for key in lst_dict] + feats = np.asarray([feats_dict[key] for key in lst_keys]) + Y_pred = module.predict(feats) + Y_truth = [labels_dict[key][0] for key in lst_keys] + + le = LabelEncoder() + le.fit(Y_truth) + Y_truth = le.transform(Y_truth) + + eval[ms] = evaluation(Y_truth, Y_pred) - eval = evaluation(Y_truth, Y_pred) - print(eval) + print(json.dumps(eval)) @@ -125,7 +140,7 @@ if __name__ == "__main__": parser_measure.add_argument("--measure", required=True, - type=str, + nargs="+", choices=[key for key in EVALUATION_METHODS], help="...") parser_measure.add_argument("--features", required=True, type=str, help="...") -- 1.8.2.3