如何合并不同聚类方法的聚类结果?

时间:2019-02-15 12:10:46

标签: merge cluster-analysis dbscan deterministic

问题:在我看来,聚类方法c()的基本属性是我们是否可以通过某些功能组合结果c(A)c(B) f()包含两个聚类,而我们不必再次应用完整聚类c(A+B),而是f(c(A),c(B))仍然可以得到相同的结果:

c(A+B) == f(c(A),c(B))

我假设某些c()具有此属性的必要条件是它是确定性的,即其内部处理的顺序与结果无关。但是,这可能还不够。

能找到一些参考资料来查找哪些集群方法支持这一点,以及在每种情况下f()的外观如何,真是太好了。


示例:目前,我正在考虑DBSCAN,如果我允许边界点同时属于多个聚类(不连接它们),那应该是确定性的:

  1. 如果一个点位于其eps邻居中,则可以从另一个点到达该点
  2. 核心点是至少可达到minPts的点
  3. 边缘从每个核心点到可以到达的所有点
  4. 每个从核心点传入 edge 的点都与后者在同一集群中

如果您错过了噪声点,则假设每个核心节点都达到了目标(反射性),然后我们将噪声点定义为大小为1的簇。边界点是非核心点。然后,如果要分区,我们可以将多个群集中的边界点随机分配给其中一个。我认为这与方法本身无关。

1 个答案:

答案 0 :(得分:2)

可能唯一可行的聚类是单链接层次聚类,因为从A x A和B x B中删除的边对于查找连接集的MST并不是必需的。

准确地说,对于DBSCAN,您遇到的问题是,添加数据时核心点属性可能会更改。因此,c(A + B)的核心点可能不是A而不是B的核心。这可能导致群集合并。 f()应该需要重新检查所有数据点,即重新运行DBSCAN。尽管您可以利用子集的核心点必须是整个集合的核心,但是仍然需要找到邻居和缺失的核心点。