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]])