欧几里得距离#
- 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形状为 (n_samples_X, n_features) 的{类数组,稀疏矩阵}
- 一个数组,其中每一行是一个样本,每一列是一个特征。 
- Y形状为 (n_samples_Y, n_features) 的{类数组,稀疏矩阵},默认为 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))。在某些情况下可能会被忽略,请参见下面的说明。
 
- 返回值:
- distances形状为 (n_samples_X, n_samples_Y) 的 ndarray
- 返回 - X的行向量和- Y的行向量之间的距离。
 
 - 另请参见 - 成对距离
- 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]]) 
