scipy.spatial.distance.jaccard¶
- scipy.spatial.distance.jaccard(u, v, w=None)[源代码]¶
计算两个布尔一维数组之间的Jaccard-Needham相异度。
一维布尔数组之间的Jaccard-Needham相异性 u 和 v ,定义为
\[\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,可选
中每个值的权重 u 和 v 。默认值为None,即为每个值赋予1.0的权重
- 退货
- jaccard双倍
向量之间的Jaccard距离 u 和 v 。
注意事项
当两者都存在时 u 和 v 通向一个 0/0 除法,即矢量中的项目之间没有重叠,返回距离为0。请参阅关于贾卡德索引的维基百科页面 [1], 而这篇论文 [2].
在 1.2.0 版更改: 以前,当 u 和 v 通向一个 0/0 除法,则函数将返回NaN。这已更改为返回0。
参考文献
- 1
- 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