Expand description
Vector quantization functions
This module provides vector quantization algorithms like K-means clustering and related utilities.
§Examples
use scirs2_core::ndarray::{ArrayView1, Array2, ArrayView2};
use scirs2_cluster::vq::kmeans;
// Example data
let data = Array2::from_shape_vec((6, 2), vec![
1.0, 2.0,
1.2, 1.8,
0.8, 1.9,
3.7, 4.2,
3.9, 3.9,
4.2, 4.1,
]).unwrap();
// Run k-means with k=2
let (centroids, labels) = kmeans(ArrayView2::from(&data), 2, None, None, None, None).unwrap();
// Print the results
println!("Centroids: {:?}", centroids);
println!("Labels: {:?}", labels);Structs§
- Chebyshev
Distance - Chebyshev distance metric (L∞ norm)
- Correlation
Distance - Correlation distance metric (1 - Pearson correlation)
- Cosine
Distance - Cosine distance metric (1 - cosine similarity)
- Euclidean
Distance - Euclidean distance metric (L2 norm)
- KMeans
Options - Options for K-means clustering
- Mahalanobis
Distance - Mahalanobis distance metric using precomputed inverse covariance matrix
- Manhattan
Distance - Manhattan distance metric (L1 norm)
- Mini
BatchK Means Options - Options for Mini-Batch K-means clustering
- Minkowski
Distance - Minkowski distance metric with configurable power p
- ParallelK
Means Options - Options for parallel K-means clustering
- Simd
Optimization Config - Configuration for SIMD optimizations
- WeightedK
Means Options - Options for weighted K-means clustering
Enums§
- KMeans
Init - Initialization methods for K-means
- Metric
Type - Enumeration of available distance metrics
- Minit
Method - Initialization methods for kmeans2
- Missing
Method - Methods for handling empty clusters during K-means clustering
Traits§
- VQDistance
Metric - Trait for distance metric computations
Functions§
- calculate_
distortion_ simd - SIMD-optimized distortion calculation
- compute_
centroids_ simd - SIMD-optimized centroid computation for K-means
- create_
metric - Create a distance metric instance from the metric type
- distance_
to_ centroids_ simd - Compute distances from each point to a set of centroids using SIMD
- euclidean_
distance - Computes the Euclidean distance between two vectors
- euclidean_
distance_ simd - SIMD-optimized Euclidean distance between two vectors
- kmeans
- K-means clustering algorithm (SciPy-compatible version)
- kmeans2
- Enhanced K-means clustering algorithm compatible with SciPy’s kmeans2
- kmeans2_
str - SciPy-compatible K-means clustering with string-based parameters
- kmeans_
init - K-means initialization algorithm
- kmeans_
plus_ plus - K-means++ initialization algorithm
- kmeans_
plus_ plus_ simd - SIMD-accelerated K-means++ initialization
- kmeans_
simd - SIMD-accelerated K-means clustering
- kmeans_
with_ metric - Enhanced K-means clustering with custom distance metrics
- kmeans_
with_ options - K-means clustering algorithm (options-based version)
- mini_
batch_ kmeans_ simd - SIMD-accelerated mini-batch K-means for large datasets
- minibatch_
kmeans - Mini-Batch K-means clustering algorithm
- pairwise_
euclidean_ parallel - Parallel distance matrix computation using core parallel operations
- pairwise_
euclidean_ simd - Compute Euclidean distances between all pairs of points using SIMD when available
- parallel_
kmeans - Parallel K-means clustering algorithm
- vq
- Assign codes from a code book to observations.
- vq_simd
- SIMD-optimized vector quantization (assignment to nearest centroids)
- weighted_
kmeans - Weighted K-means clustering algorithm
- weighted_
kmeans_ plus_ plus - Weighted K-means++ initialization
- whiten
- Normalize a group of observations on a per feature basis.
- whiten_
simd - SIMD-optimized data whitening (normalization by standard deviation)