cluster-analysis - 如何指定集群的大小?
问题描述
有没有可以定义集群大小的集群算法(k-means,...)?
我有一大群人,我想制作每个 9 人的集群。
目前我使用同样大小的 k-means。但是,对于超过 100 人的数据,代码变得异常缓慢。
也许我可以设置一些参数来定义集群的大小?
解决方案
您可以轻松地修改该代码以使每个集群恰好使用 9 个元素(至少其中的数字可以被 9 整除)。您可能可以通过进行更多交换来进一步优化它,只重新计算必要的内容,集成许多其他更快的 k-means 算法而不是 Lloyd 算法的进步等。
但很明显,它不会针对大量集群进行扩展。
它只是不是一个聚类问题。您可能正在滥用算法来解决不同的问题,因此它不能很好地工作......而实际问题(可能是背包的一些变体,设置封面,装箱)几乎可以肯定是 NP-hard,所以你这样做反正有一个相当棘手的问题。我会采用快速贪婪的方法并使用几次尝试中最好的,然后最多做一些交换优化来微调结果。寻找优化文献,尝试将其表述为 ILP 或 QLP,并使用 ILP 或 QLP。QLP求解器等
推荐阅读
- java - AppCompatDelegate.setDefaultNightMode 在物理设备上不起作用
- java - 如何用多个对象解析这个json
- python - 在 macOS 上默认使用 Python3,但 pip 仍然使用 python 2.7
- r - 循环几列以创建一个新变量
- python - Python MemoryView '.cast()' 函数从网络大端格式到小端格式
- amazon-web-services - 如何在 AWS S3 中将两个清单组合到一个文件中?
- python - 如何将 24 小时划分为 96 个季度?
- postgresql - 在 Postgresql 中获取两个日期之间的工作日
- c++ - wxPanel 内的 wxMDIChildFrame
- mysql - 如何根据与该分组 SUM 的 AVG 进行比较的分组 SUM 进行选择