我尝试创建一个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距离?在
k-d-树(据我所知)只能用于Minkowski规范。在
还有其他的树,如sklearn的ball tree,或ELKI中的covertree,它们使用Haversine距离,因为它是一个度量。在
KDTree.valid_metrics
输出-
这说明,不能将
haversine
与KDTree一起使用。它背后的原因是haversine
距离给你Orthodromic距离,这是当你的点在球体中表示时使用的距离度量。但是在kdTree中,这些点被组织在一个树中,这使得它不能被使用。在相关问题 更多 >
编程相关推荐