与特定规模的组聚类

Posted

技术标签:

【中文标题】与特定规模的组聚类【英文标题】:Clustering with Specific Sized Groups 【发布时间】:2014-06-28 14:14:46 【问题描述】:

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

基本上,给定 n 个数据点和特定大小 k 的固定组,根据某些分类器找到点到集合的最佳分布,这将有望最小化给定组中每个点的分类器距离。

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

【问题讨论】:

我能想到的是实现一个“饥饿”机制。如果分配给集群的数据点过多,超过临界值,则集群将变得“臃肿”并分成两个(K-means)或缩小尺寸(降低高斯混合中的标准偏差)。相反,如果质心变得“饥饿”,则应将其移除或扩大尺寸。缺点是这不能精确地达到预期的集群大小,并且还存在潜在的“全球饥饿”问题。 Group n points in k clusters of equal size 的可能重复项 【参考方案1】:

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

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

还可以看看约束聚类算法;虽然这些算法通常只支持“必须链接”和“不能链接”约束,而不支持大小约束。

您应该能够进行类似的修改,首先指定组大小,然后随机分配点,只要您的目标函数有所改善,就可以交换集群成员;类似于 k-means / k-medoids。由于您可能会陷入局部最小值,因此请重新启动多次并仅保持最佳状态。

另请参阅前面的问题,例如 K-means algorithm variation with equal cluster size 和 Group n points in k clusters of equal size

【讨论】:

【参考方案2】:

您提出的问题是一个组合优化问题。知道您是否需要一个精确的解决方案,或者您可以接受一个近似的解决方案,这一点非常重要?

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

【讨论】:

以上是关于与特定规模的组聚类的主要内容,如果未能解决你的问题,请参考以下文章

聚类聚类算法(K均值层次聚类DBSCAN)的对比与评估

聚类算法---引言

分类与监督学习

11.19分类与监督

spark机器学习-聚类

Kmean聚类聚类中的***术语