euclidean_distances#

sklearn.metrics.pairwise.euclidean_distances(X, Y=None, *, Y_norm_squared=None, squared=False, X_norm_squared=None)[源代码]#

根据一个矩阵X和Y计算每对之间的距离矩阵。

出于效率原因,一对行向量x和y之间的欧几里得距离计算为:

dist(x, y) = sqrt(dot(x, x) - 2 * dot(x, y) + dot(y, y))

与其他计算距离的方式相比,这种公式有两个优点。首先,处理稀疏数据时计算效率高。其次,如果一个论点变化但另一个论点保持不变,那么 dot(x, x) 和/或 dot(y, y) 可以预先计算。

然而,这并不是进行此计算的最精确方式,因为该方程可能会遭受“灾难性抵消”。此外,该函数返回的距离矩阵可能不像以下要求的那样完全对称: scipy.spatial.distance 功能协调发展的

阅读更多的 User Guide .

参数:
X形状(n_samples_X,n_features)的{类数组,稀疏矩阵}

一个数组,其中每一行都是样本,每一列都是特征。

Y形状(n_samples_Y,n_features)的{类数组,稀疏矩阵}, 默认值=无

一个数组,其中每一行都是样本,每一列都是特征。如果 None ,方法使用 Y=X .

Y_norm_squared形状类似阵列(n_samples_Y,)或(n_samples_Y,1) 或(1,n_samples_Y),默认=无

预先计算的Y中的载体的点积(例如, (Y**2).sum(axis=1) )在某些情况下可能会被忽略,请参阅下面的注释。

squared布尔,默认=假

返回平方欧几里得距离。

X_norm_squared形状类似阵列(n_samples_X,)或(n_samples_X,1) 或(1,n_samples_X),默认=无

预先计算的X中的载体的点积(例如, (X**2).sum(axis=1) )在某些情况下可能会被忽略,请参阅下面的注释。

返回:
distances形状的nd数组(n_samples_X,n_samples_Y)

返回的行载体之间的距离 X 以及的行载体 Y .

参见

paired_distances

X和Y的元素对之间的距离。

注意到

为了实现更好的准确性, X_norm_squaredY_norm_squared 如果通过,则可能未使用 np.float32 .

示例

>>> from sklearn.metrics.pairwise import euclidean_distances
>>> X = [[0, 1], [1, 1]]
>>> # distance between rows of X
>>> euclidean_distances(X, X)
array([[0., 1.],
       [1., 0.]])
>>> # get distance to origin
>>> euclidean_distances(X, [[0, 0]])
array([[1.        ],
       [1.41421356]])