scipy.spatial.distance.

sokalmichener#

scipy.spatial.distance.sokalmichener(u, v, w=None)[source]#

计算两个布尔 1-D 数组之间的 Sokal-Michener 差异。

自版本 1.15.0 起弃用: 此函数已弃用,将在 SciPy 1.17.0 中删除。用 rogerstanimoto(u, v) 替换 sokalmichener(u, v) 的使用。

布尔 1-D 数组 uv 之间的 Sokal-Michener 差异定义为

\[\frac{R} {S + R}\]

其中 \(c_{ij}\)\(\mathtt{u[k]} = i\)\(\mathtt{v[k]} = j\) 的出现次数,对于 \(k < n\)\(R = 2 * (c_{TF} + c_{FT})\) 并且 \(S = c_{FF} + c_{TT}\)

参数:
u(N,) 类数组, bool

输入数组。

v(N,) 类数组, bool

输入数组。

w(N,) 类数组, 可选

uv 中每个值的权重。 默认为 None,这给每个值 1.0 的权重

返回:
sokalmichener双精度

向量 uv 之间的 Sokal-Michener 差异。

示例

>>> from scipy.spatial import distance
>>> distance.sokalmichener([1, 0, 0], [0, 1, 0])
0.8
>>> distance.sokalmichener([1, 0, 0], [1, 1, 0])
0.5
>>> distance.sokalmichener([1, 0, 0], [2, 0, 0])
-1.0