上一篇博客中讲述了使用 R a n d o m Random Random算法进行 q u a n t i l e quantile quantile估算,详情可见Random,本博客将讲诉另外一个 q u a n t i l e quantile quantile估算算法: T − d i g e s t T-digest T−digest,该算法理论基础可以参考Computing Extremely Accurate Quantiles Using t-Digest
算法
算法原理
该算法的思想是将输入数据表示缩减成簇的集合 { C i } 1 m \{C_{i}\}^m_1 { Ci}1m,每个簇表示为: ( C i , C c o u n t ) (C_i,C_{count}) (Ci,Ccount), C i C_i Ci表示该簇的中心,一般是等于簇中元素的平均值, C c o u n t C_{count} Ccount则是该簇中对应的元素的数量。簇的大小极大影响了算法的准确率,假设簇的较大,则会导致结果误差偏大;假设簇的大小较小,则会导致结果准确,但另一方面计算的复杂度对增加。对于一般的问题而言,我们更加关注位于两端的 q u a n t i l e quantile qua