當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。