正在圍繞着CountSketch數據結構及其相關算法進行包裝。它似乎是查找流式數據中常見元素的一個很好的工具,而且它的附加特性使得它可以發現頻繁變化的一些有趣屬性,可能類似於Twitter用於趨勢主題的內容。瞭解計數草圖數據結構和相關算法
paper有些難以理解的人已經遠離更多的學術方法一段時間,而previous post這裏確實幫助了一些,對我來說,至少它仍然留下了不少問題。
據我瞭解,計數草圖結構類似於布隆過濾器。然而,哈希函數的選擇讓我感到困惑。該結構是N乘M表,其中N個散列函數具有M個可能的值,以確定要改變的「桶」,以及針對每個N的「成對獨立」的另一個散列函數s
散列是否從通用散列族,說h(x)=((ax + b)%some_prime)%M?
如果是這樣,那麼返回+1或-1的s散列在哪裏?從一個桶中減去的原因是什麼?
如果添加foo時,一半桶獲得-1,一半獲得+1,那麼foo的ESTIMATE函數返回的中位數不會趨於0嗎? – Peck 2012-01-05 12:28:11
的確,沒有任何信息的條件限制,平均計數爲0.但現在確定一個單一的計數,其平均值確實爲0.現在考慮'foo'事件,你知道'foo'的運動方向。在知道'foo'方向的條件下,你對'foo的方向有偏見,並且估計值從0到該方向的程度,你相信'foo'的數量。 – 2012-01-05 16:12:54
中位數的內部對實際的事物有一個偏差,中位數只是擺脫了很多方差。 – 2012-01-05 16:24:58