性能指标
可以权衡Bloom过滤器的三个性能指标:计算或执行时间(对应于散列函数的数量k),过滤器的大小(对应于位数的m)和错误概率(对应于散列函数)。假阳性率
f=(1−p)k)
布隆过滤器(BF)引入了容错功能,以增强查找性能和空间效率。Bloom过滤器返回true或false。因此,布隆过滤器的结果属于以下任一类别:真正,假正,真负和假负。布隆过滤器包含误报的最大数量。错误肯定和错误否定会导致系统开销。布隆过滤器实现一个数组来存储元素的信息。误报定义如下:如果Bloom过滤器在hold元素时返回true。同样,否定负也定义如下:Bloom过滤器在hold元素时返回false。因此,布隆过滤器属于概率数据结构。
布隆过滤器的大小和哈希函数的数量
我们知道,如果Bloom筛选器的大小太小,很快所有的位字段都将变为1,然后我们的Bloom筛选器将为每个输入值返回“falsepositive”。因此,布隆过滤器的尺寸是一个非常重要或重要的决定。较大的过滤器包含较少的误报,而较小的包含更多。
因此,我们可以得出结论,布鲁姆滤波器的大小完全基于“误报率”。
另一个重要参数是确定我们将使用的哈希函数的数量。我们实现的哈希函数越多,bloom过滤器将越慢,并且其填充越快。但是,如果我们的数量太少,我们可能会因许多误报而受苦。
我们可以使用以下公式根据过滤器的大小m,哈希函数的数量k和插入的元素数量n来计算误报率p
p≈(1-e(-kn/m))k
实际上,我们实际上最需要确定我们的m和k。因此,如果我们自己设置或固定容错值p和元素数n,则可以实现以下公式来计算这些参数
m=(-nlnp)/(ln2)2
k=(m/n)*(ln2)