2010-07-16 12 views
5

에 대한 확률 및 값 찾기 이전 질문에 답한 사람에게 감사의 말을 전합니다.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 : 대략 몇 개의 테이블을 사용할 수 있습니까?

답변

2

기계 학습을위한 스택 오버플로와 같은 "MetaOptimize"를 확인하는 것이 좋습니다.
http://metaoptimize.com/qa

귀하의 질문은 정말 파이썬이나 프로그래밍 질문하지 않고, 그 사회는 좀 더 도움을 줄 수 있습니다.