python sklearn KDTree与haversine distan

2024-05-21 00:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试创建一个WGS84坐标的KD树,并在一定半径范围内找到邻居

from sklearn.neighbors.dist_metrics import DistanceMetric
from sklearn.neighbors.kd_tree import KDTree    
T = KDTree([[47.8665, 8.90123]], metric=DistanceMetric.get_metric('haversine'))

但得到以下错误:

^{pr2}$

如何在KD树中使用haversine距离?在


Tags: fromimporttreedist半径neighborssklearnmetric
2条回答

k-d-树(据我所知)只能用于Minkowski规范。在

还有其他的树,如sklearn的ball tree,或ELKI中的covertree,它们使用Haversine距离,因为它是一个度量。在

KDTree.valid_metrics

输出-

['p',
 'l1',
 'chebyshev',
 'manhattan',
 'minkowski',
 'cityblock',
 'l2',
 'euclidean',
 'infinity']

这说明,不能将haversine与KDTree一起使用。它背后的原因是haversine距离给你Orthodromic距离,这是当你的点在球体中表示时使用的距离度量。但是在kdTree中,这些点被组织在一个树中,这使得它不能被使用。在

相关问题 更多 >