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次下载
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