#distance #vector #similarity #histogram #density-function

ml-distance

基于距离的向量比较和分析方法。 (将JS/TS包 ml-distance 端口到Rust)

6个版本 (2个稳定版)

1.0.1 2024年4月21日
0.2.3 2024年4月20日
0.2.1 2024年4月20日
0.2.0 2024年4月20日
0.1.0 2024年4月20日

#14#histogram

每月22次下载

MIT 许可证

30KB
651

ML Distance

这个Rust包基于论文《关于概率密度函数之间距离/相似度测量的综合调查》并实现了将ml-distance包从js/ts转换为rust。

使用方法

在项目目录中运行以下Cargo命令

cargo add ml-distance

或者将以下行添加到Cargo.toml中

ml-distance = "^1.0.0"

然后在代码中使用它,如下所示

注意:距离和相似度对所有实现 Into\<f64\> 特性的类型都进行了实现。(例如 f64, i32, u32, i64, ...)

use ml_distance::distance;

let p: [f64; 3] = [0.000, 1.700, 2.350];
let q: [f64; 3] = [0.300, 1.700, 1.001];

let dist = distance::euclidean(&p, &q);
assert_eq!(dist, 1.3819554985599212);

或者对于相似度

use ml_distance::similarity;

let p = vec![0, 1, 2, 1, 1, 3];
let q = vec![0, 1, 1, 5, 9, 3];

let dist = similarity::cosine(&p, &q);
assert_eq!(dist, 0.6009252125773316);

实现的距离

名称 公式链接 状态
euclidean 链接
manhattan 链接
minkowski 链接
chebyshev 链接
sorensen 链接
gower 链接
soergel 链接
kulczynski 链接
canberra 链接
lorentzian 链接
intersection 链接
waveHedges 链接
czekanowski 链接
motyka 链接
ruzicka 链接
tanimoto 链接 🔜
innerProduct 链接
harmonicMean 链接
kumarHassebrook 链接
jaccard 链接
dice 链接
bhattacharyya 链接
hellinger 链接
matusita 链接
squaredChord 链接
squaredEuclidean 链接
pearson 链接
neuman 链接
squared 链接
probabilisticSymmetric 链接
divergence 链接
clark 链接
additiveSymmetric 链接
kullbackLeibler 链接
jeffreys 链接
kdivergence 链接
topsoe 链接
jensenShannon 链接
jensenDifference 链接
taneja 链接
kumarJohnson 链接
avg 链接

实现的相似度

名称 公式链接 状态
cosine 链接
dice 链接
fidelity 链接
kulczynski 链接
czekanowski 链接
intersection 链接
jaccard 链接
motyka 链接
squaredChord 链接

依赖项

~190KB