euclidean_distances#
- sklearn.metrics.pairwise.euclidean_distances(X, Y=None, *, Y_norm_squared=None, squared=False, X_norm_squared=None)[source]#
计算特征数组 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函数所要求的那样完全对称。在 用户指南 中阅读更多内容。
- 参数:
- X{array-like, sparse matrix} of shape (n_samples_X, n_features)
一个数组,其中每一行是一个样本,每一列是一个特征。
- Y{array-like, sparse matrix} of shape (n_samples_Y, n_features), default=None
一个数组,其中每一行是一个样本,每一列是一个特征。如果为
None,则方法使用Y=X。- Y_norm_squared形状为 (n_samples_Y,) 或 (n_samples_Y, 1) 或 (1, n_samples_Y) 的类数组,默认值为 None
Y 中向量的预计算点积(例如,
(Y**2).sum(axis=1))。在某些情况下可能会被忽略,请参阅下面的说明。- squared布尔值,默认值为 False
返回平方欧几里得距离。
- X_norm_squared形状为 (n_samples_X,) 或 (n_samples_X, 1) 或 (1, n_samples_X) 的类数组,默认值为 None
X 中向量的预计算点积(例如,
(X**2).sum(axis=1))。在某些情况下可能会被忽略,请参阅下面的说明。
- 返回:
- distancesndarray of shape (n_samples_X, n_samples_Y)
返回
X的行向量与Y的行向量之间的距离。
另请参阅
paired_distancesX 和 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]])