引用E2LSH手册(关于这个特定库并不重要,对于一般的NN问题,这个引用应该是正确的):
E 2LSH也可用于解决最近邻问题,其中, 给定查询q,数据结构需要报告点 在P中最接近q。这可以通过创建几个R-near来完成 邻居数据结构,R = R1,R2 ,. 。 。 Rt,Rt应该在哪里 大于从任何查询点到其的最大距离 最近的邻居。然后可以通过恢复最近的邻居 按照不断增加的顺序查询数据结构, 每当找到第一个点时停止
有人可以改一下吗?我没有使用R-near邻近方法找到最近邻居的过程。
答案 0 :(得分:1)
我将提供一个例子,它应该清理一下。假设我们的数据集只包含一个点p
和一个查询点到达q
。我们假设 * p
和q
的距离为3,9。
现在,通过使用E2LSH $ ,我可以创建一个解决R-最近邻居问题的数据结构,即它将回答半径R内的是(并获取点)如果不存在这样的问题,它将回答否。
假设我选择构建5种类型的数据结构,从R = 1到5开始。在我们看来,这是我们到目前为止所做的:
所以现在记住,d(p,q)= 3,9,因此我们期望询问使用R = 4构建的数据结构,并为我们找到查询点q
。
现在让我们假装我们不知道d(p,q),所以我们从我们选择的最小半径开始搜索,那就是1.所以,我们问,Radius中是否有任何东西(等于1)数据集?不!
从R = 2?没有!
从R = 3?没有!
从R = 4?是的,那是q
!所以现在我们完成了。 4是你在问题中提到的R t 。
* 这是一个强有力的假设,E2LSH 因为必须让用户输入参数R而遭受,因为通常我们不知道R应该具有什么值,太大而且我们会浪费空间和时间,太小,我们不会找到我们的查询!
$ 我在Ilya Razenshteyn的主页上听说现在比E2LSH更现代了。