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_squaredY_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_distances

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