scipy.spatial.distance.jaccard

scipy.spatial.distance.jaccard(u, v, w=None)[源代码]

计算两个布尔一维数组之间的Jaccard-Needham相异度。

一维布尔数组之间的Jaccard-Needham相异性 uv ,定义为

\[\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,)array_like,可选

中每个值的权重 uv 。默认值为None,即为每个值赋予1.0的权重

退货
jaccard双倍

向量之间的Jaccard距离 uv

注意事项

当两者都存在时 uv 通向一个 0/0 除法,即矢量中的项目之间没有重叠,返回距离为0。请参阅关于贾卡德索引的维基百科页面 [1], 而这篇论文 [2].

在 1.2.0 版更改: 以前,当 uv 通向一个 0/0 除法,则函数将返回NaN。这已更改为返回0。

参考文献

1

https://en.wikipedia.org/wiki/Jaccard_index

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