基数估计之HyperLogLog算法

参考资料:

  1. 基数估计之HyperLogLog算法
    问题一:抛硬币实验:连续抛硬币,直到出现正面停止。得到抛的次数K。这样的实验重复n次,则n=2^kmax;这个也很好理解。如果kmax是1000,即在某次实验中出现了连续1000次的反面,那我有理由相信,你肯定进行了很多很多很多次实验才得到这个结果的。
    这个例子延申到基数统计上:每个元素经过哈希之后,实际上去重了(同一个元素的hash结果是相同的,不同元素的hash结果可能相同)得到一个01字符串。这个字符串的前缀0的个数,表示一次抛硬币实验中的k。这个k的最大值反应了抛硬币实验的次数,也就是整个数据流的基数。
  • Linear Counting
  • Flajolet-Martin
  • LogLog Counting(LLC)算法
  • HyperLogLog(HLL)算法
posted @ 2021-09-27 21:09  没有任何出路  阅读(57)  评论(0)    收藏  举报