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/oderdot(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 MethodeY=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
Xund den Zeilenvektoren vonYzurück.
Siehe auch
paired_distancesAbstände zwischen Paaren von Elementen von X und Y.
Anmerkungen
Um eine bessere Genauigkeit zu erzielen, können
X_norm_squaredundY_norm_squarednicht verwendet werden, wenn sie alsnp.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]])