我正在寻找一种执行基于密度的聚类的方法。生成的集群应具有与DBSCAN
不同的代表。
Mean-Shift
似乎符合这些需求,但不足以满足我的需求。我已经研究了一些子空间聚类算法,并且只使用代表找到了CLIQUE
,但这部分没有在 Elki 中实现。
答案 0 :(得分:2)
正如我在上一次问题的评论中所指出的那样, https://stackoverflow.com/questions/34720959/dbscan-java-library-with-corepoints
基于密度的聚类确实不假设有中心或代表性。
考虑以下示例image from Wikipedia user Chire(BY-CC-SA 3.0):
哪个对象应该是红色群集的代表?
基于密度的聚类是关于发现"任意形状的"集群。这些没有有意义的单一代表性对象。他们并不打算"压缩"您的数据 - 这不是vector quantization方法,而是结构发现。但是,这种复杂结构的本质是它不能简化为单一的代表。 此类群集的正确表示是群集中所有点的集合。对于2D中的几何理解,您还可以计算凸包,例如,获取该图片中的区域。 / p>
选择代表性对象是一项不同的任务。这不是发现这种结构所必需的,因此这些算法不会计算代表性对象 - 它会浪费CPU。
答案 1 :(得分:2)
您可以选择密度最高的对象作为群集的代表。
对DBSCAN来说,存储每个对象的邻居数是一个相当容易的修改。
但正如Anony-Mousse所说,对象可能是一个相当糟糕的选择。基于密度的聚类不是为了产生代表性对象而设计的。
您可以尝试AffinityPropagation,但它也不会很好地扩展。