1 个不稳定版本
0.1.0 | 2024年7月29日 |
---|
255 在 科学
每月 160 次下载
用于 oarfish
15KB
206 行
kde-rs
在 Rust 中实现了简单的、受限的二维核密度估计器。kde-rs 库是为了特定的用例开发的,尽管我们可能在将来考虑将其通用化,但这不是当前的关注点。
目前,主要的限制包括
- 仅支持二维估计
- 仅支持整数样本点 --- (x, y) 对是整数 --- (但可以加权)
- 目前只实现了对称高斯核
然而,在这些约束下,kde-rs 力求易于使用且性能出色。
lib.rs
:
kde-rs 包提供了一种针对受限情况下的二维核密度估计器的实现。它侧重于易于使用,以及在它所设计的场景中的效率。
示例
use kders::kde;
// create a grid on the range [0, 100]x[0, 100] with bins
// of width 5 and a kernel bandwidth of 2.
let mut rng = rand::thread_rng();
let die = Uniform::from(10.0..100.);
let mut g = kde::KDEGrid(GridDimension{ 100, 100 }, 5, Some(2.0));
// add 100 random observations
for _i in 0..100 {
let x: f64 = die.sample(&mut rng);
let y: f64 = die.sample(&mut rng);
g.add_observation(x as usize, y as usize, rng.gen())
}
// obtain the density grid on which we'll evaluate our queries
let density = g.get_kde()?;
// lookup the density at some points
let a = density[(10_usize, 10_usize)];
let b = density[(10_usize, 25_usize)];
let c = density[(68_usize, 5_usize)];
let d = density[(79_usize, 10_usize)];
依赖项
~3.5MB
~67K SLoC