python - 如何使用 DBSCAN 找到集群成员之间的最大/最小距离?

标签 python pandas dbscan

所以我有一个聚类任务,我必须创建每个点之间的距离不超过 30 公里的聚类。我只有经度和纬度。所以我使用了 DBSCAN 算法(得到了我需要的结果),将纬度和经度点转换为以公里为单位的距离,并得到了 11 个簇。在那里你可以看到它们是如何绘制的 here .

正如您所看到的,有些集群只有 1 分。但无论如何,我的问题是如何找到聚类点之间的最大和最小距离?换句话说,我需要找到彼此最接近的两个聚类点和彼此最远的两个点并找到它们的距离。我找到了一些其他集群算法的解决方案,但没有找到 DBSCAN 的任何解决方案。

最佳答案

您必须自己计算它们,因为 DBSCAN 不使用成对距离。

有计算两两距离的函数,然后你可以简单地调用max()min()(这里要注意不要包括对角线) )。

如果这太慢,您可能需要研究使用三角形不等式的边界技术。对于最远点,如果可能的话,从边界点开始,找到距该边界点最远的点;然后再一次。这将为您提供良好的候选者以进行进一步的搜索。

关于python - 如何使用 DBSCAN 找到集群成员之间的最大/最小距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59352685/

相关文章:

machine-learning - 使用sklearn DBSCAN模型对新条目进行分类

Python - 小于或等于比较两个列表?

python - xticks matplotlib 中的四舍五入日期时间

python - 根据长度向 df.Column 中的字符串添加尾随 0

python - 根据具有重复值的列表重新排序 Pandas 数据框

cluster-analysis - 如何在 ELKI DBSCAN 结果中识别我的对象?

python - 为什么使用 difflib.ndiff 会得到杂散元素?

python - 在Excel中插入日期公式得到#name?用python插入后出错

python - 如何使用 `pandas.cut()` 根据被分箱列以外的列分箱数据?