如果一个数据流,其中m为数据流的大小,。我们可以定义每个
元素出现的次数为,其中为第i个元素出现的次数。这篇博客就是讲下的估计问题
(Frequency Estimation)。在数据流基本问题--确定频繁元素里面的方法也可以对元素出现次数进行估计。但是这个
方法如果该这种方法处理了两个数据流,无法对处理的结果进行汇总得到两个数据流合并后的结果进行估计。而且该
方法只能针对vanilla model,无法处理元素可能离开的情形。下面介绍的sketch方法可以很好的处理这两个缺点。数据
流的sketch是对输入的一个线性转换。这些方法和Bloom Filter非常像,只不过在Bloom Filter中存储的是0/1,这里存储
是计数。
一、Basic Sketch
1、算法步骤
这个方法是后面Count Sketch的原型,包含了它的大部分想法。算法需要一个计数的数组(代表了Sketch的意思)和
两个哈希函数。哈希函数h将元素哈希到1到k中,k正好是计数数组的大小。哈希函数g的作用就是为了产生无偏估计。
处理