scipy.spatial.distance.
jaccard#
- scipy.spatial.distance.jaccard(u, v, w=None)[源代码][源代码]#
计算两个布尔一维数组之间的Jaccard-Needham不相似度。
1-D 布尔数组 u 和 v 之间的 Jaccard-Needham 不相似度,定义为
\[\frac{c_{TF} + c_{FT}} {c_{TT} + c_{FT} + c_{TF}}\]其中 \(c_{ij}\) 是 \(\mathtt{u[k]} = i\) 且 \(\mathtt{v[k]} = j\) 在 \(k < n\) 时的出现次数。
- 参数:
- u(N,) 数组类, 布尔值
输入数组。
- v(N,) 数组类, 布尔值
输入数组。
- w(N,) 数组类,可选
u 和 v 中每个值的权重。默认是 None,即每个值的权重为 1.0。
- 返回:
- jaccard双
向量 u 和 v 之间的 Jaccard 距离。
注释
当 u 和 v 都导致 0/0 的除法,即向量中的项目没有重叠时,返回的距离为 0。参见维基百科关于 Jaccard 指数的页面 [1],以及这篇论文 [2]。
在 1.2.0 版本发生变更: 之前,当 u 和 v 导致 0/0 除法时,函数会返回 NaN。这一行为已被修改为返回 0。
参考文献
[2]S. Kosub, “A note on the triangle inequality for the Jaccard distance”, 2016, arXiv:1612.02696
示例
>>> from scipy.spatial import distance >>> distance.jaccard([1, 0, 0], [0, 1, 0]) 1.0 >>> distance.jaccard([1, 0, 0], [1, 1, 0]) 0.5 >>> distance.jaccard([1, 0, 0], [1, 2, 0]) 0.5 >>> distance.jaccard([1, 0, 0], [1, 1, 1]) 0.66666666666666663