【问题标题】:K-nearest neighbors for a moving query point移动查询点的 K 最近邻
【发布时间】:2014-02-09 05:39:46
【问题描述】:

我得到了 n 个固定点和 m 个查询点的坐标。我必须从 n 个固定点中找到 m 个查询点中每个查询点的 k 最近邻。为每个查询点单独查找距离是非常昂贵的。有没有有效的方法来做到这一点?

【问题讨论】:

  • 数据的维度很重要。

标签: algorithm indexing machine-learning knn


【解决方案1】:

有针对此类问题的快速索引结构,例如 KD TreeBall Tree。特别是 - scikit-learn (sklearn) 在他们的 knn 例程中实现它们 (http://scikit-learn.org/stable/modules/neighbors.html)

【讨论】:

    【解决方案2】:

    您问题的真正答案取决于许多因素。例如,如果您不使用欧几里德距离 - 那么您就不能使用 KDTrees。还有缩放问题(注册了多少点?维度大小?“集群”)您可以等待多长时间的训练,如果需要将值添加到集合中,等等。

    JSAT 中提供了一些不太常见但仍然有用的算法。这包括VP TreesRBCLSH。 (偏见警告,我是JSAT的作者)

    【讨论】:

      【解决方案3】:

      如果您要计算平方和的平方根以获得距离,请尝试删除计算密集型的平方根。只需找到平方距离最近的那些 - 它们是相同的点。

      【讨论】:

      • 为什么要标记下来?这是对这个问题的完全合理的答案。
      • 我同意——否决者请详细说明他对这个答案的反对意见
      猜你喜欢
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 2014-04-12
      • 2011-12-06
      • 2018-04-08
      • 2014-05-14
      相关资源
      最近更新 更多