cgnlibPurpose: Provides functionalities for community detection using various centrality metrics.
__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.
cgnexpPurpose: Conducts experiments on community detection using various centrality metrics.
__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.
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')