scipy.spatial.distance.

correlation#

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

计算两个一维数组之间的相关性距离。

uv 之间的相关性距离定义为

\[1 - \frac{(u - \bar{u}) \cdot (v - \bar{v})} {{\|(u - \bar{u})\|}_2 {\|(v - \bar{v})\|}_2}\]

其中 \(\bar{u}\)u 元素的平均值,\(x \cdot y\)\(x\)\(y\) 的点积。

参数:
u(N,) array_like

输入数组。

v(N,) array_like

输入数组。

w(N,) array_like, optional

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

centeredbool, optional

如果为 True,则将对 uv 进行居中。默认值为 True。

返回值:
correlationdouble

一维数组 uv 之间的相关性距离。

示例

找到两个数组之间的相关性。

>>> from scipy.spatial.distance import correlation
>>> correlation([1, 0, 1], [1, 1, 0])
1.5

使用加权数组,可以计算相关性为

>>> correlation([1, 0, 1], [1, 1, 0], w=[0.9, 0.1, 0.1])
1.1

如果不需要居中,则可以计算相关性为

>>> correlation([1, 0, 1], [1, 1, 0], centered=False)
0.5