如何将两点(纬度、经度)的地理空间距离转换为相似性度量

How to convert the geospatial distance of two points (lat, lon) to a similarity measuremnt

我正在尝试使用经纬度计算地球上两点之间的相似度。我已经通过 geopy 包中的 Vincenty 距离计算了它们的距离。我想将此距离转换为相似度测量(理想范围为 0 到 1),使得相似度为 1 的较近点和相似度接近 0 的彼此远离的点。有什么方法可以进行这种转换吗?这有可能使转换顺利地从 0 到 1 吗?谢谢!

一个简单的答案是定义极值,然后在它们之间进行线性插值。所以你会

  • if dv == 0, similarity = 1 (同点)
  • if dv == MAX, similarity = 0(对映点;您可以取 20 000 000 米作为 MAX 的近似值,或使用您喜欢的精确值)
  • 否则,similarity = (MAX - dv) / MAX

除了线性插值之外,您还可以使用其他插值法 - 但基本思想是成立的:这比您想象的要容易。任何单调且连续的函数 f 使得 f(0) == 0 && f(1) == 1 将使 f((MAX - dv) / MAX) 与您的约束条件相匹配。