sklearn.metrics.pairwise.euclidean_distances¶
sklearn.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))
与其他计算距离的方式相比,此公式具有两个优点。首先,在处理稀疏数据时它的计算效率很高。其次,如果一个参数变化而另一个参数保持不变,则可以预先计算点(x,x)和/或点(y,y)。
但是,这不是进行此计算的最精确方法,并且该函数返回的距离矩阵可能不像scipy.spatial.distance之类的函数所要求的那样完全对称。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix}, shape (n_samples_1, n_features) |
Y | {array-like, sparse matrix}, shape (n_samples_2, n_features) |
Y_norm_squared | array-like, shape (n_samples_2, ), optional Y中向量的预先计算的点积(例如(Y ** 2).sum(axis = 1))在某些情况下可能会被忽略,请参见以下注释。 |
squared | boolean, optional 返回平方的欧氏距离。 |
X_norm_squared | array-like of shape (n_samples,), optional X中向量的预先计算的点积(例如(X ** 2).sum(axis = 1))在某些情况下可能会被忽略,请参见下面的注释。 |
返回值 | 说明 |
---|---|
distances | array, shape (n_samples_1, n_samples_2) |
另见:
X和Y元素对之间的距离。
注
为了获得更好的精度,如果X_norm_squared和Y_norm_squared作为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]])