-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
什么是Sketch? #697
Comments
Sketch是概率数据结构的统称 |
当面临海量数据时,完全存储这些数据几乎是不可能的,或者是没有必要的,因此,人们提出了一些概率数据结构,期望能用一个较少的空间来近似表示完整的数据集,在能够容忍误报的情况下,Sketch带来了空间和时间方面明显的性能提升,已被广泛地应用到许多应用场景 |
在数据流分析或大规模数据处理的语境下,Sketch 是一种利用随机化和哈希思想来对大量数据进行紧凑表示(compressed representation)或近似统计的算法/数据结构。它能在只占用远小于原数据规模的空间的前提下,对数据的某些特征(如出现频率、基数、相似度、分布等)给出近似且可控误差的估计。 以下从几个方面来理解 Sketch 的本质: 1. 为什么需要 Sketch?1.1 大数据场景的挑战
1.2 随机化与近似的优势
2. Sketch 的核心思路2.1 哈希分桶
2.2 多重哈希与碰撞削减
2.3 子采样 / 指标变量
3. 常见的 Sketch 类型3.1 CountMin Sketch
3.2 Count Sketch
3.3 AMS Sketch(Alon, Matias, Szegedy)
3.4 HyperLogLog / Flajolet-Martin
3.5 MinHash
4. Sketch 的优点与局限4.1 优点
4.2 局限
5. 应用场景
6. 小结
总之,Sketch 的核心价值在于:
这就是 Sketch 的本质与意义所在。 |
No description provided.
The text was updated successfully, but these errors were encountered: