我需要帮助重新定义两个聚类过程的索引,以便它们以更直接的方式进行比较。
假设一个聚类过程A给出了以下向量作为输出(每个个体的聚类标签的向量)
clust1 <- c(1, 1, 1, 1, 3, 2, 2, 1, 1, 2, 3, 2, 2)
而聚类算法B返回以下向量
clust2 <- c(3, 3, 3, 3, 5, 2, 2, 3, 3, 2, 5, 2, 2)
正如您所看到的,这两种算法返回相同的聚类,但如果您有数百个观察结果,则不容易获得此结果。
你能帮助我开发一个自动函数(或一段以通用方式编写的代码),改变两者或两者之一的集群标签,使它们具有相同的标签吗?
我的主要目的不是比较两个聚类,但我需要一个代码,做我所说的,因此请不要试图解决我的问题,只是说,我可以比较他们与一个情节或列联表。
先谢谢你了!
2条答案
按热度按时间2lpgd9681#
这里有一个解决方案,只要两个解决方案之间的簇数相同,它就可以工作。我们使用
factor()
将clust1
的标签应用到clust2
。此外:
igraph
有一个compare()
函数,它返回聚类结果之间的距离,当聚类标签不同时,该函数也有效。让我们添加第三个聚类变量,并只更改最后一个值...当两个群集解决方案相同时,
compare()
返回0
无论何时存在差异,结果都将是
> 0
but5z9lq2#
你可以把它们与图或列联表进行比较。
或者,像这样: