1 个不稳定版本

0.1.0 2024年7月29日

255科学

Download history 154/week @ 2024-07-29 6/week @ 2024-08-05

每月 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