euclidean_distances#

sklearn.metrics.pairwise.euclidean_distances(X, Y=None, *, Y_norm_squared=None, squared=False, X_norm_squared=None)[Quelle]#

Berechne die Distanzmatrix zwischen jedem Paar aus einem Feature-Array X und Y.

Aus Effizienzgründen wird der euklidische Abstand zwischen einem Paar von Zeilenvektoren x und y wie folgt berechnet:

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

Diese Formulierung hat zwei Vorteile gegenüber anderen Möglichkeiten zur Berechnung von Abständen. Erstens ist sie rechnerisch effizient im Umgang mit spärlichen Daten. Zweitens, wenn sich ein Argument ändert, aber das andere unverändert bleibt, dann können dot(x, x) und/oder dot(y, y) vorab berechnet werden.

Dies ist jedoch nicht die präziseste Methode zur Berechnung, da diese Gleichung potenziell unter „katastrophaler Auslöschung“ leidet. Außerdem ist die von dieser Funktion zurückgegebene Distanzmatrix möglicherweise nicht exakt symmetrisch, wie es z.B. von den scipy.spatial.distance-Funktionen gefordert wird.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
X{array-like, sparse matrix} der Form (n_samples_X, n_features)

Eine Matrix, bei der jede Zeile eine Stichprobe und jede Spalte ein Merkmal darstellt.

Y{array-like, sparse matrix} der Form (n_samples_Y, n_features), Standard=None

Ein Array, bei dem jede Zeile eine Stichprobe und jede Spalte ein Merkmal ist. Wenn None, verwendet die Methode Y=X.

Y_norm_squaredarray-like von Form (n_samples_Y,) oder (n_samples_Y, 1) oder (1, n_samples_Y), Standard=None

Vorberechnete Skalarprodukte von Vektoren in Y (z.B. (Y**2).sum(axis=1)) Kann in einigen Fällen ignoriert werden, siehe Hinweis unten.

squaredbool, Standard=False

Gibt quadrierte euklidische Abstände zurück.

X_norm_squaredarray-like von Form (n_samples_X,) oder (n_samples_X, 1) oder (1, n_samples_X), Standard=None

Vorberechnete Skalarprodukte von Vektoren in X (z.B. (X**2).sum(axis=1)) Kann in einigen Fällen ignoriert werden, siehe Hinweis unten.

Gibt zurück:
distancesndarray der Form (n_samples_X, n_samples_Y)

Gibt die Abstände zwischen den Zeilenvektoren von X und den Zeilenvektoren von Y zurück.

Siehe auch

paired_distances

Abstände zwischen Paaren von Elementen von X und Y.

Anmerkungen

Um eine bessere Genauigkeit zu erzielen, können X_norm_squared und Y_norm_squared nicht verwendet werden, wenn sie als np.float32 übergeben werden.

Beispiele

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