mars.learn.metrics.pairwise.euclidean_distances#
- mars.learn.metrics.pairwise.euclidean_distances(X, Y=None, Y_norm_squared=None, squared=False, X_norm_squared=None)[来源]#
将X(和Y=X)的行视为向量,计算每对向量之间的距离矩阵。
出于效率考虑,行向量 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函数所要求的。在用户指南中了解更多。
- Parameters
X ({类似数组, 稀疏矩阵}, 形状 (n_samples_1, n_features)) –
Y ({数组-like, 稀疏矩阵}, 形状 (n_samples_2, n_features)) –
Y_norm_squared (类似数组, 形状 (n_samples_2, ), 可选) – Y中向量的预计算点积 (例如,
(Y**2).sum(axis=1)) 在某些情况下可以忽略,见下面的注释。平方 (布尔值, 可选) – 返回平方欧几里得距离。
X_norm_squared (类数组, 形状 = [n_samples_1], 可选) – X中的向量的预计算点积(例如,
(X**2).sum(axis=1)) 在某些情况下可以忽略,请参见下面的说明。
备注
为了获得更好的准确性, X_norm_squared 和 Y_norm_squared 如果作为
float32传递可能会被忽略。- Returns
距离
- Return type
张量,形状 (n_samples_1, n_samples_2)
示例
>>> from mars.learn.metrics.pairwise import euclidean_distances >>> X = [[0, 1], [1, 1]] >>> # distance between rows of X >>> euclidean_distances(X, X).execute() array([[0., 1.], [1., 0.]]) >>> # get distance to origin >>> euclidean_distances(X, [[0, 0]]).execute() array([[1. ], [1.41421356]])
另请参阅
paired_distancesX和Y的元素对之间的距离。