Spec-Zone.ru › scikit-learn

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API