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

Optimization 基于度量/密度的聚类/分组,optimization,cluster-analysis,max,metric,Optimization,Cluster Analysis,Max,Metric,我有一个有限数量的点(云),上面定义了一个度量。我希望在该云中找到最大簇数,以便: 1) 一个簇中任意两点之间的最大距离小于给定的ε(常数) 2) 每个簇中正好有k个(常数)点 我研究了各种不同的聚类方法,限制内部最大距离的聚类不是问题(基于密度)。2)限制和要求找到“最大团簇s.t.”似乎是有问题的。有什么有效解决方案的建议吗 谢谢,, A ~鉴于您的限制,可能没有解决方案。事实上,这可能经常发生 最明显的情况是当您没有多个k点时 但是如果epsilon设置得太低,则可能存在无法再放入集群的点

我有一个有限数量的点(云),上面定义了一个度量。我希望在该云中找到最大簇数,以便:

1) 一个簇中任意两点之间的最大距离小于给定的ε(常数)

2) 每个簇中正好有k个(常数)点

我研究了各种不同的聚类方法,限制内部最大距离的聚类不是问题(基于密度)。2)限制和要求找到“最大团簇s.t.”似乎是有问题的。有什么有效解决方案的建议吗

谢谢,,
A ~

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

最明显的情况是当您没有多个
k
点时

但是如果
epsilon
设置得太低,则可能存在无法再放入集群的点

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

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


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

事实上,我和@Anony mouse有着相同的印象:您还没有理解您的问题和需求

如果您希望集群大小为
k
,那么您将获得多少集群是毫无疑问的:显然是
n/k
。因此,您可以尝试使用k-means变量来生成与本教程中所述大小相同的簇:并将所需的簇数设置为
n/k

请注意,这不是一个特别明智或好的聚类算法。它做了一些事情来满足约束,但是从聚类分析的角度来看,聚类不是真正有意义的。这是约束满足,而不是聚类分析

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

您可能需要多次重新启动,因为可能没有解决方案

另见:


对于基本上多余的问题。

您能详细说明一下明显的方法吗?对我来说,它们(不幸的)并不明显。此外,如果不满足约束条件(无解决方案),则epsilon值将增加,并重新运行查询(如果超过k个点)。可能的重复不是重复。问题其实很不一样,谢谢你的回答。大多数点不属于任何簇,因此将它们聚集到大小相同的k个簇中对我没有帮助(我实际上发现了您之前链接的那些问题)。我可能可以使用带有epsilon值的DBScan,然后拆分>=2*k的集群。听起来好像可以用!我得到的印象是,你不是在寻找聚类分析,而是在寻找一种新的方法。请参阅:群集尝试查找结构,而您有一个预定义的结构,并使用此结构查找可能的最大覆盖率。谢谢!最后的回答确实帮助我更好地理解我的问题。