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)
Exemplo n.º 2
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
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))
Exemplo n.º 8
0
    ###########################################################################
    ### 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 ]
    )