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

问题描述 投票:0回答:2

我对同一事件有两个观察结果。让我们说XY。我想有nc集群。我正在使用sklearn来进行聚类。

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

是否有一个措施,让我可以比较xy:即如果集群1x是相同的,这个措施将是y

python cluster-analysis k-means
2个回答
2
投票

只需提取kmeans对象的聚类中心(参见docs):

x_centers = x.cluster_centers_
y_centers = y.cluster_centers_

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

这个link讨论了一些方法和问题。


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.