移动查询点的K-最近邻居

时间:2013-10-30 19:49:47

标签: algorithm indexing machine-learning knn

我已经获得了n个固定点和m个查询点的坐标。我必须找到来自n个固定点的每个m个查询点的k-最近邻居。为每个查询点单独寻找距离是非常昂贵的。有没有一种有效的方法呢?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您问题的真实答案取决于众多因素。例如,如果您没有使用欧几里德距离 - 那么您就不能使用KDTrees。还存在缩放问题(注册了多少点?尺寸大小?“聚集”“等待”等待训练的时间,如果需要将值添加到集合中,等等。

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

答案 2 :(得分:0)

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