에 대한 확률 및 값 찾기 이전 질문에 답한 사람에게 감사의 말을 전합니다.Locality Sensitive Hashing - R
저는 약 25,000 개의 벡터 테이블을 가지고 있습니다. 각 테이블의 치수는 48이며 값은 0-255입니다.
가까운 이웃 또는 가장 가까운 이웃 점을 찾기위한 지역적으로 민감한 해시 (http://en.wikipedia.org/wiki/Locality-sensitive_hashing) 알고리즘을 개발하려고합니다.
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)"부분이 있습니까
나의 현재 LSH 기능이 있습니다 . 이것은 안정 분포에서 독립적으로 선택된 엔트리를 가진 "차원 벡터를 생성하기 위해 사용하고있는 random.normalvariate (http://docs.python.org/library/random.html#random.normalvariate) 함수에 내장 된 비단뱀입니다. 내 실험에서, 값이별로 중요하지 않은 것 같습니다.
B : 위키 피디 문서의 맨은 상태 :
경우 D (P, Q) < = R 후 확률로 H (p) = h를 (Q)은 적어도 P1
경우 D (P, Q)> = CR은, 다음 P2
가
여기 언급 된 R 값이 최대 확률로 H (p) = h를 (Q) 인 안정하에 언급 된 R 값 배포 섹션. (http://en.wikipedia.org/wiki/Locality-sensitive_hashing#Stable_distributions)
C : 이전 질문 (B)와 관련이 있습니다. 나는 hasing 함수에서 더 높은 R 값을 사용하여 내 벡터를 더 작은 범위의 해시 값에 매핑한다는 것을 발견했습니다. 내 R 가치를 최적화 할 수있는 방법이 있습니까?
D : 대략 몇 개의 테이블을 사용할 수 있습니까?