我有73个GPS坐标,我想分成2-3个30组。实现此目的的最佳算法是什么?
答案 0 :(得分:0)
首先,我认为scikit-learn comparing different clustering algorithms的这篇帖子会有所帮助。频谱聚类,DBSCAN,高斯混合模型等在所有情况下都适用,并且对它们的概述实际上不在StackOverflow的范围内。
总而言之,没有用于群集的“最佳”算法。这在很大程度上取决于您希望集群具有的属性。例如
这是大多数涉及数据的常见主题。集群本身并不是一个目标(如果确实如此,则可以将数据分成2-3个组并完成)。您正在尝试通过集群解决其他问题。其他问题。一旦缩小了其他问题的范围,就可以根据所需的性能特征轻松选择聚类算法。
即使该选择超出了您当前的经验,明确的规范也将使您的问题对将来的用户更有价值,并使我们能够提供实际上可以帮助您的答案。
答案 1 :(得分:0)
要找到确切的最佳解决方案可能很困难,因为它与背包问题相似。幸运的是,您只有很少的积分,因此您可以负担得起昂贵的搜索费用。
为什么不为此使用通用约束求解器?指定您的约束(每个点都是一个分区的成员,每个分区是2-3个对象)和质量(最小距离)。然后让优化器执行它的魔力吗?
在这里聚类对您无济于事,因为聚类算法通常将空间结构放在首位,并且不允许对聚类大小进行约束。因此,如果您运行例如k均值,它将将产生更大或更小的簇。 如果您有四个零距离的点怎么办?任何群集都会将这四个群集放在同一个群集中!