目录
- 布隆过滤器主要有下面的参数:
- 结论
- 举例
布隆过滤器主要有下面的参数:
1.假设数据量为n,预期的失误率为p(布隆过滤器大小和每个样本的大小无关)。
2.根据n和p,算出BloomFilter一共需要多少个bit位,向上取整,记为m。
3.根据m和n,算出BloomFilter需要多少个哈希函数,向上取整,记为k。
4.根据修正公式,算出真实的失误率p_true。
结论
当k固定的时候,m/n越大,误判率越小
当m/n固定的时候,k越大,误判率越大
布隆过滤器只和样本量和失误率有关,与单样本大小无关
这里贴一个参考资料中m/n、k和False Positive Rate之间的关系图:
举例
假设n为100亿,p=0.0001
m≈1917亿 1917亿/8/1024/1024/1024约等于22.3G
k=13.4≈14
如果要的空间大,比原本的失误率还要小(当k固定的时候,m/n越大,误判率越小)