scipy.spatial.distance.
jaccard#
- scipy.spatial.distance.jaccard(u, v, w=None)[source]#
计算两个布尔型一维数组之间的 Jaccard-Needham 差异。
一维布尔型数组 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,) array_like, bool
输入数组。
- v(N,) array_like, bool
输入数组。
- w(N,) array_like, 可选
u 和 v 中每个值的权重。默认值为 None,它为每个值赋予 1.0 的权重。
- 返回值:
- jaccarddouble
向量 u 和 v 之间的 Jaccard 距离。
注释
当 u 和 v 导致 0/0 除法,即向量中的项目之间没有重叠时,返回的距离为 0。请参阅 Jaccard 指数的维基百科页面 [1],以及这篇论文 [2]。
版本 1.2.0 中的更改: 以前,当 u 和 v 导致 0/0 除法时,函数将返回 NaN。这已更改为改为返回 0。
参考文献
[2]S. Kosub,“关于 Jaccard 距离三角不等式的说明”,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