将集合聚类(ecg)和graphaware度量(gam)添加到igraph。
partition-igraph的Python项目详细描述
图的划分与测度
Python3代码实现了11个图形感知度量(gam),用于比较图划分以及一个稳定的基于集成的图划分算法(ecg)。这个版本与igraph包一起工作。还提供了networkx的一个版本:partition networkx。在
gam感知(图形)
措施分别是:
- “rand”:rand索引
- “jaccard”:jaccard索引
- “mn”:用均值函数规范化的成对相似性
- gmn:几何平均函数规范化的成对相似性
- min:用最小函数规范化的成对相似性
- max:用极大值函数规范化的成对相似性
除“jaccard”外,每个度量值都可以调整(推荐)或不进行调整。 详情请参阅:
Valérie Poulin和François Théberge,“比较图聚类:集划分度量与图形感知度量”,https://arxiv.org/abs/1806.11494。在
图的集成聚类(ecg)
这是一个好的,稳定的图划分算法。有关ecg的详细信息,请参阅:
Valérie Poulin和François Théberge,“图的集成聚类:比较和应用”,Appl Netw Sci 4,51(2019年)。 https://doi.org/10.1007/s41109-019-0162-z
示例
我们需要导入提供的Python文件分区图。在
import numpy as np import igraph as ig import partition_igraph
接下来,让我们构建一个社区图。在
^{pr2}$运行Louvain和ecg:
ml=g.community_multilevel()ec=g.community_ecg(ens_size=32)
最后,我们展示了几个可以用gam计算的度量示例:
## for 'gam' partition are either 'igraph.clustering.VertexClustering' or 'dict'print('Adjusted Graph-Aware Rand Index for Louvain:',g.gam(ml,tc))print('Adjusted Graph-Aware Rand Index for ECG:',g.gam(ec,tc))print('\nJaccard Graph-Aware for Louvain:',g.gam(ml,tc,method="jaccard",adjusted=False))print('Jaccard Graph-Aware for ECG:',g.gam(ec,tc,method="jaccard",adjusted=False))
- 项目
标签: