cdlib.algorithms.eva¶
- cdlib.algorithms.eva(g_original: object, labels: dict, weight: str = 'weight', resolution: float = 1.0, alpha: float = 0.5) AttrNodeClustering¶
Eva算法扩展了Louvain方法,以便处理节点的属性(也称为Louvain扩展到顶点属性)。 它通过线性组合优化了两个质量函数,一个是结构性的,另一个是聚类性的,即Newman的模块度和纯度,后者估计为社区内节点携带的最频繁标签的频率的乘积。 参数alpha调节这两个函数的重要性:alpha值高时更倾向于聚类标准而不是结构标准。
支持的图表类型
无向
有向
加权
时间
节点属性
是的
否
否
否
是的
- Parameters:
g_original – 一个 networkx/igraph 对象
labels – 字典,为每个节点(键)指定一个字典(值),该字典指定名称属性(键)及其值(值)
weight – str, 可选 图中用作权重的键。默认为‘weight’
resolution – double, 可选 将改变社区的大小,默认为1。
alpha – float, 假设在 [0,1] 之间,可选 将调整模块性和纯度标准的重要性,默认为 0.5
- Returns:
AttrNodeClustering 对象
- Example:
>>> from cdlib.algorithms import eva >>> import networkx as nx >>> import random >>> l1 = ['A', 'B', 'C', 'D'] >>> l2 = ["E", "F", "G"] >>> g_attr = nx.barabasi_albert_graph(100, 5) >>> labels=dict() >>> for node in g_attr.nodes(): >>> labels[node]={"l1":random.choice(l1), "l2":random.choice(l2)} >>> communities = eva(g_attr, labels, alpha=0.8)
- References:
Citraro, S., & Rossetti, G. (2019年12月). Eva: 属性感知网络分割. 在国际复杂网络及其应用会议上 (pp. 141-151). Springer, Cham.