社区对象¶
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对象)。