2

我正在寻找一种方法来执行基于密度的聚类。生成的集群应该有一个不像 的代表DBSCANMean-Shift似乎满足这些需求,但规模不足以满足我的需求。我研究了一些子空间聚类算法,只发现CLIQUE使用代表,但这部分没有在Elki中实现。

4

2 回答 2

2

正如我在您的问题上一次迭代的评论中指出的那样, https://stackoverflow.com/questions/34720959/dbscan-java-library-with-corepoints

基于密度的聚类不假设有中心或代表

考虑以下来自 Wikipedia 用户 Chire (BY-CC-SA 3.0) 的示例图像:

在此处输入图像描述

哪个对象应该是红色集群的代表?

基于密度的聚类是关于寻找“任意形状”的聚类。这些没有有意义的单一代表对象。它们并不是要“压缩”您的数据——这不是矢量量化方法,而是结构发现。但正是这种复杂结构的性质,它不能被简化为一个单一的代表。这种集群的正确表示是集群中所有点的集合。对于 2D 中的几何理解,您还可以计算凸包,例如,以获得该图片中的区域。

选择有代表性的对象是一项不同的任务。这不是发现这种结构所必需的,因此这些算法不计算代表性对象 - 它会浪费 CPU。

于 2016-01-12T20:51:18.553 回答
2

您可以选择具有最高密度的对象作为集群的代表。

对 DBSCAN 进行相当简单的修改以存储每个对象的邻居计数。

但正如 Anony-Mousse 所提到的,该对象可能仍然是一个相当糟糕的选择。基于密度的聚类并非旨在产生具有代表性的对象。

您可以尝试 AffinityPropagation,但它也不会很好地扩展。

于 2016-01-14T08:55:16.363 回答