2017-04-24 2 views
1

BloomFilter를 구현 중이며 [0, N] 개 요소를 추가 한 다음 필터에 (n, oo) 개의 요소가 포함되어 있는지 확인하여 오탐을 계산해야합니다. 잘못된 양의 정확한 수를 계산하는 데 문제가 있습니다. 필자의 루프에서는 매번 possiblecontains()가 필터에 (n, oo)의 요소를 포함하고 있다고 말하면서 오 탐지에 추가합니다. 하지만 16 개 요소의 필터가 예를 들어 나는 10 잘못된 반응을 얻고 나는이 라이브러리를 사용했습니다 어떤 도움이블룸 필터 가짜 긍정

for (int numNotInFilter =size+1; numNotInFilter<2*size; numNotInFilter++) 
{ 
       if (myBloom.possiblyContains((const uint8_t*)(&numNotInFilter), sizeof(int))) 
     { 
      numOfFalsePositives+=1.0; 
     } 
} 
    double RateOfFalsePositives = (numOfFalsePositives)/((2 * size) - 1); 
+0

'RateOfFalsePositives'가 0과 1 사이에 있다고 생각 했습니까? 정수형입니다. – aschepler

+0

좋아요. 내 루프가 맞습니까? –

답변

1

을 주시면 감사하겠습니다 0

같은 잘못된 반응의 속도 bloom filters를 처리 할 때 과거가 발생 오탐 (false positive)이 계산 예입니다 : 내가 예에서 일어나고있는 뭐죠의 무엇을 말할 수에서

https://github.com/ArashPartow/bloom/blob/master/bloom_filter_example02.cpp

, FALS의 속도 긍정적 인 확률은 만나는 오 탐지의 수를 기반으로 할뿐만 아니라 블룸 필터 크기의 함수이기도합니다.

관련 문제