社区对象

cdlib 旨在标准化网络社区的表示。 为了实现这一目标,引入了几个聚类类,每个类都捕捉特定的社区特征。 所有类都继承自相同的接口,因此共享一些共同的功能。

特别是,cdlib 算法可以输出以下聚类类型:

  • NodeClustering: 节点社区(可以是明确的分区或重叠的群体);

  • FuzzyNodeClustering: 具有明确节点到社区归属分数的重叠节点社区;

  • BiNodeClustering: 二分图的聚类(明确表示类同质社区);

  • AttrNodeClustering: 对特征丰富(节点属性)的图进行聚类;

  • EdgeClustering: 边缘社区;

  • TemporalClustering: 时间网络的聚类;

请参考以下文档以获取由cdlib聚类对象暴露的方法的完整概述。

注意

我有一个通过不在CDlib中的算法获得的聚类。我可以将其加载到Clustering对象中以利用您库的评估和可视化功能吗?

是的,你可以。

只需将您的聚类转换为列表的列表(我们将每个社区表示为节点ID的列表),然后创建一个NodeClustering(或任何其他Clustering)对象。

from cdlib import NodeClustering

communities = [[1,2,3], [4,5,6], [7,8,9,10,11]]
coms = NodeClustering(communities, graph=None, method_name="your_method")

当然,为了计算一些评估分数/绘制社区网络,在构建NodeClustering实例时,您还需要传递原始图(作为igraph/networkx对象)。