我如何将不同方法的集群标签与 r 中的实际标签相匹配?

How I can match up the clusters labels of different methods to the actual labels in r?

基本上,我模拟了 1000 个数据集,然后通过不同的聚类技术对它们进行聚类,例如:k-means、基于模型的聚类等

然后,我可以使用分类正确率 CCR 验证这些方法的性能。但是,我面临标签切换问题,因此无法获得真实的 CCR。 所以,我的问题是,有没有办法统一 r 中的所有标签以用于多变量数据集?

这是一个简单的例子:

  # Create the random data sets:

  data1 <- rnorm(5, 0, 0.5) # cluster 1

  data2 <- rnorm(5, 2, 0.5) # cluster 2

  data3 <- rnorm(5, 4, 0.5) # cluster 3

  alldata <- c(data1, data2, data3)

  # cluster the data using different methods:

  require(cluster)

  km.method <- kmeans(alldata, centers = 3)$cluster
  # [1] 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2

  pam.method <- pam(alldata, 3)$clustering
  # [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3


  # As you see the answers are exactly the same, but the labels are different! 
  # How I can unify the labels for all methods to match the true labels??

CCR 不适用于聚类。

由于聚类器不提供 类,根据定义它是 0。

考虑 Iris 数据集。正确的 类 是物种。像 k-means 这样的聚类将产生 "labels" 0,1,2。 None 个是正确的。

评估集群的正确方法是使用集群评估指标,例如调整后的兰德指数归一化互信息。这些评估集合重叠,而不是单个标签。