gpt4 book ai didi

cluster-analysis - 使用自定义距离度量对纬度/经度对进行聚类

转载 作者:行者123 更新时间:2023-12-04 08:34:57 27 4
gpt4 key购买 nike

我正在尝试为 scikit-learn DBSCAN 实现指定一个自定义聚类函数:

def geodistance(latLngA, latLngB):
print latLngA, latLngB
return vincenty(latLngA, latLngB).miles

cluster_labels = DBSCAN(
eps=500,
min_samples=max(2, len(found_geopoints)/10),
metric=geodistance
).fit(np.array(found_geopoints)).labels_

但是,当我打印出距离函数的参数时,它们根本不是我所期望的:
[ 0.53084126  0.19584111  0.99640966  0.88013373  0.33753788  0.79983037
0.71716144 0.85832664 0.63559538 0.23032912]
[ 0.53084126 0.19584111 0.99640966 0.88013373 0.33753788 0.79983037
0.71716144 0.85832664 0.63559538 0.23032912]

这是我的 found_geopoints 数组的样子:
[[  4.24680600e+01   1.40868060e+02]
[ -2.97677600e+01 -6.20477000e+01]
[ 3.97550400e+01 2.90069000e+00]
[ 4.21144200e+01 1.43442500e+01]
[ 8.56111000e+00 1.24771390e+02]
...

那么为什么不是距离函数纬度经度对的参数呢?

最佳答案

我似乎找到了一种解决方法,可以使用以下方法计算距离矩阵:
http://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.pairwise_distances.html
然后将其用作 DBSCAN(metric='precomputed').fit(distance_matrix) 的参数

关于cluster-analysis - 使用自定义距离度量对纬度/经度对进行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23420605/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com