如何在边缘加权 network/graph 中进行社区检测?

How to do community detection in a edge weighted network/graph?

我的一般问题是:如何在加权无向社交中进行社区检测network/graph? 我想要聚类的数据集如下所示,

DrugA, DrugB,Weight 
x,y,6
y,z,9
y,p,5
x,p,3

在我的数据集中,我有多个药物节点,它们之间的权重表示 drugs.I 之间的相似性,希望将连接的节点聚集在较小的集群中,而权重较高的节点连接在一起,即某种最小值切。我可以使用哪种聚类算法来聚类这种数据集;最好来自 Scikit-learn 或 NetworkX ?

我已经尝试过 Chinese Whispers,但由于图 CW 的密集连接最终给出了两个大集群。任何 recommendations/suggestions 将不胜感激。

层次聚类可以做到这一点。

但是您需要一个适用于稀疏图和相似性而非距离的实现。

我正在寻找的答案是 "Community detection algorithm"。 Louvain Modularity 算法是一种 weighted/unweighted 平面聚类算法。 GEPHI(旧版本)中提供了该算法的实现。