我正在阅读有关Count-Min Sketch数据结构的信息,该结构基于误差概率参数和公差参数给出了对点和范围查询的概率性答案。 例如,CM可以回答“项目x出现在数据流中的概率为10%的次数”的问题。
一个重击手的相关问题也出现了。在为HH问题实现最小堆时,我注意到各种研究论文都规定,只有当草图中项目的最小计数大于阈值时,我们才能插入堆中。
我的问题是,这是否意味着我们在概率上回答沉重的击球手问题?相应的问题是“概率为10%,哪个项目是数据流中第二常见的项目?”
答案 0 :(得分:0)
来自维基百科:
在数据流模型中,频繁元素问题是输出一个 一组元素,其组成比 流。多数问题是一个特殊情况,即确定 是否有任何值构成流的大部分。
更正式地说,固定一些正常数c> 1,让 stream为m,令fi表示流中值i的频率。 频繁元素问题是输出集合{i | fi> m / c }。
一些著名的算法是:
- Boyer–Moore多数投票算法
- Karp-Papadimitriou-Shenker算法
- 最小数量草图
- 粘性采样
- 错误计数
- 采样并按住
- 多级布隆过滤器
- 计算草图
- 草图引导采样
事件检测通常使用以下命令来检测数据流中的事件: 上面列出的重击球手算法:最频繁的项目和 使用这些算法之一确定其频率,然后 与上一个时间点相比最大的增长被报告为趋势。 可以通过使用指数加权移动来完善此方法 平均和方差以进行标准化。
是的,是的。 CMS可用于(以近似方式)确定频率,可用于回答HH问题。