基于度量/密度的聚类/分组

时间:2013-02-15 18:53:18

标签: optimization cluster-analysis max metric

我有一定数量的点(云),并在其上定义了一个指标。我想在此云中找到最大数量的群集,以便:

1)一个群集中任意两点之间的最大距离小于给定的epsilon( const

2)每个群集中都有k( const )点

我研究了各种不同的聚类方法,并且对内部最大距离的限制不是一个问题(基于密度)。 2)限制和要求找到“最大数量的簇s.t.”但似乎有问题。有效解决方案的任何建议吗?

谢谢你, A〜

2 个答案:

答案 0 :(得分:1)

鉴于您的限制,可能没有解决方案。实际上,这可能经常发生......

最明显的情况是你没有多个k点。

但是,如果epsilon设置得太低,可能会有一些点无法再进入群集。

我认为您需要重新考虑您的要求和问题,而不是寻找一种算法来解决可能无法满足的不合理要求。

还要考虑您是否真的需要找到保证的最大值,或者只是一个好的解决方案。

有一些相当明显的方法至少可以快速找到一个好的近似值。

答案 1 :(得分:1)

我和@ Anony-Mousse的印象相同,实际上:你还没有理解你的问题和要求。

如果您希望群集大小为k,则无需知道您将获得多少群集:显然n /k。因此,您可以尝试使用k-means变体,该变体生成与...相同大小的簇。在本教程中描述:Tutorial on same-size k-means并将所需的群集数量设置为n/k

请注意,这不是一种特别合理或良好的聚类算法。 某些东西可以满足约束条件,但从聚类分析的角度来看, 并没有真正意义。这是约束满足,但不是聚类分析。

为了满足你的epsilon约束,你可以从这个初始解决方案开始(这可能是@ Anony-Mousse所说的“明显的方法”)并尝试执行相同类型的优化 - 交换元素以满足epsilon条件。

您可能需要重启一些,因为可能没有解决方案。

另见:

Group n points in k clusters of equal size

K-means algorithm variation with equal cluster size

基本上是多余的问题。