感謝那些已經回答我以前的問題,並得到了我這麼多。局部敏感散列 - 尋找R的概率和值
我有一張大約25,000個向量的表格,每個向量有48個維度,值範圍從0-255。
我正在嘗試開發一種用於查找近鄰或最近鄰點的局部敏感散列算法(http://en.wikipedia.org/wiki/Locality-sensitive_hashing)。
我現在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)
我的問題,在這一點上是:
答:是否有最佳值 「normalvariate(10,4)」 我的代碼部分。這是python在random.normalvariate(http://docs.python.org/library/random.html#random.normalvariate)函數中構建的,我正在使用它來生成「d維矢量,其條目從穩定分佈中獨立選擇」。從我的試驗來看,這些價值似乎並不太重要。
B:在維基百科文章的頂部它指出:
如果d(P,Q)< = R,則h(P)= H(q)的概率至少P1
如果d(p,q)> = CR,則h(p)= H(q)的概率爲至多P2
在此也提及的R值下穩定提及的R值分配部分。 (http://en.wikipedia.org/wiki/Locality-sensitive_hashing#Stable_distributions)
C:與我以前的問題(B)相關。我發現在我的hasing函數中使用更高的R值可將我的向量映射到更小範圍的散列值。有沒有辦法來優化我的R值。
D:大約可以使用多少個表?