使用特定大小的组进行聚类

时间:2014-05-11 02:30:17

标签: python language-agnostic artificial-intelligence cluster-analysis

是否有任何类型的聚类算法专注于形成特定大小的聚类?这可以被认为是一种分组算法而不是聚类算法。

基本上,给定n个数据点和一定大小的固定组k,根据某些分类器找到最佳的点集分布,这有望最大限度地减少给定组中每个点的分类器距离。

此问题似乎与群集问题非常相似,但主要区别在于我们关注特定的群集大小,但不关心群集的数量。

2 个答案:

答案 0 :(得分:1)

有一个关于如何在ELKI中实现这种算法的教程:

http://elki.dbs.ifi.lmu.de/wiki/Tutorial/SameSizeKMeans

另请参阅约束聚类算法;虽然这些算法通常只支持“必须链接”和“无法链接”约束,而不支持大小限制。

您应该能够在首先指定组大小的情况下进行类似的修改,然后随机分配点,并在目标函数改进时交换集群成员;类似于k-means / k-medoids。因为你可能会陷入局部最小值,重启多次并保持最佳状态。

另见早期问题,例如: K-means algorithm variation with equal cluster sizeGroup n points in k clusters of equal size

答案 1 :(得分:0)

您提出的问题是组合优化问题。知道你是否需要一个精确的解决方案,或者你能解决一个大致的解决方案是非常重要的吗?

如果您需要精确的解决方案,则有一个body of work专注于使用不同类型的约束进行聚类。您提到的约束可以在此框架中进行编码。但是,您现在应该将此方法扩展到具有特定大小的数据集。