Python:如何使用k-means算法比较聚类之间的相似性



我对同一事件有两个观察结果。假设CCD_ 1和CCD_。我假设有nc集群。我正在使用sklearn进行聚类。

x = KMeans(n_clusters=nc).fit_predict(X)
y = KMeans(n_clusters=nc).fit_predict(Y)

是否存在允许我比较xy的度量:即,如果簇xy相同,则该度量将是1

只需提取kmeans对象的集群中心(请参阅文档):

x_centers = x.cluster_centers_
y_centers = y.cluster_centers_

您必须决定使用哪个度量来比较这些度量。请记住,中心是浮点,聚类过程是启发式的,而聚类过程是随机算法。这意味着,即使对于在相同数据上训练的集群对象,你也会很有可能得到被解释为不完全相同的的东西。

此链接讨论了一些方法和问题。

兰德指数及其调整版本正是这样做的。两个匹配的集群分配(即使被视为任意的标签本身不同),得分为1。值为0表示他们根本不同意。调整后的兰德指数使用其基线作为对聚类的随机点分配。

最新更新