-1

我有纬度和经度形式的接送地点。我正在使用层次聚类根据他们的取货地点对地点进行聚类。

Zd = linkage(squareform(pickDistance), method= "ward", metric = "haversine")
cld = fcluster(Zd, 30, criterion = 'distance')

在这里,“pickDistance”是使用所有拾取纬度创建的邻近矩阵。使用形成的每个集群的距离矩阵,并获取拾取和放置位置,or 工具的路由求解器为每个集群提供多辆车的路线。

当我增加 cluster_distance 时,求解器继续执行,最后我取消执行并重置 cluster_distance 和 max_distance 直到我得到路线。

我想在这里了解一些事情:

  • 根据您对地理位置进行聚类,如何设置最佳 cluster_distance 以及最佳聚类方法是什么?

  • 路由求解器中的 max_distance 参数如何工作?而且,max_distance 是针对每辆车还是针对它将使用的所有车辆?

  • 有什么方法可以使路由求解器的 cluster_distance 和 max_distance 参数动态化,使其适用于集群中的任意数量的位置?

请帮助。

4

1 回答 1

-1

在这种情况下,K-means 应该是正确的。由于 k-means 尝试仅根据对象之间的欧几里德距离进行分组,因此您将获得彼此靠近的位置集群。

要找到最佳聚类数,您可以尝试绘制组内平方和距离的“弯头”图。这可能会有所帮助!(http://nbviewer.ipython.org/github/nborwankar/LearnDataScience/blob/master/notebooks/D3.%20K-Means%20Clustering%20Analysis.ipynb

于 2019-10-23T14:11:58.480 回答