diff --git a/lib/erosion_model.py b/lib/erosion_model.py index 6aa7e7da235e57df5b2282da923052370087645a..19b71c5c42a123e83ee0256746e070e6fad7eed1 100644 --- a/lib/erosion_model.py +++ b/lib/erosion_model.py @@ -15,7 +15,7 @@ import networkx as nx import numpy as np float_epsilon = np.finfo(float).eps -VERBOSE = False +VERBOSE = True def log(x): if VERBOSE: print(x) @@ -146,10 +146,30 @@ class ErosionModel(): return X_train,X_test,y_train,y_test +def position_str_process(G): + def foo(x): + return [eval(f) for f in re.findall("[-]?\d+.[-]?[\de+-]+", x)] + + is_pos=True + H = G.copy() + for n in list(H.nodes()): + if not "pos" in H.nodes[n]: + is_pos=False + break + if is_pos: + import re + for node in list(G.nodes()): + try: + H.nodes[node]["pos"] = foo(H.nodes[node]["pos"]) + except TypeError: + pass + return H + def eval_erosion_model(G,nb_iter=1,verbose=False): + G = position_str_process(G) erod_mod = ErosionModel(G) erod_mod.erode_n_times(nb_iter) - X_train, X_test, y_train, y_test = erod_mod.get_features() + X_train, X_test, y_train, y_test = erod_mod.get_features(True,True,True) auc_sbm, auc_spa = get_auc_heuristics(G, 60) if verbose:print("SBM: ", auc_sbm, "SPATIAL: ", auc_spa)