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_squared
和Y_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]])