Documentation for CGNLib and CGNExp

Class: cgnlib

Purpose: Provides functionalities for community detection using various centrality metrics.

Methods:

__init__(self, file, method="closeness")

Parameters:

_create_graph_from(self, file)

Purpose: Creates a graph from the specified file.

Parameters:

Returns: NetworkX graph object.

_calculate_centrality_for_edges(self, G, metric='closeness')

Purpose: Calculates centrality metrics for edges.

Parameters:

Returns: Dictionary with edges as keys and centrality values as values.

detect_gn(self, method='closeness')

Purpose: Detects communities using the Girvan-Newman algorithm.

Parameters:

Returns: List of communities.

evaluate_community_quality(self)

Purpose: Evaluates the quality of detected communities.

Returns: Dictionary with modularity, average conductance, and number of communities.

visualize_best_communities(self, save_path=None)

Purpose: Visualizes the best detected communities.

Parameters:

Returns: None.

visualize_with_node_attributes(self, attribute='degree', save_path=None)

Purpose: Visualizes communities with node attributes.

Parameters:

Returns: None.

save_communities_to_csv(self, filename='community_results.csv')

Purpose: Saves the detected communities to a CSV file.

Parameters:

Returns: None.

Class: cgnexp

Purpose: Conducts experiments on community detection using various centrality metrics.

Methods:

__init__(self, file)

Parameters:

run_experiments(self, metrics=None, save_images=False)

Purpose: Runs experiments with specified centrality metrics.

Parameters:

Returns: None.

print_results(self)

Purpose: Prints the results of the experiments.

Returns: None.

export_results_to_csv(self, filename='experiment_results.csv')

Purpose: Exports the results to a CSV file.

Parameters:

Returns: None.

Example Usage:


if __name__ == '__main__':
    exp = cgnexp('hdy.graph')
    exp.run_experiments(metrics=['closeness', 'betweenness', 'pagerank', 'degree', 'heatmap', 'harmonic', 'subgraph', 'laplacian','rumor'], save_images=True)
    exp.print_results()
    exp.export_results_to_csv('experiment_results.csv')