当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn euclidean_distances用法及代码示例


本文简要介绍python语言中 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 和 y 之间的欧式距离计算如下:

dist(x, y) = sqrt(dot(x, x) - 2 * dot(x, y) + dot(y, y))

与其他计算距离的方法相比,该公式有两个优点。首先,它在处理稀疏数据时具有计算效率。其次,如果一个参数变化但另一个保持不变,则可以预先计算dot(x, x) 和/或dot(y, y)

但是,这不是进行此计算的最精确方法,因为此等式可能会受到“catastrophic cancellation” 的影响。此外,此函数返回的距离矩阵可能并不像 scipy.spatial.distance 函数所要求的那样完全对称。

在用户指南中阅读更多信息。

参数

X{类似数组的稀疏矩阵},形状为 (n_samples_X, n_features)

一个数组,其中每一行是一个样本,每一列是一个特征。

Y{类数组,稀疏矩阵},形状为 (n_samples_Y, n_features),默认=无

一个数组,其中每一行是一个样本,每一列是一个特征。如果 None ,方法使用 Y=X

Y_norm_squared形状为 (n_samples_Y,) 或 (n_samples_Y, 1) 或 (1, n_samples_Y) 的类似数组,默认=无

Y 中向量的预计算 dot-products(例如 (Y**2).sum(axis=1) )在某些情况下可能会被忽略,请参阅下面的注释。

squared布尔,默认=假

返回平方欧几里得距离。

X_norm_squared形状为 (n_samples_X,) 或 (n_samples_X, 1) 或 (1, n_samples_X) 的类似数组,默认=无

X 中向量的预计算 dot-products(例如 (X**2).sum(axis=1) )在某些情况下可能会被忽略,请参阅下面的注释。

返回

distancesndarray 形状(n_samples_X,n_samples_Y)

返回 X 的行向量与 Y 的行向量之间的距离。

注意

为了获得更好的准确性,如果 X_norm_squaredY_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]])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.metrics.pairwise.euclidean_distances。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。