所以我有一个聚类任务,我必须进行聚类,使每个点之间的距离不超过30公里。我只有经度和纬度。因此,我为此使用了DBSCAN算法(得到了我需要的结果),将纬度和经度点转换为以千米为单位的距离,得到了11个聚类。在那里您可以看到它们的绘制方式 here。
如您所见,某些群集只有1点。但是无论如何,我的问题是如何找到聚类点之间的最大和最小距离?换句话说,我需要找到两个最接近的聚类点和两个最远的聚类点并找到它们的距离。我找到了其他群集算法的一些解决方案,但没有找到DBSCAN的任何东西。
答案 0 :(得分:1)
您必须自己计算它们,因为DBSCAN不使用成对距离。
有些函数可以计算两两之间的距离,然后您可以简单地调用max()
和min()
(这里要注意不要包含对角线)。
如果这太慢,则可能需要使用三角不等式研究边界技术。对于最远的点,如果可能的话,从边界点开始,找到该点的最远点。然后再一次。这将为您提供良好的候选人,以进行进一步的搜索。