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)[исходный код]

Вычисляет матрицу расстояний между каждой парой строк из массивов признаков 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{массивоподобный объект, разреженная матрица} формы (n_samples_X, n_features)

Массив, в котором каждая строка представляет собой образец, а каждый столбец — признак.

Y{массивоподобный объект, разреженная матрица} формы (n_samples_Y, n_features), по умолчанию=None

Массив, в котором каждая строка представляет собой образец, а каждый столбец — признак. Если None, метод использует Y=X.

Y_norm_squaredмассивоподобный объект формы (n_samples_Y,) или (n_samples_Y, 1) или (1, n_samples_Y), по умолчанию=None

Предварительно вычисленные скалярные произведения векторов в Y (например, (Y**2).sum(axis=1)). В некоторых случаях значение может игнорироваться; см. примечание ниже.

squaredbool, по умолчанию=False

Возвращать квадраты евклидовых расстояний.

X_norm_squaredмассивоподобный объект формы (n_samples_X,) или (n_samples_X, 1) или (1, n_samples_X), по умолчанию=None

Предварительно вычисленные скалярные произведения векторов в X (например, (X**2).sum(axis=1)). В некоторых случаях значение может игнорироваться; см. примечание ниже.

Возвращает:
distancesndarray формы (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–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.pairwise.euclidean_distances.html

Spec-Zone.ru

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