neco-kmeans 0.1.0

k-means++ clustering for arbitrary-dimensional f64 vectors
Documentation
  • Coverage
  • 36.84%
    7 out of 19 items documented0 out of 0 items with examples
  • Size
  • Source code size: 29.54 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.93 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 37s Average build duration of successful builds.
  • all releases: 37s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • barineco/neco-crates
    3 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • barineco

neco-kmeans

日本語

Deterministic k-means clustering for partitioning points into k groups without random initialization noise.

Clustering behavior

The implementation uses a deterministic max-distance variant of k-means++ for initialization, then refines assignments with Lloyd iteration. Identical inputs therefore produce identical outputs, which helps in reproducible analysis pipelines.

Usage

use neco_kmeans::kmeans;

let data = [
    0.0, 0.0,
    1.0, 0.0,
    10.0, 10.0,
    11.0, 10.0,
];

let result = kmeans(&data, 2, 2, 100).expect("valid clustering input");

println!("assignments: {:?}", result.assignments);
println!("centroids: {:?}", result.centroids);
println!("iterations: {}", result.iterations);

API

Item Description
kmeans(data, dim, k, max_iter) Run deterministic k-means and return Result<KmeansResult, KmeansError>
KmeansResult Stores assignments, centroids, dimensionality, and iteration count
KmeansResult::centroid(i) Borrow the i-th centroid as a slice
KmeansResult::k() Return the number of clusters

Optional features

Feature Description
parallel Enables rayon-based parallel assignment updates

License

MIT