首页 > 解决方案 > 如何指定集群的大小?

问题描述

有没有可以定义集群大小的集群算法(k-means,...)?

我有一大群人,我想制作每个 9 人的集群。

目前我使用同样大小的 k-means。但是,对于超过 100 人的数据,代码变得异常缓慢。

也许我可以设置一些参数来定义集群的大小?

标签: cluster-analysisk-means

解决方案


您可以轻松地修改该代码以使每个集群恰好使用 9 个元素(至少其中的数字可以被 9 整除)。您可能可以通过进行更多交换来进一步优化它,只重新计算必要的内容,集成许多其他更快的 k-means 算法而不是 Lloyd 算法的进步等。

但很明显,它不会针对大量集群进行扩展。

它只是不是一个聚类问题。您可能正在滥用算法来解决不同的问题,因此它不能很好地工作......而实际问题(可能是背包的一些变体,设置封面,装箱)几乎可以肯定是 NP-hard,所以你这样做反正有一个相当棘手的问题。我会采用快速贪婪的方法并使用几次尝试中最好的,然后最多做一些交换优化来微调结果。寻找优化文献,尝试将其表述为 ILP 或 QLP,并使用 ILP 或 QLP。QLP求解器等


推荐阅读