def test_pool_filtered(self): g = nx.karate_club_graph() # Louvain resolution = ensemble.Parameter(name="resolution", start=0.1, end=1, step=0.1) # randomize = ensemble.BoolParameter(name="randomize", value=False) louvain_conf = [resolution] # Demon epsilon = ensemble.Parameter(name="epsilon", start=0.1, end=1, step=0.1) demon_conf = [epsilon] methods = [algorithms.louvain, algorithms.demon] for communities, scoring in \ ensemble.pool_grid_filter(g, methods, [louvain_conf, demon_conf], quality_score=evaluation.erdos_renyi_modularity, aggregate=max): self.assertIsInstance(communities.communities, list) self.assertIsInstance(scoring.score, float)
def test_pool(self): g = nx.karate_club_graph() # Louvain resolution = ensemble.Parameter(name="resolution", start=0.1, end=1, step=0.1) randomize = ensemble.BoolParameter(name="randomize") louvain_conf = [resolution, randomize] # Angel threshold = ensemble.Parameter(name="threshold", start=0.1) angel_conf = [threshold] methods = [algorithms.louvain, algorithms.angel] for communities in ensemble.pool(g, methods, [louvain_conf, angel_conf]): self.assertIsInstance(communities.communities, list)
def test_grid(self): g = nx.karate_club_graph() resolution = ensemble.Parameter(name="resolution", start=0.1, end=1, step=0.1) for communities in ensemble.grid_execution(graph=g, method=algorithms.louvain, parameters=[resolution]): self.assertIsInstance(communities.communities, list)
def test_pool(self): g = nx.karate_club_graph() # Louvain resolution = ensemble.Parameter(name="resolution", start=0.1, end=1, step=0.1) # randomize = ensemble.BoolParameter(name="randomize") louvain_conf = [resolution] # Demon epsilon = ensemble.Parameter(name="epsilon", start=0.1) demon_conf = [epsilon] methods = [algorithms.louvain, algorithms.demon] for communities in ensemble.pool(g, methods, [louvain_conf, demon_conf]): self.assertIsInstance(communities.communities, list)
def test_pool_filtered(self): g = nx.karate_club_graph() # Louvain resolution = ensemble.Parameter(name="resolution", start=0.1, end=1, step=0.1) randomize = ensemble.BoolParameter(name="randomize", value=False) louvain_conf = [resolution, randomize] # Angel threshold = ensemble.Parameter(name="threshold", start=0.1, end=1, step=0.1) angel_conf = [threshold] methods = [algorithms.louvain, algorithms.angel] for communities, scoring in \ ensemble.pool_grid_filter(g, methods, [louvain_conf, angel_conf], quality_score=evaluation.erdos_renyi_modularity, aggregate=max): self.assertIsInstance(communities.communities, list) self.assertIsInstance(scoring, float)
def test_grid_search(self): g = nx.karate_club_graph() resolution = ensemble.Parameter(name="resolution", start=0.1, end=1, step=0.1) randomize = ensemble.BoolParameter(name="randomize") communities, scoring = ensemble.grid_search(graph=g, method=algorithms.louvain, parameters=[resolution, randomize], quality_score=evaluation.erdos_renyi_modularity, aggregate=max) self.assertIsInstance(communities.communities, list) self.assertIsInstance(scoring, float)
def polling_and_optimisation(): threshold = ensemble.Parameter(name="threshold", start=0.25, end=1.0, step=0.25) # numeric range angel_conf = [threshold] resolution = ensemble.Parameter(name="resolution", start=0.1, end=1, step=0.1) # numeric range louvain_conf = [resolution] methods = [algorithms.angel, algorithms.louvain] for coms, scoring in ensemble.pool_grid_filter( g, methods, [louvain_conf, angel_conf], quality_score=evaluation.erdos_renyi_modularity, aggregate=max): print("%s\nCommunities:\n %s \nConfiguration: %s \nScoring: %s\n" % (coms.method_name, coms.communities, coms.method_parameters, scoring))
########################################################################### ### Testing Methods ########################################################################### # graphs = [school_g] # names = ['school'] # references = [school_gt] results_scoring['lpam_python_cm'] = getResults( clustering_method=lpam_python_cm, graphs=graphs, names=names, references=references, parameters_list = [ [ensemble.Parameter(name="k", start=max(1,len(r.communities)-3), end=len(r.communities)+1, step=1), \ ensemble.Parameter(name="threshold", start=0.25, end=0.75, step=0.05),\ ensemble.Parameter(name="seed", start=0, end=10, step=1) ] for r in references ] ) # right implementaion of amplified commute distance results_scoring['lpam_python_amp'] = getResults( clustering_method=lpam_python_amp, graphs=graphs, names=names, references=references, parameters_list = [ [ensemble.Parameter(name="k", start=max(1,len(r.communities)-3), end=len(r.communities)+1, step=1), \ ensemble.Parameter(name="threshold", start=0.25, end=0.75, step=0.05),\ ensemble.Parameter(name="seed", start=0, end=10, step=1) ] for r in references ] )