误正数Bloom过滤器

时间:2019-11-22 17:36:25

标签: python dataframe hash bloom-filter

我实现了具有3个散列函数的Bloom过滤器,现在我应该计算该过滤器中误报的确切数目(不可能)。有没有一种有效的方法来计算?过滤器中的项目数为2亿,位数组的大小为4亿

1 个答案:

答案 0 :(得分:0)

是的,这很简单。

计算“开”的位数,然后除以总位数。这将给您您的填充率。

查询时,所有早先插入的元素将命中“ on”位并返回正数。对于未插入过滤器的元素,命中“接通”位的概率为填充率。因此,使用3个哈希函数,您的错误率将为(fill_rate ^ 3)。

尽管0.5是使空间与错误率最大化的最佳填充率,但其他填充率也是可以的,但是它会占用太多空间或具有比所需更高的错误率。因此,最好使用4个散列函数占用更少的空间。这实际上取决于您的用例。你有什么要求您要寻找什么错误率?