ml-distance 0.2.0

Distance-based methods for vector comparison and analysis. (Porting of the JS/TS pkg `ml-distance` to Rust)
Documentation

ML Distance

This Rust crate is based on the paper Comprehensive Survey on Distance/Similarity Measures between Probability Density Functions and implemented to port the ml-distance pkg from js/ts to rust.

Usage

Add this to your Cargo.toml:

[dependencies]
ml_distance = "0.1.0"

And place this in your code:

let a: [f64; 3] = [0.000, 1.700, 2.350];
let b: [f64; 3] = [0.300, 1.700, 1.001];

let distance = euclidean(&a, &b);
assert_eq!(distance, 1.3819554985599212);

Can be used with any T that implement Into<f64>, (e.g. let a = vec![1,4,2] works etc.)

Distances Implemented

Name Formula Link Status
euclidean Link
manhattan Link
minkowski Link
chebyshev Link
sorensen Link
gower Link
soergel Link
kulczynski Link
canberra Link
lorentzian Link
intersection Link
waveHedges Link
czekanowski Link
motyka Link
ruzicka Link
tanimoto Link 🔜
innerProduct Link
harmonicMean Link
cosine Link
kumarHassebrook Link 🔜
jaccard Link 🔜
dice Link 🔜
fidelity Link 🔜
bhattacharyya Link 🔜
hellinger Link 🔜
matusita Link 🔜
squaredChord Link 🔜
squaredEuclidean Link 🔜
pearson Link 🔜
neyman Link 🔜
squared Link 🔜
probabilisticSymmetric Link 🔜
divergence Link 🔜
clark Link 🔜
additiveSymmetric Link 🔜
kullbackLeibler Link 🔜
jeffreys Link 🔜
kdivergence Link 🔜
topsoe Link 🔜
jensenShannon Link 🔜
jensenDifference Link 🔜
taneja Link 🔜
kumarJohnson Link 🔜
avg Link 🔜

Similarities Implemented

Name Formula Link Status
intersection Link 🔜
czekanowski Link 🔜
motyka Link 🔜
kulczynski Link 🔜
squaredChord Link 🔜
jaccard Link 🔜
dice Link 🔜
tanimoto Link 🔜