#统计学 #分位数 #tdigest

tdigest-rs

Rust 中的 T-Digest 算法

2 个版本

0.2.5 2023 年 8 月 19 日
0.2.4 2023 年 8 月 19 日

#2082算法

Apache-2.0

25KB
545

Rust 中的 T-Digest 算法

Build Status codecov

此实现遵循 Facebook Folly 的 实现

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
tdigest = "0.2"

然后您就可以使用了。如果您使用的是 Rust 2015,您还必须在 crate 根目录中将 extern crate tdigest 添加到您的 crate 中。

示例

use tdigest::TDigest;

let t = TDigest::new_with_size(100);
let values: Vec<f64> = (1..=1_000_000).map(f64::from).collect();
let t = t.merge_sorted(values);
let ans = t.estimate_quantile(0.99);
let expected: f64 = 990_000.0;
let percentage: f64 = (expected - ans).abs() / expected;

assert!(percentage < 0.01);

lib.rs:

Rust 中的 T-Digest 算法

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
tdigest = "0.2"

然后您就可以使用了。如果您使用的是 Rust 2015,您还必须在 crate 根目录中将 extern crate tdigest 添加到您的 crate 中。

示例

use tdigest::TDigest;

let t = TDigest::new_with_size(100);
let values: Vec<f64> = (1..=1_000_000).map(f64::from).collect();

let t = t.merge_sorted(values);

let ans = t.estimate_quantile(0.99);
let expected: f64 = 990_000.0;

let percentage: f64 = (expected - ans).abs() / expected;
assert!(percentage < 0.01);

依赖

~180–410KB