没有找到任何相关内容,所以我希望我的问题能在这里找到答案。
问题集
一切都属于采用布隆过滤器的隆起采矿。
我有数以千计的布隆过滤器,其最大容量为M,每个过滤器N中的项目数量。
对于 N在任何阶段都不会达到M 的情况。
假阳性的可能性P - 0.001%
在我的问题中,我需要从几个到±5个增量交叉点逐步执行,
喜欢A∩B∩C∩D...
这样的操作将针对不同长度的不同组合组合的任意大数(或小,取决于我的成本函数)执行
A∩B; ∩J∩K; ∩W∩...∩Z;等
所有收到的(新的)交叉点作为bloomfilters(BF∩i),将由联合操作组合,
BF1 U BF2 U ... U BFi
问题:
布隆过滤器上的这些操作是否会影响最终的组合布隆过滤器(多个交叉点的并集)的误报率,因为我可能有很多这样做?
我如何估计我的病例可能的准确性/精确度损失(或者说假阳性率增加)?
非常感谢相关材料的任何暗示或指示!
答案 0 :(得分:2)
下面的讨论假定所有使用相同参数(容量和散列)的Bloom过滤器都是使用相同的参数创建的。如果情况并非如此,那么你的问题就更难回答了。
两个布隆过滤器 A 和 B 的交集将导致布隆过滤器最多具有较小的条目数两个。也就是说,如果 A 的条目少于 B ,则A∩B的结果不能包含比 A < strong>包含。假设生成的Bloom过滤器使用与 A 相同的参数构建(即容量和散列),则结果中的误报率不能高于 A 中的误报率。或 B ,因为结果不能包含比两者中较小者多的项目。
两个Bloom过滤器的并集,再次假设所有都使用相同的参数创建,始终的误报率至少与具有最高误报率的Bloom过滤器一样高。也就是说,如果 B 的FP率高于 A 的FP率,那么 AUB 的FP率将始终大于或等于到FP率 B 。原因是生成的Bloom过滤器总是至少具有与两者中较大者一样多的项目。
重要的是要了解当您构建Bloom过滤器以容纳给定数量的项目时,目标误报率适用于您将多个项目添加到Bloom过滤器的情况。例如,如果您创建Bloom过滤器以保存FPF为0.0001的1,000,000个项目,那么在您向Bloom过滤器添加1,000,000个项目后,您可以预期误差率为10,000(10,000)。但是,如果您只向Bloom过滤器添加100,000个项目,则实际的误报率会低得多。
只要您不超过布隆过滤器的设计容量,误报率就不会超过设计值。