问题:在我看来,聚类方法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的簇。边界点是非核心点。然后,如果要分区,我们可以将多个群集中的边界点随机分配给其中一个。我认为这与方法本身无关。
答案 0 :(得分:2)
可能唯一可行的聚类是单链接层次聚类,因为从A x A和B x B中删除的边对于查找连接集的MST并不是必需的。
准确地说,对于DBSCAN,您遇到的问题是,添加数据时核心点属性可能会更改。因此,c(A + B)的核心点可能不是A而不是B的核心。这可能导致群集合并。 f()应该需要重新检查所有数据点,即重新运行DBSCAN。尽管您可以利用子集的核心点必须是整个集合的核心,但是仍然需要找到邻居和缺失的核心点。