pdf文档 Cardinality and frequency estimation - CS 591 K1: Data Stream Processing and Analytics Spring 2020

630.01 KB 69 页 0 评论
语言 格式 评分
英语
.pdf
3
摘要
文档介绍了数据流处理中的基数估计和频率估计方法,重点讨论了Counting Bloom Filter和Count-Min Sketch两种概率数据结构。Counting Bloom Filter通过多个哈希函数和计数器数组来估计频率,适用于大数据流且空间效率高。Count-Min Sketch则利用多个哈希表和计数器,提供频率上界的最小值估计,其准确性和空间利用率在特定条件下优于传统方法。文档还介绍了在实际应用中的使用案例,如检测DDoS攻击和计算趋势话题。
AI总结
《Cardinality and Frequency Estimation - CS 591 K1: Data Stream Processing and Analytics Spring 2020》 本文档由波士顿大学的Vasiliki Kalavri授课,主要围绕数据流处理中的基数估计和频率估计展开,重点介绍了相关的数据结构和算法。 --- ### 1. **计数唯一元素** - 需要存储的计数器数量与元素数量相关: - 每个计数器需要记录更大的值,因此需要分配的位数增加。 - 例如,记录高达200的值需要log2(200) ≈ 4.32位/计数器。 - 空间需求: - 假设目标是估算高达23^30的基数(230元素),准确度为4%,需要30位哈希映射。 - 需要1024个计数器(m=2^10),每个计数器分配5位(log2(200)=4.32,向上取整)。 --- ### 2. **计数布隆滤波器(Counting Bloom Filter)** - **特点**:一种空间高效的概率数据结构,用于数据流中的频率估计和热点检测。 - **工作原理**: - 使用多个哈希表和计数器数组。 - 每个元素通过多个哈希函数映射到不同的计数器,更新相应的计数值。 - 适用于高独立重复试验,通过多个哈希函数减少误差。 - **优点**:空间效率高,但存在计数器过估计的问题。 --- ### 3. **Count-Min Sketch** - **特点**:用于频率估计的数据结构,通过多个哈希表和计数器数组实现。 - **工作原理**: - 每个元素通过多个哈希函数映射到多个计数器,记录各自的频率。 - 频率估计取多个计数器中的最小值,以减少过估计误差。 - **公式**: - 对于元素x,计算每个哈希表中的计数器值f[j],然后取min(f[1], f[2], ..., f[p])。 --- ### 4. **计算Top-K(热点元素)** - **方法**: - 增加计数器N,记录到目前为止的元素总数。 - 使用堆X*存储至多k个潜在热点及其频率估计值。 - 通过阈值f*=N/k判断元素是否为热点。 - 对于每个元素x,更新计数器并估算其频率。 - **应用场景**: - 例如,检测DNS DDoS攻击时,通过查询二级域名的热点趋势判断异常行为。 --- ### 5. **应用案例** - **检测DNS DDoS攻击**: - 通过分组查询子域名,分析热点域名,发现异常子域名分布。 - 警报机制触发时表示可能存在攻击。 - **热门话题计算**: - 例如,Twitter分析每日5000亿条推文中的话题标签(hashtag)频率变化,识别“趋势”话题。 --- ### 总结 本文档介绍了数据流处理中常用的基数估计和频率估计方法,包括计数布隆滤波器和Count-Min Sketch等数据结构及其应用场景。这些方法在空间和时间效率上具有优势,适用于大规模数据流处理场景,如网络攻击检测和实时热点分析。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 62 页请下载阅读 -
文档评分
请文明评论,理性发言.