Python 局部敏感散列-R的查找概率和值

Python 局部敏感散列-R的查找概率和值,python,nearest-neighbor,Python,Nearest Neighbor,感谢那些回答了我之前的问题并让我走到这一步的人 我有一个大约25000个向量的表格,每个向量有48个维度,值从0到255不等 我正在尝试开发一种对位置敏感的Hash()算法,用于查找近邻点或最近邻点 我当前的LSH功能是: def lsh(vector, r = 1.0, a = None, b = None): if not a: a = [normalvariate(10, 4) for i in range(48)] if not b: b

感谢那些回答了我之前的问题并让我走到这一步的人

我有一个大约25000个向量的表格,每个向量有48个维度,值从0到255不等

我正在尝试开发一种对位置敏感的Hash()算法,用于查找近邻点或最近邻点

我当前的LSH功能是:

def lsh(vector, r = 1.0, a = None, b = None):
    if not a:
        a = [normalvariate(10, 4) for i in range(48)]
    if not b:
        b = uniform(0, r)
    hashVal = floor((sum([a[i]*vector[i] for i in range(48)]) + b)/r)
    return int(hashVal)
在这一点上,我的问题是:

A:我的代码中的“normalvariate(10,4)”部分是否有最佳值。这是在random.normalvariate()函数中构建的pythons,我正在使用它生成“d维向量,其条目独立于稳定分布选择”。从我的实验来看,这些值似乎并不重要

B:在维基百科文章的顶部,它指出:

如果d(p,q)=cR,那么h(p)=h(q),概率最大为P2

这里提到的R值也是稳定分布部分提到的R值。()

C:与我之前的问题(B)相关。我发现在hasing函数中使用较高的R值可以将向量映射到较小的散列值范围。有没有办法优化我的R值


D:一次大概可以使用多少张表?

给感兴趣的人。我发现了这篇文档(它对如何在高维空间中使用LSH进行了非常详细但复杂的解释)。

您可能想查看“元优化”——比如机器学习的堆栈溢出。

您的问题实际上不是python或编程问题,该社区可能会提供更多帮助