CDlib Logo
  • Overview
    • Goals
    • EU H2020
  • Installing CDlib
    • Optional Dependencies
      • PyPi package
      • Advanced
      • Optional Dependencies (Conda package)
  • Quick Start
    • Tutorial
    • FAQ
  • API Guide
    • Community Objects
      • Node Clustering
      • Fuzzy Node Clustering
      • Attributed Node Clustering
      • Biparite Node Clustering
      • Edge Clustering
      • Temporal Clustering
    • Static Community Discovery
      • Node Clustering
      • Edge Clustering
      • Ensemble Methods
    • Dynamic Community Discovery
      • Instant Optimal
      • Temporal Trade-Off
    • Community Events and LifeCycle
      • LifeCycle Object
      • Clustering with Explicit LifeCycle
      • Clustering without Explicit LifeCycle
      • Analyzing Events and Flows
      • Visualizing Events and Flows
      • Validating Flows
    • Evaluation and Benchmarking
      • Internal Evaluation: Fitness scores
      • External Evaluation: Partition Comparisons
      • Synthetic Benchmarks
      • Networks With Annotated Communities
    • Validate CD Algorithms Rankings
      • Ranking by Fitness Scores
      • Ranking by Clustering Similarity
    • Visual Analytics
      • Network Visualization
      • Analytics plots
      • Dynamic Community Events plots
    • Input-Output
      • Community I/O
      • Community Events I/O
    • Utilities
      • Graph Transformation
      • Identifier mapping
  • Bibliography
    • Algorithms
    • Evaluation measures
    • Researches using CDlib
CDlib
  • API Guide
  • Static Community Discovery
  • Ensemble Methods
  • cdlib.ensemble.random_search
  • Edit on GitHub

cdlib.ensemble.random_search¶

cdlib.ensemble.random_search(graph: ~networkx.classes.graph.Graph, method: ~typing.Callable[[~networkx.classes.graph.Graph, dict], object], parameters: list, quality_score: ~typing.Callable[[~networkx.classes.graph.Graph, object], object], instances: int = 10, aggregate: ~typing.Callable[[list], object] = <built-in function max>) → tuple¶

Returns the optimal partition of the specified graph w.r.t. the selected algorithm and quality score over a randomized sample of the input parameters.

Parameters:
  • method – community discovery method (from nclib.community)

  • graph – networkx/igraph object

  • parameters – list of Parameter and BoolParameter objects

  • quality_score – a fitness function to evaluate the obtained partition (from nclib.evaluation)

  • instances – number of randomly selected parameters configurations

  • aggregate – function to select the best fitness value. Possible values: min/max

Returns:

at each call the generator yields a tuple composed by: the optimal configuration for the given algorithm, input paramters and fitness function; the obtained communities; the fitness score

Example:

>>> import networkx as nx
>>> from cdlib import algorithms, ensemble
>>> 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.random_search(graph=g, method=algorithms.louvain,
>>>                                                       parameters=[resolution, randomize],
>>>                                                       quality_score=evaluation.erdos_renyi_modularity,
>>>                                                       instances=5, aggregate=max)
>>> print(communities, scoring)
Previous Next

© Copyright 2024, Giulio Rossetti. Revision 5e118d95.

Built with Sphinx using a theme provided by Read the Docs.