Module vq

Module vq 

Source
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§

ChebyshevDistance
Chebyshev distance metric (L∞ norm)
CorrelationDistance
Correlation distance metric (1 - Pearson correlation)
CosineDistance
Cosine distance metric (1 - cosine similarity)
EuclideanDistance
Euclidean distance metric (L2 norm)
KMeansOptions
Options for K-means clustering
MahalanobisDistance
Mahalanobis distance metric using precomputed inverse covariance matrix
ManhattanDistance
Manhattan distance metric (L1 norm)
MiniBatchKMeansOptions
Options for Mini-Batch K-means clustering
MinkowskiDistance
Minkowski distance metric with configurable power p
ParallelKMeansOptions
Options for parallel K-means clustering
SimdOptimizationConfig
Configuration for SIMD optimizations
WeightedKMeansOptions
Options for weighted K-means clustering

Enums§

KMeansInit
Initialization methods for K-means
MetricType
Enumeration of available distance metrics
MinitMethod
Initialization methods for kmeans2
MissingMethod
Methods for handling empty clusters during K-means clustering

Traits§

VQDistanceMetric
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)