Vector Metrics
向量度量算法集合,支持15种距离和相似度算法。
安装
npm install @base/vector-metrics
使用方法
import {
computeCosineSimilarity,
computeEuclideanDistance,
computeDotProduct,
computeVectorNorm,
computeManhattanDistance,
computeHammingDistance,
computeJaccardDistance,
computeBrayCurtisDistance,
computeChebyshevDistance,
computeMinkowskiDistance,
computeChiSquareDistance,
computeClarkDistance,
computeCorrelationDistance,
computeLorentzianDistance,
computeSquaredEuclideanDistance,
getMetric,
getAvailableMetrics
} from '@base/vector-metrics';
const similarity = computeCosineSimilarity([1, 2, 3], [4, 5, 6]);
const distance = computeEuclideanDistance([1, 2, 3], [4, 5, 6]);
const dotProduct = computeDotProduct([1, 2, 3], [4, 5, 6]);
const cosineMetric = getMetric('cosine-similarity');
const euclideanMetric = getMetric('euclidean');
const manhattanMetric = getMetric('manhattan');
const similarity2 = cosineMetric([1, 2, 3], [4, 5, 6]);
const distance2 = euclideanMetric([1, 2, 3], [4, 5, 6]);
const availableMetrics = getAvailableMetrics();
console.log(availableMetrics);
支持的算法
基础度量
- 点积 (Dot Product) - 向量内积计算
- 向量范数 (Vector Norm) - L2范数计算
- 余弦相似度 (Cosine Similarity) - 角度相似性度量
距离度量
- 欧几里得距离 (Euclidean Distance) - 直线距离
- 平方欧几里得距离 (Squared Euclidean) - 避免开方运算
- 曼哈顿距离 (Manhattan Distance) - L1距离
- 切比雪夫距离 (Chebyshev Distance) - L∞距离
- 闵可夫斯基距离 (Minkowski Distance) - 广义距离
特殊距离
- 汉明距离 (Hamming Distance) - 二进制向量距离
- 杰卡德距离 (Jaccard Distance) - 集合相似度
- 布雷-柯蒂斯距离 (Bray-Curtis Distance) - 生态学距离
- 卡方距离 (Chi-Square Distance) - 统计距离
- 克拉克距离 (Clark Distance) - 比例敏感距离
- 相关距离 (Correlation Distance) - 相关性度量
- 洛伦兹距离 (Lorentzian Distance) - 异常检测距离
开发
npm test
npm run tournament
npm run build
许可证
AGPL-3.0