scipy.spatial.distance.

sokalsneath#

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

计算两个布尔型一维数组之间的 Sokal-Sneath 相异度。

uv 之间的 Sokal-Sneath 相异度为:

\[\frac{R} {c_{TT} + R}\]

其中 \(c_{ij}\)\(\mathtt{u[k]} = i\)\(\mathtt{v[k]} = j\) 的出现次数,其中 \(k < n\)\(R = 2(c_{TF} + c_{FT})\)

参数:
u(N,) 数组型, 布尔型

输入数组。

v(N,) 数组型, 布尔型

输入数组。

w(N,) 数组型, 可选

uv 中每个值的权重。默认值为 None,表示每个值的权重为 1.0。

返回:
sokalsneath双精度浮点数

向量 uv 之间的 Sokal-Sneath 相异度。

示例

>>> from scipy.spatial import distance
>>> distance.sokalsneath([1, 0, 0], [0, 1, 0])
1.0
>>> distance.sokalsneath([1, 0, 0], [1, 1, 0])
0.66666666666666663
>>> distance.sokalsneath([1, 0, 0], [2, 1, 0])
0.0
>>> distance.sokalsneath([1, 0, 0], [3, 1, 0])
-2.0