前言
大数据统计中的频率估计问题,即求一个元素出现的次数。和Cardinality Estimation场景相似,面临着内存开销大的问题,不适合直接存储原始数据。本篇文章介绍解决这个问题的一个算法,Count-Min Sketch 。
算法
Count-Min Sketch 算法是在论文An Improved Data Stream Summary:
The Count-Min Sketch and its Applications中阐述的,下面介绍的算法流程及精度均参考自该论文,相关证明请参考原文。
流程
算法流程:
- 创建二维数组,count[d, w],每一位初始化为0。
- d个hash函数, h 1 h_1 h1 . . . h d h_d hd : {1 . . . n} → {1 . . . w}。
- 输入元素( i t i_t it, c t c_t ct),更新二维数组:count[ j j j, h j h_j h