我想使用sklearn的图聚类算法,但它们不接受以.gexf格式的networkx输入。我需要哪种库/转换来将我的.gexf图形转换为适用于sklearn的格式?
我想使用sklearn的图聚类算法,但它们不接受以.gexf格式的networkx输入。我需要哪种库/转换来将我的.gexf图形转换为适用于sklearn的格式?
A = nx.to_scipy_sparse_matrix(G)
我猜你需要确保你的对角线为1;如果不是,请使用numpy.fill_diagonal(D, 1)
。
然后只需应用聚类算法:
from sklearn.cluster import AffinityPropagation
ap = AffinityPropagation(affinity='precomputed').fit(A)
print(ap.labels_)
D = 1 - A
; 如果有带权边缘,则可以执行D = A.max() - A
。