euclidean_distances
- sklearn.metrics.pairwise.euclidean_distances(X, Y=None, *, Y_norm_squared=None, squared=False, X_norm_squared=None)[source]
-
Вычисляет матрицу расстояний между каждой парой из массива векторов X и Y.
Из соображений эффективности, евклидово расстояние между парой векторов-строк x и y вычисляется как:
dist(x, y) = sqrt(dot(x, x) - 2 * dot(x, y) + dot(y, y))
Это выражение имеет два преимущества по сравнению с другими способами вычисления расстояний. Во-первых, оно эффективно при работе с разреженными данными. Во-вторых, если один аргумент изменяется, а другой остается неизменным, то
dot(x, x)и/илиdot(y, y)могут быть предварительно вычислены.Однако это не самый точный способ вычисления, потому что это уравнение потенциально страдает от «катастрофической аннуляции». Кроме того, матрица расстояний, возвращаемая этой функцией, может не быть строго симметричной, как того требуют, например,
scipy.spatial.distanceфункции.Подробнее см. в Руководстве пользователя.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples_X, n_features)
-
Массив, где каждая строка представляет собой образец, а каждый столбец — признак.
- Y{array-like, sparse matrix} of shape (n_samples_Y, n_features), default=None
-
Массив, где каждая строка представляет собой образец, а каждый столбец — признак. Если
None, метод используетY=X. - Y_norm_squaredarray-like of shape (n_samples_Y,) or (n_samples_Y, 1) or (1, n_samples_Y), default=None
-
Предварительно вычисленные скалярные произведения векторов в Y (например,
(Y**2).sum(axis=1)) Может быть проигнорирован в некоторых случаях, см. примечание ниже. - squaredbool, default=False
-
Возвращает квадрат евклидовых расстояний.
- X_norm_squaredarray-like of shape (n_samples_X,) or (n_samples_X, 1) or (1, n_samples_X), default=None
-
Предварительно вычисленные скалярные произведения векторов в X (например,
(X**2).sum(axis=1)) Может быть проигнорирован в некоторых случаях, см. примечание ниже.
- Возвращает:
-
- distancesndarray of shape (n_samples_X, n_samples_Y)
-
Возвращает расстояния между векторами-строками
Xи векторами-строкамиY.
См. также
paired_distances-
Расстояния между парами элементов X и Y.
Примечания
Для достижения большей точности
X_norm_squaredиY_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]])
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.metrics.pairwise.euclidean_distances.html