具有大量集群的 KMeans

KMeans with huge number of clusters

我有一个相对较大的图,大约有 6000 个顶点,我必须使用 KMeans 并查看 5467 个簇是什么。我必须使用不同的指标,这就是我将 distance_matrix 作为输入的原因。这样做的问题是,由于 n_clusters 太大,所以不会收敛。我被建议进行自定义调整以使其工作,但我不太确定这意味着什么。这就是为什么我在这里发布这个问题。欢迎任何帮助!谢谢! 这是我的代码:

from sklearn.cluster import KMeans

distance_matrix = floyd_warshall_numpy(G)

cluster = KMeans(n_clusters=5467)

cluster.fit(distance_matrix)

graph_labels = cluster.labels_

我不建议使用 Kmeans 使用如此多的集群。相反,请尝试使用具有欧氏距离的 Agglomerative clustering。这将允许您找到一个截止点,您可以在其中通过分组点获得预期的簇数。

如果在 5 处关闭会给你 4 个集群,而在 2 处关闭会给你更多。

伪代码-

from sklearn.cluster import AgglomerativeClustering
import numpy as np
X = np.array([[1, 2], [1, 4], [1, 0],[4, 2], [4, 4], [4, 0]])
clustering = AgglomerativeClustering().fit(X)
clustering.labels_
array([1, 1, 1, 0, 0, 0])

您也可以使用预先计算的矩阵进行凝聚聚类

查看我分享的文档link。