2010-07-16 43 views
5

感謝那些已經回答我以前的問題,並得到了我這麼多。局部敏感散列 - 尋找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:大約可以使用多少個表?

回答

2

你可能想看看「MetaOptimize」 - 像機器學習堆棧溢出
http://metaoptimize.com/qa

你的問題是不是一個真正的蟒蛇或編程問題,即社會可能幫助更多一點。